Campionato di trading automatizzato 2007: errori comuni negli esperti - pagina 8

 
O quello
 if(OrderStopLoss()!=(Bid-Point*TrailingStop))
In entrambi i casi controlliamo se lo stop loss è in pip e l'espressione è in pip.

Inoltre, chi ha bisogno di lotti con incrementi di 0,1 e con un limite massimo di 5 lotti

TmpRound = MathRound(Lots/0.1);
        Lots = TmpRound*0.1;       
        if(Lots>5)Lots=5;
        if(Lots<0.1)Lots=0.1;
 
1) Sarebbe bene non solo identificare gli errori comuni negli esperti, ma anche mostrare i modi per risolvere questi problemi.

2) Sarebbe utile per tutti. Ma, per esempio, il classico MACD Sample.mq4 Expert Advisor scritto come esempio dai suoi sviluppatori non supererà il test stesso a causa dell'errore #1.
Perché un trader principiante dovrebbe vedere un esempio di soluzione corretta?

3) A proposito, è un'ottima idea lasciare un semplice Expert Advisor, per esempio, basato sulla mediana, come esempio che soddisfa tutti i requisiti e stabilisce le buone regole per programmare un Expert Advisor. Molte persone lo apprezzerebbero. Sarebbe una buona promozione di MQL4 come base per costruire sistemi di trading automatico.
 
AstaLavista:
1) Sarebbe una buona idea non solo identificare gli errori comuni negli EA, ma anche mostrare i modi per risolvere questi problemi.

2) Tutti ne trarrebbero beneficio. Ma, per esempio, il classico MACD Sample.mq4 Expert Advisor scritto come esempio non supererà il test stesso a causa dell'errore #1.
Perché un trader principiante dovrebbe vedere un esempio di soluzione corretta?

3) A proposito, è un'ottima idea lasciare un semplice Expert Advisor, per esempio, basato sulla mediana, come esempio che soddisfa tutti i requisiti e stabilisce le buone regole per programmare un Expert Advisor. Molte persone lo apprezzerebbero. Sarebbe una buona promozione di MQL4 come base per costruire sistemi di trading automatico.


Parole d'oro!

Spero che questo venga preso in considerazione almeno nei modelli di creazione di codice "wizard" previsti.

 
2 AstaLavista: il codice di Rosh per il trailing è più corretto (anche se dovresti cambiare oldTP in oldSL e newTP in newSL nella linea di confronto tra parentesi) - la sua condizione è ">". E nel tuo caso, se il prezzo torna indietro, allora anche il trailing tornerà indietro, perché la condizione sarà soddisfatta!
 
Stepler2442:
2 AstaLavista: il codice di Rosh per il trailing è più corretto (anche se dovresti cambiare oldTP in oldSL e newTP in newSL nella linea di confronto tra parentesi) - la sua condizione è ">". E nel tuo caso, se il prezzo torna indietro, anche il trailing tornerà indietro, perché la condizione sarà soddisfatta!
In questo caso, basta sostituire per il caso di bay con
 if(OrderStopLoss()<(Bid-Point*TrailingStop)

a valori uguali la condizione non sarà soddisfatta, evitando l'errore #1, e a valori inferiori allo stop impostato la modifica non sarà eseguita - in altre parole, funzionerà come un vero e proprio Trailing Stop
OrderStopLoss() и (Bid-Point*TrailingStop)

 
Stepler2442:
2 AstaLavista: il codice di Rosh per il trailing è più corretto (anche se dovresti cambiare oldTP in oldSL e newTP in newSL nella linea di confronto tra parentesi) - la sua condizione è ">". E nel tuo caso, se il prezzo torna indietro, allora anche il trailing tornerà indietro, perché la condizione sarà soddisfatta!
Grazie, l'ho corretto.
 
AstaLavista:
Stepler2442:
2 AstaLavista: il codice di Rosh per il trailing è più corretto (anche se dovresti cambiare oldTP in oldSL e newTP in newSL tra parentesi) - ha la condizione ">". E nel tuo caso, se il prezzo torna indietro, anche il trailing tornerà indietro, perché la condizione sarà soddisfatta!

In questo caso, sostituite semplicemente l'alloggiamento della cassa con
 if(OrderStopLoss()<(Bid-Point*TrailingStop)


Sì, funzionerà. L'unica differenza e qualche vantaggio del trailing, suggerito da Rosh, è che con esso si può facilmente fare non solo il trailing, ma anche a passi, in modo da non dover saltare in ogni pip e non affaticare il vostro broker con un flusso di modifiche :)
 

Purtroppo a volte non funziona (mi è già successo), ma questo funziona sempre:

if(NormalizeDouble(OrderStopLoss(),Digits) < NormalizeDouble(Bid-Point*TrailingStop,Digits))
 
Sarebbe bello se potessimo trovare la soluzione migliore per tutto, sotto forma di un consulente esemplare...
 

Signori, il log generato dal test automatico dell'EA è disponibile per il download e la visualizzazione? Non riesco a trovarlo nel mio profilo.

Motivazione: