Come codificare? - pagina 47

 

Grazie MrPip

Per lo più capisco da dove vieni, lo darò fa e chiederò di nuovo se mi blocco.

grazie

 
MrPip:
Correzioni in rosso qui sotto. Robert

Grazie Robert... che ha aiutato...

 

Conto alla rovescia a barre con indicatori MTF

MTF = indicatori multi time frame

doppio BarCountDownInSec()

{

doppio g;

g=Time[0]+Periodo()*60-TimeCurrent();

return(g);

}

La funzione di cui sopra fornisce il secondo conto alla rovescia per le barre nel grafico corrente. Quindi, se posizionata su un grafico a 5 minuti, mostrerà il conto alla rovescia dei secondi per ogni barra a 5 minuti.

D: Come posso ottenere il conto alla rovescia dei secondi per una barra di 15 minuti (cioè 3x barre di 5 minuti), quando sono in un grafico di 5 minuti, quindi un conto alla rovescia di 15 minuti da 6.00 a 6.15. poi 6.15 a 6.30, mentre sono in un grafico di 5 minuti?

 

Problema con la mia programmazione (BUG)

Ciao,

Qualcuno può aiutarmi a risolvere il bug. C'ero quasi, solo che l'istogramma di disegno non appare a meno che non compili di nuovo il codice.

Per favore aiutatemi!!! Per favore, per favore, per favore

Saluti

File:
 

problema icustom

Qual è il nome della stringa di questo indi che dovrei usare per una parte iCustom di un EA

Ho provato

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

Quindi non ho idea di cosa fare dopo.

o devo mettere i nomi delle stringhe ATRMode, Manual Mode ecc.

Qualsiasi aiuto sarebbe grande

 

Qualcuno può vedere l'errore? Non riesco a vedere dove sia l'errore in questo codice. Continuo a ottenere. Qualsiasi aiuto per indicarlo sarebbe fantastico. Grazie

LongSig Variabile non definita

//+------------------------------------------------------------------+

//| Calcola le posizioni aperte

//+------------------------------------------------------------------+

int CalcolaCorrentiOrdini() {

buy=0; sells=0;

string symbol=Symbol();

//----

for(int i=0;i<OrdiniTotali();i++)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==falso) continua;

if(OrderSymbol()==Symbol() && OrderMagicNumber()==expertId)

{

if(OrderType()==OP_BUY || OrderType()==OP_BUYSTOP) compra++;

if(OrderType()==OP_SELL || OrderType()==OP_SELLSTOP) sells++;

}

}

//---- restituisce il volume degli ordini

if(buys>0) return(buys);

altrimenti return(-vendite);

}

//+------------------------------------------------------------------+

//| Controlla le condizioni degli ordini aperti

//+------------------------------------------------------------------+

void CheckForSignals() {

buysig=false;

sellsig=false;

closebuy=false;

closesell=false;

double MOM = iCustom (NULL,0, "Momentum-ZL",MOMPeriod,0,shift);

double SRL = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod, ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,233);

double SRS = iCustom (NULL,0, "MT4-LevelStop-Reverse-vBO-4",UseATRMode,NonATRStopPips,ATRPeriod, ATRMultiplier,ATRSmoothing,UpArrowColor,DnArrowColor,ArrowDistance,234);

double QQE_RsiMa = iCustom(NULL,0, "QQE",0,shift);

double QQE_TrLevelSlow = iCustom(NULL,0, "QQE", 1, shift);

double QQE_RsiMaPrev = iCustom(NULL,0, "QQE",0,shift + 1);

double QQE_TrLevelSlowPrev = iCustom(NULL,0, "QQE", 1, shift + 1);

double Pivot = iCustom (NULL,0, "Pivot Points Multitimeframe",midpivots,Fhr,daily,weekly,monthly,1,shift)

bool LongSig = QQE_RsiMaPrev QQE_TrLevelSlow >50.0;

bool ShortSig = QQE_RsiMaPrev > QQE_TrLevelSlowPrev && QQE_RsiMa < QQE_TrLevelSlow<50.0;

bool LongSig2 = MOM>0.0;

bool ShortSig2 = MOM<0.0;

bool LongSig3 = SRL>Pivot;

bool ShortSig3 = SRS<Pivot;

