Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 590
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
Ciao!
Potete per favore mostrarmi come un EA basato sulla Tripla Media Esponenziale può essere proibitoper aprire una posizione se l'ultimo trade è uscito su SL?
MQL5
Non ho problemi in modalità normale, ma appena inizio l'ottimizzazione l'errore viene stampato ad ogni esecuzione e non c'è alcun output.
Ma il fatto è che non esegue nemmeno il codice. Ho messo Prints intorno al programma, nessun output, solo un errore ad ogni esecuzione che esce.
Perché la stampa non funziona?
MQL5
L'Expert Advisor funziona senza problemi in modalità normale, ma appena inizio l'ottimizzazione, si lamenta ad ogni passaggio di essere entrato nei limiti dell'array.
Ma il fatto è che non esegue nemmeno il codice. Ho messo Prints intorno al programma, nessun output, solo un errore ad ogni esecuzione che esce.
Perché la stampa non funziona?
Dovete controllare la dimensione dell'array. Vi viene mostrata una linea in cui c'è un'uscita fuori dall'array. Qui, dovete inserire Print prima di questa linea, in cui scrivete l'output della dimensione e dell'indice dell'array, con cui state cercando di accedere ai dati dell'array - la dimensione e l'indice dell'array saranno stampati nel log, e poi il programma uscirà con un errore.
MA! Fate tutto questo nel tester in modalità visiva, non nell'ottimizzatore - nell'ottimizzatore (e nel tester in modalità non visiva) tutte le stampanti sono disabilitate per l'accelerazione.
Uscire fuori dall'array prima di raggiungere Print().
Controlla la dimensione dell'array. Vi viene mostrata una linea in cui l'output è fuori dall'array. Prima di questa linea, dovete inserire Print, in cui scrivete l'output della dimensione e dell'indice dell'array, con cui state cercando di accedere ai dati dell'array - la dimensione e l'indice dell'array saranno stampati nel diario, e poi il programma andrà in crash.
MA! Fate tutto nel tester in modalità visiva, non nell'ottimizzatore - nell'ottimizzatore (e nel tester in modalità non visiva) le stampanti sono tutte spente per accelerare.
Questo è il problema, tutto funziona con qualsiasi parametro nella visuale, ma con qualsiasi ottimizzazione va fuori dai limiti
Questo è il problema che con qualsiasi parametro nella visualizzazione tutto funziona, ma con qualsiasi ottimizzazione è fuori dai limiti
Cosa c'è nella matrice? Posso solo immaginare che o non ci sono ancora dati nell'array, o è più piccolo di quanto pensi. Ci sono controlli nel programma per la dimensione dell'array?
Cosa c'è nella matrice? Posso solo immaginare che o non ci sono ancora dati nell'array, o è più piccolo di quanto pensi. Ci sono controlli nel programma per la dimensione dell'array?
Ultimo N, ho 500, valori macd, e i limiti di ciclo sono strettamente limitati e non possono mai essere inferiori a 0 e superiori a N, l'ho sia debuggato che contato sulla carta
L'ultimo N, ho 500, valori macd, e i limiti del ciclo sono strettamente limitati e non possono mai essere meno di 0 e più di N, l'ho sia debuggato che contato sulla carta
Sei sicuro che l'array sia pieno di dati quando vi accedi? C'è un controllo della disponibilità dei dati e che l'array abbia il valore giusto?
Solo perché è scritto e calcolato su un pezzo di carta non significa che corrisponde a ciò che l'EA ha ricevuto (non ha ricevuto).
Siete sicuri che l'array sia pieno di dati quando vi accedete? C'è un controllo che i dati siano disponibili e che l'array abbia la giusta dimensione?
Solo perché è scritto e calcolato su un pezzo di carta non significa che corrisponda a ciò che l'Expert Advisor ha ricevuto (non ha ricevuto).
Sì, all'inizio, prima di tutte le operazioni, viene copiato dal buffer.
Sì, all'inizio, prima di tutte le operazioni, copiate dal buffer
Copiato. E quanto viene copiato viene controllato?
Se stai usando un indicatore con smoothing, richiede qualche barra in più di quanto ti aspetti. Pertanto, solo perché avete copiato non significa che i dati siano stati copiati e siano disponibili in tutte le loro dimensioni.
È più facile per voi controllare la dimensione dell'array e, se non ha la dimensione richiesta, uscire da OnTick()