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
È chiaro che l'azzeramento è stato fatto per compatibilità, ma non è chiaro perché quando enum inutilizzato = WRONG_VALUE è inizializzato correttamente , non funziona correttamente. Questo approccio manca di portabilità e aumenta significativamente la probabilità di errori nascosti.
Ricordate questa regola?
Regola: se a una costante nominata - membro di un'enumerazione non è assegnato esplicitamente un valore specifico, il suo valore sarà generato automaticamente. Se è il primo membro dell'enumerazione, viene assegnato il valore 0. Per tutti i membri successivi, i valori saranno calcolati in base al valore del membro precedente aggiungendo uno.
Molto probabilmente, il controllo della correttezza dei campi della query presuppone che il valore di un membro dell'enumerazione non possa essere negativo. La possibilità di assegnare WRONG_VALUE a un membro dell'enumerazione non è presa in considerazione.
Tuttavia, la possibilità di assegnare WRONG_VALUE a un membro dell'enumerazione non è presa in considerazione.
Penso che questo sia esattamente l'errore qui. Se non si usa un enum concreto, è logico che il suo valore sarà WRONG_VALUE invece che, per esempio, ORDER_TYPE_BUY che effettivamente = 0.
e soprattutto - niente vi impedisce di cambiare la logica di OrderCheck() e OrderSend() mantenendo la compatibilità
e soprattutto, nulla vi impedisce di cambiare la logica di OrderCheck() e OrderSend() mantenendo la compatibilità
Ho scoperto uno strano "bug".
Sto usando questo codice nel mio EA:
Una singola esecuzione nel tester passa senza problemi, ma appena scelgo i parametri con la ricerca completa, il tester comincia a lavorare dieci o dieci volte più lentamente. Non capisco perché la velocità è adeguata durante una corsa e cala notevolmente durante l'ottimizzazione. Inoltre, cala geometricamente. Si può vedere dalla percentuale che tutto va bene all'inizio ma verso la fine la velocità continua a scivolare sempre più lentamente. Ho cercato dei problemi nel mio codice e ho cercato dei loop o qualcosa del genere, ma non li ho trovati. Dopo di che ho sostituito il codice di cui sopra con il mio algoritmo e oh mio Dio! L'ottimizzazione ora funziona a una velocità normale e uniforme. Questo mi porta alla conclusione che il problema è in MQL5, da qualche parte nel corpo della funzione OnTradeTransaction. Chiederò agli sviluppatori di prestare attenzione a questo.
p.s. Non posso postare il codice di Expert Advisor. Prova ad usare il codice di cui sopra in uno qualsiasi dei tuoi EA e guarda la velocità di ottimizzazione in OHLC M5 per il periodo dal 2000 ad oggi.
Ho scoperto uno strano "bug".
Sto usando questo codice nel mio EA:
Una singola esecuzione nel tester passa senza problemi, ma appena scelgo i parametri con la ricerca completa, il tester inizia a lavorare dieci o dieci volte più lentamente. Non capisco perché la velocità è adeguata durante una corsa e cala notevolmente durante l'ottimizzazione. Inoltre, cala geometricamente. Si può vedere dalla percentuale che tutto va bene all'inizio ma verso la fine la velocità continua a scivolare sempre più lentamente. Ho cercato dei problemi nel mio codice e ho cercato dei loop o qualcosa del genere, ma non li ho trovati. Dopo di che ho sostituito il codice di cui sopra con il mio algoritmo e oh mio Dio! L'ottimizzazione ora funziona a una velocità normale e uniforme. Questo mi porta alla conclusione che il problema è in MQL5, da qualche parte nel corpo della funzione OnTradeTransaction. Chiederò agli sviluppatori di prestare attenzione a questo.
p.s. Non posso postare il codice di Expert Advisor. Prova ad usare il codice di cui sopra in uno qualsiasi dei tuoi EA e guarda la velocità di ottimizzazione di OHLC M5 per il periodo dal 2000 ad oggi.
Per diversi parametri, l'EA può funzionare per diverse durate
Dopo aver sostituito il codice di cui sopra con il tuo algoritmo
Cioè hanno rinunciato a usare OnTradeTransaction() ? - allora è logico che la velocità sia aumentata - si chiama in ogni occasione
Cosa ti impedisce di fare un caso di test minimo e riferire al service desk?