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

 
Slava:

Test/ottimizzazione su zecche reali?

Agenti propri o dal cloud?

Se i test su un simbolo personalizzato, allora gli agenti cloud cadono. Così gli agenti sono i loro propri, e si possono estrarre i loro registri e vedere nei registri come la storia è stata sincronizzata

Agenti personalizzati e proprietari, sincronizzazione senza errori su tick reali. Expert Advisor per il replay.

// Критерий оптимизации - сумма входных параметров + сумма нецелых частей секунды каждого тика (в миллисекундах).

input int inFakeRange1 = 0;
input int inFakeRange2 = 0;
input int inFakeRange3 = 0;
input int inFakeRange4 = 0;
input int inFakeRange5 = 0;

long Sum = inFakeRange1 + inFakeRange2 + inFakeRange3 + inFakeRange4 + inFakeRange5;

void OnTick()
{
  MqlTick Tick;
  
  if (SymbolInfoTick(_Symbol, Tick))
    Sum += Tick.time_msc % 1000;
}

double OnTester()
{
  return((double)Sum);
}


Risultato.

Dal valore della prima riga, è subito chiaro che il valore non ha senso: non può essere così diverso dai valori delle altre righe.


Ed eseguendo un singolo.


99% di spazzatura in tick durante l'ottimizzazione GA. Fatemi sapere se siete riusciti a riprodurlo o no.

Stringa di ricerca: Oshibka 005.
 
fxsaber:

Sincronizzazione personalizzata, propri agenti, senza errori, su tick reali. EA per la riproduzione.


Risultato.

Dal valore della prima riga, è subito chiaro che il valore non ha senso: non può essere così diverso dai valori delle altre righe.


Ed eseguendo un singolo.


99% di spazzatura in tick durante l'ottimizzazione GA. Fatemi sapere se siete riusciti a riprodurlo o no.

Stringa di ricerca: Oshibka 005.

Dovete guardare il log dell'ottimizzazione dall'agente su cui è stato emesso il valore nonsense.

E il registro dei test del passaggio singolo corrispondente.

 
Slava:

Dovete guardare il log dell'ottimizzazione dall'agente su cui è stato emesso il valore nonsense.

E un registro di prova del passaggio singolo corrispondente.

Guardate il singolo valore. È corretto e molto diverso da tutti i valori di Optimizer, non solo uno. Cioè l'errore è letteralmente in ogni linea dell'ottimizzatore.

Guarderò i registri. Sarebbe bene che tu lo gestissi da solo.

2020.02.20 10:47:18.839 Core 6  genetic pass (5, 312) returned result 10563025086.000000 in 0:00:05.475
2020.02.20 10:47:20.023 Core 2  genetic pass (5, 209) returned result 8885031952.000000 in 0:00:04.947
2020.02.20 10:47:23.048 Core 3  genetic pass (5, 240) returned result 10373435790.000000 in 0:00:05.984
2020.02.20 10:47:23.366 Core 1  genetic pass (5, 181) returned result 10236426953.000000 in 0:00:05.654
2020.02.20 10:47:24.069 Core 4  genetic pass (5, 271) returned result 10597154696.000000 in 0:00:05.768
2020.02.20 10:47:24.509 Core 5  genetic pass (5, 296) returned result 10580660389.000000 in 0:00:05.853
2020.02.20 10:47:24.613 Core 6  genetic pass (5, 313) returned result 10563025078.000000 in 0:00:05.774
2020.02.20 10:47:25.113 Core 2  genetic pass (5, 218) returned result 8885031945.000000 in 0:00:05.089
Evidenziato il valore corretto. Ha esaminato il registro. Solo Core1 ha il valore corretto.
 
fxsaber:

Ha esaminato il registro. Solo Core1 ha il valore corretto.

Completamente localizzato. Il passaggio singolo su Core1 non corrisponde al passaggio singolo su Core2. Quindi non posso ancora dire quale sia quella corretta.

 
fxsaber:

Completamente localizzato. Il singolo passaggio su Core1 non è lo stesso del singolo passaggio su Core2. Quindi non posso ancora dire quale sia quella corretta.

Cosa c'è nei registri degli agenti? È lì che si scrive la cronologia.
 
Slava:
Cosa c'è nei registri degli agenti? È lì che si scrive la cronologia.

Ho provato diversi personaggi perché non sempre si riproduce. Registri dell'agente all'ottimizzazione.

Core1.

EL      0       12:57:18.438    127.0.0.1       login (build 2323)
ND      0       12:57:18.455    Tester  account info found with currency USD
FO      0       12:57:18.456    Network 1482 bytes of tester parameters loaded
FF      0       12:57:18.456    Network 2748 bytes of input parameters loaded
DS      0       12:57:18.456    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
NK      0       12:57:18.456    Network 1032 bytes of optimized inputs info loaded
PM      0       12:57:18.527    Tester  successfully initialized
GE      0       12:57:18.527    Network 12 Kb of total initialization data received
JR      0       12:57:18.528    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OE      0       12:57:18.528    Tester  optimization pass 35025 started (batch of 53 tasks)
QQ      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
RP      0       12:57:18.529    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
LF      0       12:57:18.534    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.001
EK      0       12:57:18.534    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
FL      0       12:57:18.537    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
ML      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
MK      0       12:57:18.538    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
MG      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
CD      0       12:57:18.882    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
QG      0       12:57:26.327    Tester  35025 OnTester result 6963974890 : passed in 0:00:07.795
JQ      0       12:57:31.481    Tester  5593 OnTester result 10077649365 : passed in 0:00:05.153
CE      0       12:57:32.683    127.0.0.1       tester forced to stop
DS      0       12:57:32.684    Tester  2 of 53 passes processed (2 successfully finished) in 0:00:12.948
CS      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
HE      0       12:57:32.684    127.0.0.1       prepare for shutdown


