Errori, bug, domande - pagina 505

 
sergey1294:
La stessa funzione restituisce zero. Ho provato ancheSERIES_TERMINAL_FIRSTDATE . La conclusione è che la funzione SeriesInfoInteger non funziona nel tester. Funziona solo per lo strumento su cui il test è in esecuzione. Forse avete qualche idea su come eseguire il test per strumenti con diverse date di inizio della storia quando si seleziona l'intervallo "Tutta la storia".

Ho deciso di verificare le sue conclusioni. Ho eseguito il test Expert Advisor su Alpari-Demo e lo stesso nel tester in modalità visualizzazione dal 2000. I risultati dell'esecuzione di init sono nell'allegato.

Se la storia del periodo testato è sul server, SeriesInfoInteger() restituisce nel tester gli stessi dati che erano sul demo. Se non c'è storia (come su EURAUD, dal 2004.06.16) alla data del test, il tester restituisce errore: 2011.09.05 09:40:53 EURAUD: contiene 0 record M1.

Quindi, SeriesInfoInteger() funziona ancora nel tester, se il server ha la storia corrispondente e il tester può caricarla. Se colpisce la cronologia "vuota", il test si blocca semplicemente, anche se la barra di progresso si muove.

File:
 
Valmars:

Ho deciso di verificare le sue conclusioni. Ho eseguito il test Expert Advisor su Alpari-Demo e lo stesso nel tester in modalità visualizzazione dal 2000. I risultati dell'esecuzione di init sono nell'allegato.

Se la storia del periodo testato è sul server, SeriesInfoInteger() restituisce nel tester gli stessi dati che erano sul demo. Se non c'è storia (come su EURAUD, dal 2004.06.16) al momento della data di inizio del test, il tester restituisce errore: 2011.09.05 09:40:53 EURAUD: contiene 0 record M1.

Quindi, SeriesInfoInteger() funziona ancora in tester, se il server ha una storia appropriata e il tester può caricarla. Se colpisce la cronologia "vuota", il test si blocca semplicemente, anche se la barra di avanzamento si muove.

strano restituisco degli zeri nel tester, cosa sto facendo di sbagliato?
 
sergey1294:
Stranamente ho restituito degli zeri nel tester, cosa faccio di sbagliato?

E si imposta l'intervallo di prova non su 'Tutta la storia' ma in modo che la storia sia garantita per tutti i caratteri, ad esempio 'L'anno scorso'. Allora non ci dovrebbero essere zeri, ma l'inizio della storia caricata dal tester. Lo ricevo dal 4.01.2010.

P.S. Ma in realtà è strano, se il tester ha scaricato la storia esistente con 2004g. , dovrebbe dare fuori e data di inizio della storia 2004 per questo simbolo, e non zeri, anche se la data di inizio del test prima della storia esistente. Credo che questo sia un bug.

 
Oltre al fatto che il tempo nel terminale MT5 è improvvisamente saltato da GMT+1 a GMT+0, ho anche trovato un errore - dopo la fine della candela di un'ora appena passata i valori del volume nelle candele precedenti sono cambiati, e significativamente. Posso solo dire con certezza delle candele di oggi - le ho salvate tutte in successione dall'inizio della sessione: 0:00 1841 - 2269, 1:00 2556 - 3235, 2:00 2436 - 2975, 3:00 1700 - 3096, 4:00 1391 - 1690, il tempo del terminale non è corretto.
 
Arkadiy:
Oltre al fatto che il tempo nel terminale MT5 è improvvisamente saltato da GMT+1 a GMT+0, ho anche trovato un errore - dopo la fine della candela di un'ora appena passata i valori del volume nelle candele precedenti sono cambiati, e significativamente. Posso solo dire con certezza delle candele di oggi - le ho salvate tutte in successione dall'inizio della sessione: 0:00 1841 - 2269, 1:00 2556 - 3235, 2:00 2436 - 2975, 3:00 1700 - 3096, 4:00 1391 - 1690, il tempo del terminale è "sbagliato". Questo è un errore con MT5.
Ho dimenticato di dire - coppia EURUSD.
 
Valmars:

E impostate l'intervallo di prova non su 'Tutta la storia' ma in modo che la storia sia garantita per tutti i caratteri, ad esempio 'L'anno scorso'. Allora non ci dovrebbero essere zeri, ma l'inizio della storia caricata dal tester. L'ho avuto dal 4.01.2010.

P.S. Ma in realtà è strano, se il tester ha scaricato la storia esistente dal 2004. , allora dovrebbe dare la data di inizio e la storia 2004 per questo simbolo, e non gli zeri, anche se la data di inizio prima della storia esistente. Credo che questo sia un bug.

Ho provato a impostare l'anno scorso, la stessa cosa. Ho bisogno di eseguire l'EA sull'intera storia su tutti i simboli.
 

Scoperto durante la normalizzazione del lotto. Controlla il tuo:

Print(NormalizeDouble(0.07,2);

Contrariamente alle aspettative, stampe: 0,0700000000000000000000001

 
SoundChip:

Scoperto durante la normalizzazione del lotto. Controlla il tuo:

Print(NormalizeDouble(0.07,2);

Contrariamente alle aspettative, stampa: 0.07000000000000001

https://www.mql5.com/ru/forum/4033
 
Capito, grazie.
 

Proverò a fare la domanda una terza volta). MetaDriver ha mostrato un esempio qui. È qui che ho dato il mio esempio.

Il grafico si restringe quando il numero di scambi inizia a superare i 3000. Questo problema è considerato dagli sviluppatori?

Questo problema non ci permette di analizzare i risultati delle transazioni nel terminale in una sola volta quando si testa il sistema su una grande striscia di dati storici quando la quantità di operazioni può essere di circa 10000 e più.

Ricordo che avevo qualcosa di simile in Excel. Ma il programma era sovraccarico di formule complesse e semplicemente si bloccava se il numero di linee superava le 5000. Quale potrebbe essere il problema qui?

Motivazione: