Se aiuta qualcuno, ecco come ho superato la convalida. EA senza stop e modifiche agli ordini ma su tutti i timeframe.
Il validatore ha dato l'errore 131 (lotto sbagliato) e nessun trade. Questo è il mio primo EA, quindi ci sono stati probabilmente tutti gli errori che ho fatto.
Prima ho aggiunto tutti i commenti in inglese per controllare le funzioni di trading, cioè se l'EA non fa trading, dovrebbe emettere un errore in Print().
Ho anche aggiunto il controllo del margine libero e rimosso ExpertRemove() ma non ha aiutato, gli errori sono rimasti gli stessi.
Descriverò i miei esperimenti con "non ci sono operazioni di trading":
1. Dopo aver ricompilato il vecchio EA da Market e aver provato a caricarlo sul sito, è apparso l'errore "non ci sono operazioni di trading":
test on EURUSD,H1
there are no trading operations
test on NZDUSD,H1
there are no trading operations
test on GBPUSDcheck,M30
there are no trading operations
test on XAUUSDcheck,Daily
there are no trading operations
2. Il controllo della disponibilità di quotazioni per tutti i TF non ha mostrato alcun errore (ho usato la divisione per 0). 3. Poi ho iniziato a controllare il volume delle operazioni di trading, ma allo stesso tempo ho ottenuto l'errore "non ci sono operazioni di trading". 4. Poi ha cambiato il numero di lotti in tutti gli OrderSend a SYMBOL_VOLUME_MIN - "non ci sono operazioni di trading" 5. Chiaramente c'è qualcosa che non va con il tester del validatore. E ho provato ad aggiungere l'apertura della posizione in OnInit():
double min_volume=SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_MIN);
int ticket1=OpenPosition(NULL,OP_SELL,min_volume,0,0,magic);
e questo è ciò che ho ottenuto (a proposito, è la prima volta che lo vedo così dettagliato nel validatore):
L'errore "non ci sono operazioni commerciali" è già chiaro qui. Se abbiamo un saldo di 1.00, ovviamente non possiamo aprire un ordine con 0.20 (SYMBOL_VOLUME_MIN). E il controllo del saldo nel codice soddisfa il suo scopo e non permette di piazzare un tale ordine e mostra una stampa nel giornale sul saldo insufficiente (solo che non viene mostrato nel validatore).
Ecco perché non permette di aprire posizioni se SYMBOL_VOLUME_MIN nel validatore è 0,20. Non è possibile impostare un limite così piccolo sul lotto massimo di posizioni di default per il validatore.
Esattamente MT5...
Dicono che solo MT4 è il problema.
Forse è un sabotaggio per passare a MT5...
Se aiuta qualcuno, ecco come ho superato la convalida. EA senza stop e modifiche agli ordini ma su tutti i timeframe.
Il validatore ha dato l'errore 131 (lotto sbagliato) e nessun trade. Questo è il mio primo EA, quindi ci sono stati probabilmente tutti gli errori che ho fatto.
Prima ho aggiunto tutti i commenti in inglese per controllare le funzioni di trading, cioè se l'EA non fa trading, dovrebbe emettere un errore in Print().
Ho anche aggiunto il controllo del margine libero e rimosso ExpertRemove() ma non ha aiutato, gli errori sono rimasti gli stessi.
Ho fatto diversi altri cambiamenti in una volta sola, e non so quale di questi abbia aiutato.
Ho azzerato gli errori all'inizio e alla fine dell'Expert Advisor, ho controllato le quotazioni per tutti i TF
e il calcolo del lotto viene ricalcolato per tutti i casi, se il passo è (0,1), (0,01) e anche (0,001)
Come risultato posso dire che sono riuscito a risolvere tutto velocemente, solo 2 giorni e circa 10 tentativi
1. Dopo aver ricompilato il vecchio EA da Market e aver provato a caricarlo sul sito, è apparso l'errore "non ci sono operazioni di trading":
2. Il controllo della disponibilità di quotazioni per tutti i TF non ha mostrato alcun errore (ho usato la divisione per 0).
3. Poi ho iniziato a controllare il volume delle operazioni di trading, ma allo stesso tempo ho ottenuto l'errore "non ci sono operazioni di trading".
4. Poi ha cambiato il numero di lotti in tutti gli OrderSend a SYMBOL_VOLUME_MIN - "non ci sono operazioni di trading"
5. Chiaramente c'è qualcosa che non va con il tester del validatore. E ho provato ad aggiungere l'apertura della posizione in OnInit():
e questo è ciò che ho ottenuto (a proposito, è la prima volta che lo vedo così dettagliato nel validatore):
L'errore "non ci sono operazioni commerciali" è già chiaro qui. Se abbiamo un saldo di 1.00, ovviamente non possiamo aprire un ordine con 0.20 (SYMBOL_VOLUME_MIN). E il controllo del saldo nel codice soddisfa il suo scopo e non permette di piazzare un tale ordine e mostra una stampa nel giornale sul saldo insufficiente (solo che non viene mostrato nel validatore).
Come pensi che vada bene il validatore?
Aspetteremo che il validatore sia sistemato.
Il margine libero non mi preoccupa, sono stufo dell'Honduras.
Difficile? Sto parlando di espressione.
Ho trovato il problema, per default ho un limite sul lotto massimo di posizioni nei parametri di input.
Ecco perché non permette di aprire posizioni se SYMBOL_VOLUME_MIN nel validatore è 0,20. Non è possibile impostare un limite così piccolo sul lotto massimo di posizioni di default per il validatore.