Core2.

OS      0       12:57:18.438    127.0.0.1       login (build 2323)
IG      0       12:57:18.456    Tester  account info found with currency USD
OL      0       12:57:18.460    Network 1482 bytes of tester parameters loaded
OE      0       12:57:18.460    Network 2748 bytes of input parameters loaded
EP      0       12:57:18.460    Tester  expert file added: Experts\Test123.ex5. 12221 bytes loaded
GJ      0       12:57:18.460    Network 1032 bytes of optimized inputs info loaded
FM      0       12:57:18.532    Tester  successfully initialized
QJ      0       12:57:18.532    Network 12 Kb of total initialization data received
IS      0       12:57:18.532    Tester  Intel Core i7-2700 K  @ 3.50 GHz, 16301 MB
OG      0       12:57:18.532    Tester  optimization pass 115298 started (batch of 18 tasks)
IQ      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol to be synchronized
KP      0       12:57:18.533    Symbols CHFJPY.rann_RannForex: symbol synchronized, 3720 bytes of symbol info received
KE      0       12:57:18.545    History CHFJPY.rann_RannForex: load 444 bytes of history data to synchronize in 0:00:00.002
FD      0       12:57:18.545    History CHFJPY.rann_RannForex: history synchronized from 2018.02.26 to 2020.02.14
DK      0       12:57:18.546    Ticks   CHFJPY.rann_RannForex: ticks synchronization started
PO      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: load 64 bytes of tick data to synchronize in 0:00:00.000
HJ      0       12:57:18.547    Ticks   CHFJPY.rann_RannForex: history ticks synchronized from 2019.06.03 to 2020.02.14
JH      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history cache allocated for 740490 bars and contains 469972 bars from 2018.02.26 00:08 to 2019.05.31 23:54
PS      0       12:57:18.856    History CHFJPY.rann_RannForex,M1: history begins from 2018.02.26 00:08
EF      0       12:57:25.613    Tester  115298 OnTester result 14612465132 : passed in 0:00:07.073
GP      0       12:57:30.797    Tester  26858 OnTester result 9858144627 : passed in 0:00:05.184
DR      0       12:57:32.684    127.0.0.1       tester forced to stop
NR      0       12:57:32.684    Tester  2 of 18 passes processed (2 successfully finished) in 0:00:12.257
CP      0       12:57:32.684            optimize Experts\Test123.ex5 on CHFJPY.rann_RannForex,M1 thread finished
GF      0       12:57:32.685    127.0.0.1       prepare for shutdown
 
fxsaber:

Ho provato diversi personaggi perché non sempre si riproduce. Registri dell'agente all'ottimizzazione.

Core1.


Core2.

E su uno di questi agenti ha ottenuto risultati sbagliati?
 
Slava:
E in uno di questi agenti ha ottenuto risultati sbagliati?

Non avevo nessun registro di quella situazione, perché mi era stato proibito di scrivere registri. Così ho dovuto avviare un'altra copia del Terminale da zero e ripetere l'esperimento, dove i log sono tutti scritti.

Qui sopra ci sono i log di ottimizzazione. Lì ogni agente ha contato due passaggi, dopo i quali è stato premuto il pulsante Stop, perché i risultati di OnTester sono sconclusionati per ognuno degli agenti.

I registri dei due agenti di cui sopra. Cercherò di creare una situazione che potete riprodurre da soli.

 
fxsaber:

Non avevo nessun registro di quella situazione, perché mi era stato proibito di scrivere registri. Così ho dovuto avviare un'altra copia del Terminale da zero e ripetere l'esperimento, dove i log sono tutti scritti.

Qui sopra ci sono i log di ottimizzazione. Lì ogni agente ha contato due passaggi, dopo i quali è stato premuto il pulsante Stop, perché i risultati di OnTester sono sconclusionati per ognuno degli agenti.

I registri dei due agenti di cui sopra. Cercherò di creare una situazione che potete riprodurre da soli.

Questo è esattamente quello che sto chiedendo riguardo ai registri degli agenti. I risultati erano sbagliati per entrambi gli agenti?

Ho bisogno di vedere i log degli agenti con risultati corretti e i log degli agenti con risultati errati

 
Slava:

Sto chiedendo specificamente dei registri degli agenti. I risultati erano sbagliati per entrambi gli agenti?

Ho bisogno di vedere i log degli agenti con risultati corretti e i log degli agenti con risultati errati

Entrambi gli agenti hanno avuto risultati sbagliati per i passaggi di ottimizzazione. Sono quasi riuscito a riprodurlo su un terminale pulito... Lo posterò tra un po'.


ZS A proposito, qual è la ragione per cui gli agenti continuano a rimanere in memoria dopo aver chiuso il terminale?