buysig = LongSig && LongSig2 && LongSig3;

sellsig = ShortSig && ShortSig2 && ShortSig3;

closebuy=sellsig;

closesell=buysig;

}

void CheckForOpen() {

if (last==Time[0]) return;

int res,ord;

doppia entrata, stop, profitto;

ord=CalculateCurrentOrders();

if (ord!=0) CheckForClose();

ord=CalcolaOrdiniCorrenti();

//---- condizioni di acquisto

if (buys<ConsecutiveTrades && buysig) {

res=OpenAtMarket(OP_BUY,Lots);

if (res<0) Print("Errore nell'apertura dell'ordine BUY: ",ErrorDescription(GetLastError());

else last=Time[0];

}

//---- condizioni di vendita

if (-sells<ConsecutiveTrades && sellsig) {

res=OpenAtMarket(OP_SELL,Lots);

if (res<=0) Print("Errore apertura ordine SELL: ",ErrorDescription(GetLastError());

else last=Time[0];

}

}

int OpenAtMarket(int mode,double lot) {

int res,tr,col;

double openprice,sl,tp;

tries=0;

while (res<=0 && tries<OrderTriesNumber) {

tr=0; while (tr<5 && !IsTradeAllowed()) { tr++; Sleep(2000); }

RefreshRates();

if (mode==OP_SELL) {

openprice=Bid;

col=Rosso;

} else {

//openprice=nd(Ask);

openprice=Ask;

col=Blu;

}

res=OrderSend(Symbol(),mode,lot,openprice,slippage,sl,tp,EAName+expertId,expertId,0,col);

try++;

}

return(res);

}

IT fisso

 

Prova il primo della tua lista con un numero zero 0 invece di una lettera O per vB0-4.

Robert

Beno:
Qual è il nome della stringa di questo indi che dovrei usare per una parte iCustom di un EA

Ho provato

MT4-LevelStop-Reverse-vBO-4

MT4-LevelStop-Reverse-

MT4-LevelStop-Reverse

vBO-4

vB0.4

vtsbh2483-

MT4-LevelStop-Reverse-" + INDICATOR_VERSION + "(

Quindi non ho idea di cosa fare dopo.

o devo mettere i nomi delle stringhe ATRMode, Manual Mode ecc.

Qualsiasi aiuto sarebbe grande
 

Grazie Mr Pips

Sistemato

 
MrPip:
Correzioni in rosso qui sotto. Robert

Ho provato questo ma sembra non funzionare... voglio solo un commercio al giorno...

for(int a=0;a<OrdiniTotali();a++)

{

if (OrderSelect(a,SELECT_BY_POS,MODE_TRADES) == true)

{

if (OrderSymbol()== Symbol() && OrderMagicNumber()== Magic_Number)

{

se (TimeDay(OrderOpenTime()) >= TimeDay(TimeCurrent()) Commercio = falso;

se (TimeDay(OrderOpenTime()) < TimeDay(TimeCurrent()) Trade = true;

}

}

}
 
antone:
Ho provato questo ma sembra non funzionare... voglio solo un trade al giorno...

Ho usato questo in altri EA e funziona correttamente.

Controllo il commercio chiuso oggi invece di quello aperto oggi.

L'uso all'inizio è

if (LastTradeClosedToday()) return(0);

// codice qui per aprire nuovi trade

//+------------------------------------------------------------------+

//| LastTradeClosedToday |

//| Controlla la cronologia per vedere se l'ultimo trade è stato chiuso oggi

//+------------------------------------------------------------------+

bool LastTradeClosedToday()

{

int cnt, total;

bool Chiuso;

total = HistoryTotal();

for (cnt = totale - 1; cnt >= 0; cnt--)

{

OrderSelect (cnt, SELECT_BY_POS, MODE_HISTORY);

if(OrderSymbol()!=Symbol()) continua;

se (OrderMagicNumber() != MagicNumber) continua;

Chiuso = falso;

se (OrderType() == OP_BUY)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())

{

Chiuso = true;

}

cnt = 0;

}

if (OrderType() == OP_SELL)

{

if (TimeDay(OrderCloseTime()) == TimeDay(TimeCurrent())

{

Chiuso = true;

}

cnt = 0;

}

}

return (Closed);

}

Motivazione: