Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
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);
}
}
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
<<
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
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
Come e dove posso codificare un indicatore in modo che la scheda Input non venga più visualizzata quando è collegato al grafico?
Grazie..,
solarisperché 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!
Dave
<<Si prega di vedere gli ultimi risultati del backtest. Scusate il logo.htm - Non riesco a liberarmene.
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!
Dave
<<provare ad aggiungere il viola sopra ancora?
theif( OrderStopLoss() > Ask + Point * 15 || OrderStopLoss() == 0 )
e if( OrderStopLoss() < Bid - Point * 15 )