Errori, bug, domande - pagina 489

 
Vigor:
Puoi vedere che l'Expert Advisor lavora ai prezzi aperti della barra dell'ora. L'ultimo prezzo aperto era 23-00.

Sbagliato - m30, lo puoi vedere anche nella mia foto. Trovato un bug su M5.

 
Swan:

L'effetto ottenuto dal cutoff è discutibile, il numero di stampe è ridotto del 10%, e bisogna andare al log per avere informazioni complete...

Controlliamo, ogni 10 messaggi non dovrebbe essere tagliato.


Scrivere su un file è più veloce che visualizzarlo sullo schermo?

Sicuramente più veloce se stiamo parlando di migliaia di linee. La differenza di velocità è di circa 100 volte e più.
 
Renat:
Controlliamo, ogni 10 messaggi non dovrebbe essere tagliato.

Renat, puoi rendere possibile l'esecuzione del tester all'ora corrente?
È molto utile quando il mercato inizia a rompere chiaramente, ma dobbiamo aspettare la fine della giornata di trading e non c'è la possibilità di ri-ottimizzare il sistema.

Документация по MQL5: Дата и время / TimeCurrent
Документация по MQL5: Дата и время / TimeCurrent
  • www.mql5.com
Дата и время / TimeCurrent - Документация по MQL5
 
crOss:

Renat, puoi rendere possibile l'esecuzione del tester all'ora corrente?
È molto rilevante quando il mercato inizia a rompere chiaramente, ma dobbiamo aspettare la fine della giornata di trading e non c'è la possibilità di ri-ottimizzare il sistema.

Abbiamo deliberatamente fatto la data limite per ultima in modo che non ci siano domande sul "perché due passaggi identici hanno dato risultati diversi". Sfortunatamente, questa è una situazione massiccia che colpisce anche tutti i risultati dell'ottimizzazione. Dall'inserimento del punteggio fino all'ultimo minuto, tutti avranno troppi problemi.

Forse faremo un aggiustamento in futuro.

 
Renat:

Abbiamo deliberatamente fatto la data limite per ultima in modo che non ci siano domande sul "perché due passaggi identici hanno dato risultati diversi". Sfortunatamente, questa è una situazione massiccia che colpisce anche tutti i risultati dell'ottimizzazione. Dall'inserimento del punteggio fino all'ultimo minuto, tutti hanno troppi problemi.

Forse faremo un aggiustamento in futuro.

Sarebbe molto bello avere un'impostazione del genere, anche se potrebbe essere più semplice... All'inizio dell'ottimizzazione viene ricordata la data "ora corrente".
e fino all'inizio dell'ottimizzazione successiva il tester opera con esso come limite destro dell'intervallo, anche nelle corse di prova. Allora le stesse corse daranno gli stessi risultati. Le pecore stanno bene e i lupi sono soddisfatti ))))

E l'abbandono dell'ultima ora nelle corse di prova? Inoltre, ho notato che il tester non parte da 00:00:00 ma quando deve (vedi immagine).

Inoltre, quando ho creato un Expert Advisor multivaluta ho affrontato un problema.
Durante i test, le quotazioni ottenute per un simbolo specifico nello stesso momento variano a seconda del nome del grafico (vedi immagine).
Il risultato totale del sistema per molti simboli può cambiare significativamente a causa di tali fluttuazioni di prezzo, specialmente per timeframe inferiori a un'ora (H1).

 
crOss:

Inoltre, ho notato che il tester non parte alle 00:00:00 ma quando deve (vedi immagine).
Il tester inizia i test a 100 barre dall'inizio per evitare potenziali errori quando si lavora con una storia vuota. Pertanto, il test non inizia alle 00:00:00
 
crOss:

Inoltre, ho affrontato un problema durante la creazione di un Expert Advisor multivaluta.

Durante i test, le quotazioni ottenute per un particolare strumento nello stesso momento cambiano a seconda del nome del grafico (vedi immagine).
Il risultato totale del sistema per molti simboli può cambiare significativamente a causa di tali fluttuazioni di prezzo, specialmente per i timeframe inferiori a un'ora (H1).

Cerca di mostrare l'area del problema in modo più dettagliato, per favore. L'immagine allegata non è molto chiara.

 
Renat:
Il tester inizia il test a 100 barre dall'inizio per evitare potenziali errori quando si lavora con una storia vuota. Pertanto, il test non inizia alle 00:00.

Molto probabilmente, non sarà vuoto e si può controllare, e il tester dovrebbe funzionare di conseguenza (se è vuoto, va indietro di 100 battute, se non lo è, parte da 00:00).
OK. Supponiamo che dalla 100a barra dall'inizio - timeframe 5 minuti, 100 barre = 500 minuti / 60 ~ 8,3 ore. E il test inizia dopo 2 ore. Neanche questo ha senso.
Dove va a finire l'ultima ora
? Il tester finisce alle 23:00 al limite prima della data corrente. Perché non alle 23:59:59? L'ultima ora non è affatto superflua )))

Renat:

Prova a mostrare l'area del problema in modo più dettagliato, per favore. L'immagine allegata non è molto chiara.

Expert Advisor ha un gestore OnTick() della seguente forma:

void OnTick()
{
double ask = SymbolInfoDouble("EURCHF", SYMBOL_ASK);
double bid = SymbolInfoDouble("EURCHF", SYMBOL_BID);

Print("ask: ", ask, " bid: ", bid);
}

Durante un test sul grafico EURUSD si ottengono quotazioni diverse da quelle di un test sul grafico EURCHF (per esempio),
Anche se il range e il timeframe del test, così come il simbolo per il quale riceviamo le quotazioni SymbolInfoDouble("EURCHF",...) non cambia.
Così, si scopre che i risultati di un test variano a seconda del simbolo selezionato. Dovrebbero essere uguali.



 
Renat:
Il risultato dipende interamente dall'esaminatore stesso e dalla sua sensibilità al flusso dei prezzi. I risultati sono più accurati se testati su una base di tick.
Mi sembra che questo fenomeno sia possibile se nei calcoli l'esperto usa la barra attuale che si sta formando.
 

crOss, il fatto è che se si scelgono strumenti diversi quando si testa il multicurrency, i risultati possono essere diversi se si usa OnTick. Soprattutto quando si esegue l'Expert Advisor su prezzi aperti.

La barra di uno strumento si apre sempre prima della barra di un altro strumento, perché i tick seguono sempre lo stesso flusso. E un tick per uno strumento sarà sempre prima di un tick per un altro strumento, anche se sono segnati con la stessa ora. A proposito, una barra può aprirsi non esattamente a 0 secondi, ma in alcuni secondi o addirittura minuti.

Cioè, se fai il test sull'apertura di una barra di uno strumento, la barra corrispondente di un altro strumento non si è ancora aperta. E se testate l'apertura di una barra di un altro simbolo, la barra corrispondente del primo strumento si è già aperta.

Ecco perché ci può essere una differenza

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
Motivazione: