MetaTrader 5 Strategy Tester: bug, errori, suggerimenti per il miglioramento - pagina 39

 
Se state debuggando uno script o un EA e vi aggirate nel collstack, una freccia verde appare sul lato sinistro del codice sorgente, mostrando su quale linea vi trovate. Se vagate per il collstack in diversi file, per esempio molti inludi diversi, infatti ogni scheda aperta con il proprio file avrà una freccia verde diversa. Ma quando smetto di fare il debug, non scompaiono, ma rimangono lì. Bug o insetto?
 
Non so se questo è già stato menzionato in questo thread o no. Forse finalmente renderanno l'accesso a tutte le barre disponibili dal tester? Sono davvero stufo di lavorare su 5 minuti per caricare i TF più alti per diversi anni con le stampelle!
 
traveller00:

Viene utilizzata una build di 2280. Prende un simbolo e un punto quando non c'erano citazioni. In questo caso si tratta di borsa valori, broker Otkritie, simbolo UCAD-12.19, periodo 01.09.2019-03.09.2019. Un semplice Expert Advisor è in esecuzione (sotto). Se lo fai correre un passaggio alla volta, va bene, dice solo che non c'è storia, 0 barre e 0 tick. Se eseguo l'ottimizzazione, non importa se è genetica o piena, il log conterrà un sacco di errori

Sembra essere una risposta per accedere all'arrayOldTicks, ma non so perché. Sostituire il risultato del ritorno della funzione con la dimensione dell'array non aiuta. Cosa farne è sconosciuto.

Per riprodurre e risolvere questo errore abbiamo bisogno di un esperto in forma di ex5 e condizioni di ottimizzazione.

Se non è un problema per voi, inviatemelo in messaggi privati. L'esperto sarà irrimediabilmente cancellato dopo la ricerca

 
Slava:

Per riprodurre e correggere questo errore, abbiamo bisogno di un esperto nella forma di ex5 e nelle condizioni di ottimizzazione.

Se non è troppo disturbo per te, allora dammelo in un messaggio privato. Dopo la ricerca l'esperto sarà irrevocabilmente cancellato

Il codice sorgente dell'Expert Advisor è riportato nello stesso post. Per sicurezza, l'ho postato di nuovo qui sotto.

Il simbolo e il punto, quando non c'erano citazioni. Nel mio caso si tratta di borsa valori, broker Otkritie, simbolo UCAD-12.19, periodo 01.09.2019-03.09.2019.

Ottimizzazione genetica o overshoot completo - non importa. Con un test di una sola variabile, più passaggi, messi da 0 a 1000000.

input int test=1;

double OnTester()
{
  return 0;
}

void Test(const MqlTick &Tick)
{
}

void OnInit()
{
  MqlTick OldTicks[];
  int OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL);
  while(OldTicksCount>=1000)
    OldTicksCount=CopyTicks(_Symbol,OldTicks,COPY_TICKS_ALL,OldTicks[OldTicksCount-500].time_msc);
  for(int i=0;i!=ArraySize(OldTicks);++i)
    Test(OldTicks[i]);
}
 
traveller00:

Viene utilizzata una build di 2280. Prende un simbolo e un punto quando non c'erano citazioni. In questo caso si tratta di borsa valori, broker Otkritie, simbolo UCAD-12.19, periodo 01.09.2019-03.09.2019. Un semplice Expert Advisor è in esecuzione (sotto). Se lo fai correre un passaggio alla volta, va bene, dice solo che non c'è storia, 0 barre e 0 tick. Se eseguo l'ottimizzazione, non importa se è genetica o piena, il log conterrà un sacco di errori

Sembra essere una risposta per accedere all'arrayOldTicks, ma non so perché. Sostituire il risultato del ritorno della funzione con la dimensione dell'array non aiuta. Non si sa cosa fare al riguardo.

Grazie per il messaggio!

Il problema è stato trovato e risolto.

 
Anton:

Grazie per il tuo messaggio!

Il problema è stato trovato e risolto.

