Chiedete! - pagina 29

 
Yannis:
Dave,

Prova a cambiare il tuo codice con il seguente snippet e fammi sapere se ha funzionato.

Yannis

int i=0;

for (int cnt=OrdersTotal()-1;cnt>=0;cnt--)

OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && ( OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

return(0);

}

}

Ho un problema con il fatto che modifica sempre i trade nel backtester più e più volte. Come faccio a fargli modificare i trade una volta sola. Dato che il programma sta andando a dormire, le uniche compravendite che devono essere modificate sono quelle ancora aperte.

Si prega di vedere l'allegata .Gif dei risultati del Backtest. Sono così vicino ad ottenere questo diritto - Per favore consigliatemi! Uso questa modifica di Take Profit e Stop Loss insieme alla modalità sleep. Si prega di vedere il codice qui sotto

int start()

{

if (UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comment(

"\n"," * CONSULENTE ESPERTO DI VENTO SOLARE *",

"\n",

"\n", " - PROGRAMMA IN CICLO DI SLEEP - ",

"\n",

"\n"," > ORE NON DI TRADING! <");

/////////////////// MODIFICARE STOP LOSS E TAKE PROFIT ALL'INIZIO DEL CICLO DI SONNO /////////////////

int h=0;

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

return(0);

}

}

Dave <<<

PER FAVORE GUARDA LA MINIATURA ALLEGATA!

 

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

fare in modo che conti lo stesso numero

 

Non capisco. Come posso correggere questo errore? Forse vedo - Lasciami cambiare cnt1 in h. Sono corretto?

Dave

<<

 
phoenix:
il tuo OrderSelect() non ha contato sulla base del ciclo in corso

int start()

{

se (UsaOraCommercio)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comment(

"\n"," * CONSULENTE ESPERTO DI VENTO SOLARE *",

"\n",

"\n", " - PROGRAMMA IN CICLO DI SLEEP - ",

"\n",

"\n"," > ORE NON DI TRADING! <");

/////////////////// MODIFICARE STOP LOSS & TAKE PROFIT ALL'INIZIO DEL CICLO DI SONNO /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

Ho apportato le modifiche ma sto ancora ottenendo un ciclo costante di modifiche contro un cambiamento una tantum.

Si prega di consigliare di nuovo, per favore!

Dave

<<<

 

Per favore, pubblica il tuo codice all'interno dei codici [PHP][/PHP]. È molto più facile leggere e fare il debug del codice formattato.

 

Scheda d'ingresso dell'indicatore

Come e dove posso codificare un indicatore in modo che la scheda di input non venga più visualizzata quando è collegato al grafico?

Grazie,

solaris

 
iscuba11:
int start()

{

se (UseHourTrade)

{

int a=0;

int b=0;

int c=0;

if(!(Hour()>=FromHourTrade1 && Hour()<=ToHourTrade1)) a=1;

if(!(Hour()>=FromHourTrade2 && Hour()<=ToHourTrade2)) b=1;

if(!(Hour()>=FromHourTrade3 && Hour()<=ToHourTrade3)) c=1;

if(a==1 && b==1 && c==1)

{

Comment(

"\n"," * CONSULENTE ESPERTO DI VENTO SOLARE *",

"\n",

"\n", " - PROGRAMMA IN CICLO DI SLEEP - ",

"\n",

"\n"," > ORE NON DI TRADING! <");

/////////////////// MODIFICARE STOP LOSS & TAKE PROFIT ALL'INIZIO DEL CICLO DI SONNO /////////////////

//int h=0;

for (int h=OrdersTotal()-1;h>=0;h--)

OrderSelect(h, SELECT_BY_POS, MODE_TRADES);

if (OrderType()>=OP_SELL && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{if( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

OrderModify(OrderTicket(),OrderOpenPrice(),Ask+(15 *Point),Bid-(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

if (OrderType()>=OP_BUY && OrderSymbol()==Symbol() && (OrderMagicNumber () == MagicNumber || MagicNumber==0))

{

if( OrderStopLoss() < Bid - Point * 15 )

OrderModify(OrderTicket(),OrderOpenPrice(),Bid-(15*Point),Ask+(20*Point),Cyan); //Modifica stop loss e take profit

return(0);

}

return(0);

}

}

///////////////////////////////////////////////////////////////////////////////////////

Ho apportato le modifiche ma sto ancora ottenendo un ciclo costante di modifiche contro un cambiamento una tantum.

Si prega di consigliare di nuovo, per favore!

Dave

<<<

prova ad aggiungere la linea viola ..può aiutare

 
solaris:
Come e dove posso codificare un indicatore in modo che la scheda Input non venga più visualizzata quando è collegato al grafico?

Grazie..,

solaris

perché invece non provi a salvarlo come modello... allora non c'è bisogno di impostare di nuovo alcun parametro quando chiami tutti i tuoi indicatori in un nuovo grafico

 

Ho fatto come avete suggerito! (Apprezzo la vostra pazienza)

per (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** Ma sto ancora ottenendo massicce modifiche di loop su un singolo trade come prima!

Evidentemente ho un ciclo dentro un ciclo nella logica!

Dave

<<

Si prega di vedere gli ultimi risultati del backtest. Scusate il logo.htm - Non riesco a liberarmene.

 
iscuba11:
Ho fatto come mi hai suggerito! (Apprezzo la tua pazienza)

for (int cnt1=OrdersTotal()-1;cnt1>=0;cnt1--)

OrderSelect(cnt1, SELECT_BY_POS, MODE_TRADES);

** Ma sto ancora ottenendo massicce modifiche di loop su un singolo trade come prima!

Evidentemente ho un ciclo dentro un ciclo nella logica!

Dave

<<
Si prega di vedere gli ultimi risultati del backtest. Scusate il logo.htm - Non riesco a liberarmene.

provare ad aggiungere il viola sopra ancora?

theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )

e if( OrderStopLoss() < Bid - Point * 15 )