Grazie.

 
Non c'era nessuna storia scaricata. Iniziato su tutti i personaggi.
2019.12.16 16:41:50.787 Tester  Experts\fxsaber\Research\Research03.ex5 on EURGBP,H1 from 2015.01.01 00:00 to 2019.12.16 00:00
2019.12.16 16:41:50.787 Tester  optimization on all MarketWatch symbols started
2019.12.16 16:41:50.790 Core 1  agent process started on 127.0.0.1:3000
2019.12.16 16:41:50.791 Core 2  agent process started on 127.0.0.1:3001
2019.12.16 16:41:50.792 Core 3  agent process started on 127.0.0.1:3002
2019.12.16 16:41:50.793 Core 4  agent process started on 127.0.0.1:3003
2019.12.16 16:41:50.794 Core 5  agent process started on 127.0.0.1:3004
2019.12.16 16:41:50.795 Core 6  agent process started on 127.0.0.1:3005
2019.12.16 16:41:51.145 Core 4  connecting to 127.0.0.1:3003
2019.12.16 16:41:51.145 Core 4  connected
2019.12.16 16:41:51.155 Core 2  connecting to 127.0.0.1:3001
2019.12.16 16:41:51.155 Core 2  connected
2019.12.16 16:41:51.162 Core 4  authorized (agent build 2280)
2019.12.16 16:41:51.162 Core 1  connecting to 127.0.0.1:3000
2019.12.16 16:41:51.162 Core 1  connected
2019.12.16 16:41:51.162 Core 3  connecting to 127.0.0.1:3002
2019.12.16 16:41:51.163 Core 3  connected
2019.12.16 16:41:51.163 Tester  EURGBP: history data begins from 2003.02.06 00:00
2019.12.16 16:41:51.163 Core 4  pass 0 started on EURGBP
2019.12.16 16:41:51.167 Core 4  common synchronization completed
2019.12.16 16:41:51.171 Core 2  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 3  authorized (agent build 2280)
2019.12.16 16:41:51.178 Core 1  authorized (agent build 2280)
2019.12.16 16:41:51.276 Tester  EURUSD: history data begins from 1971.01.04 00:00
2019.12.16 16:41:51.276 Core 2  pass 1 started on EURUSD
2019.12.16 16:41:51.280 Core 2  common synchronization completed
2019.12.16 16:41:51.476 Core 3  GBPUSD: preliminary downloading of M1 history started
2019.12.16 16:41:51.694 Core 2  EURUSD: history for 2014 year synchronized
2019.12.16 16:41:52.009 Core 2  EURUSD: history for 2015 year synchronized
2019.12.16 16:41:52.351 Core 2  EURUSD: history for 2016 year synchronized
2019.12.16 16:41:52.663 Core 2  EURUSD: history for 2017 year synchronized
2019.12.16 16:41:52.958 Core 2  EURUSD: history for 2018 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history for 2019 year synchronized
2019.12.16 16:41:53.080 Core 2  EURUSD: history synchronization completed [13567 Kb]
2019.12.16 16:41:53.080 Core 2  EURUSD: 13.25 Mb of history processed in 0:01.778
2019.12.16 16:41:56.077 Core 4  pass 0 on EURGBP returned result 100000.00 in 0:00:04.862
2019.12.16 16:41:57.077 Core 2  pass 1 on EURUSD returned result 100000.00 in 0:00:03.961
2019.12.16 16:42:05.052 Core 3  pass 2 started on GBPUSD
2019.12.16 16:42:05.059 Core 3  common synchronization completed
2019.12.16 16:42:05.276 Core 3  GBPUSD: history synchronization started
2019.12.16 16:42:06.143 Core 4  pass 3 started on AUDCAD
2019.12.16 16:42:06.143 Core 5  connecting to 127.0.0.1:3004
2019.12.16 16:42:06.144 Core 6  connecting to 127.0.0.1:3005
2019.12.16 16:42:06.144 Core 5  connected
2019.12.16 16:42:06.144 Tester  testing on MarketWatch symbols finished, total passes 2
2019.12.16 16:42:06.144 Statistics      optimization done in 0 minutes 16 seconds
2019.12.16 16:42:06.144 Statistics      local 2 tasks (100%), remote 0 tasks (0%)
2019.12.16 16:42:06.144 Core 6  connected
2019.12.16 16:42:06.167 Tester  2 new records saved to cache file 'tester\cache\Research03.all_symbols.H1.20150101.20191216.22.FBC21040E327AF5F62DDA1A545DE091D.opt'
2019.12.16 16:42:06.168 Core 1  connection closed
2019.12.16 16:42:06.168 Core 2  connection closed
2019.12.16 16:42:06.168 Core 3  connection closed
2019.12.16 16:42:06.172 Core 6  authorized (agent build 2280)
2019.12.16 16:42:06.177 Core 5  authorized (agent build 2280)
2019.12.16 16:42:06.349 Core 4  AUDCAD: history synchronization started
2019.12.16 16:42:11.777 Core 3  GBPUSD: history downloading completed
2019.12.16 16:42:11.777 Core 3  GBPUSD: history synchronization interrupted
2019.12.16 16:42:11.777 Core 4  connection closed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history downloading completed
2019.12.16 16:42:24.794 Core 4  AUDCAD: history synchronization interrupted
2019.12.16 16:42:24.794 Core 5  connection closed
2019.12.16 16:42:24.794 Core 6  connection closed
2019.12.16 16:42:24.794 Tester  stopped by user
Dopo la linea evidenziata, ha premuto Stop. Il terminale è entrato in modalità "Non risponde". Si è riattaccato dopo 27 secondi (a giudicare dal log).
 
Come si calcola il numero di tutti gli errori di una singola esecuzione di EX5? Per esempio, lotto sbagliato o mancanza di margine.
 
Bild 2280. Prende un simbolo e un punto quando non c'erano citazioni. In questo caso si tratta di una borsa valori, broker Otkritie, simbolo 1MFR-1.20, periodo 01.09.2019-01.12.2019. Esegue qualsiasi Expert Advisor, ad esempio da Examples\Moving Average\Moving Average.ex5. L'ottimizzazione genetica è impostata (anche se sospetto che anche altri abbiano questo bug), il criterio non fa differenza (non ci sono zecche comunque), ogni zecca si basa su zecche reali, profitto in pip. Lo ottimizziamo e otteniamo essenzialmente una serie di passaggi zero. Perché profit_factor e margin_level sono riempiti di spazzatura in ogni passaggio? Le variabili non sono inizializzate con zero da qualche parte? Nella scheda del backtest sembra solo uno spazio vuoto, non emette nulla. Se analizziamo il file opt a mano, i valori sono profit_factor = 1.797693134862316e+308 e margin_level = 1.797693134862316e+308.
 
traveller00:
fattore_profitto = 1,797693134862316e+308 e livello_margine = 1,797693134862316e+308.

DBL_MAX