Testeur de stratégie MetaTrader 5 : bugs, anomalies, suggestions d'amélioration - page 60

 
Slava:

Test/optimisation sur des ticks réels ?

Agents propres ou à partir du cloud ?

Si vous effectuez des tests sur un symbole personnalisé, les agents en nuage disparaissent. Les agents sont donc autonomes et vous pouvez consulter leurs journaux et voir comment l'historique a été synchronisé.

Agents propriétaires personnalisés, synchronisation sans erreur sur des ticks réels. Expert Advisor pour la relecture.

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

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);
}


Résultat.

La valeur de la première ligne montre immédiatement qu'il s'agit d'un non-sens : elle ne peut pas être si différente des valeurs des autres lignes.


Et un seul.


99% de déchets en ticks pendant l'optimisation GA. Faites-moi savoir si vous avez pu le reproduire ou non.

Chaîne de recherche: Oshibka 005.
 
fxsaber:

Synchronisation personnalisée, par des agents propres, sans erreur, sur des ticks réels. EA pour la lecture.


Résultat.

La valeur de la première ligne montre immédiatement qu'il s'agit d'un non-sens : elle ne peut pas être si différente des valeurs des autres lignes.


Et un seul.


99% de déchets en ticks pendant l'optimisation GA. Faites-moi savoir si vous avez pu le reproduire ou non.

Chaîne de recherche: Oshibka 005.

Il faut regarder le journal d'optimisation de l'agent sur lequel la valeur d'absurdité a été émise.

Et le journal de test de la passe unique correspondante.

 
Slava:

Vous devez consulter le journal d'optimisation de l'agent sur lequel la valeur absurde a été émise.

Et un journal de test de la passe unique correspondante.

Regardez la valeur unique. Elle est correcte et très différente de toutes les valeurs de l'Optimizer, pas seulement d'une seule. C'est-à-dire que l'erreur se trouve littéralement dans chaque ligne de l'Optimiseur.

Je vais regarder les journaux. Il serait bon que tu l'exécutes par toi-même.

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
La valeur correcte a été mise en évidence. J'ai parcouru le registre. Seul Core1 a la valeur correcte.
 
fxsaber:

J'ai parcouru le registre. Seul Core1 a la valeur correcte.

Complètement localisé. La passe unique sur le Core1 ne correspond pas à la passe unique sur le Core2. Je ne peux donc pas encore dire laquelle est la bonne.

 
fxsaber:

Complètement localisé. La passe unique sur le Core1 n'est pas la même que la passe unique sur le Core2. Je ne peux donc pas encore dire laquelle est la bonne.

Qu'est-ce qu'il y a dans les journaux des agents ? C'est là que la synchro de l'histoire est écrite.
 
Slava:
Qu'est-ce qu'il y a dans les journaux des agents ? C'est là que la synchro de l'histoire est écrite.

J'ai essayé différents personnages car ça ne se reproduit pas toujours. Journaux de l'agent à l'optimisation.

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:

J'ai essayé différents personnages car ça ne se reproduit pas toujours. Journaux de l'agent à l'optimisation.

Core1.


Core2.

Et sur l'un de ces agents, avez-vous obtenu des résultats erronés ?
 
Slava:
Et sur l'un de ces agents, avez-vous obtenu de mauvais résultats ?

Je n'avais pas de journal de bord de cette situation, car il m'était interdit d'en écrire. J'ai donc dû démarrer une autre copie du terminal à partir de zéro et répéter l'expérience, où les journaux sont tous écrits.

Ci-dessus, les journaux d'optimisation. Là, chaque agent a compté deux passages, après quoi il a appuyé sur le bouton Stop, car les résultats de OnTester sont décousus pour chacun des agents.

Les journaux des deux agents ci-dessus. Je vais essayer de créer une situation que vous pourrez reproduire par vous-même.

 
fxsaber:

Je n'avais aucun journal de cette situation, car il m'était interdit d'en écrire. J'ai donc dû démarrer une autre copie du terminal à partir de zéro et répéter l'expérience, où les journaux sont tous écrits.

Ci-dessus, les journaux d'optimisation. Là, chaque agent a compté deux passages, après quoi il a appuyé sur le bouton Stop, car les résultats de OnTester sont décousus pour chacun des agents.

Les journaux des deux agents ci-dessus. Je vais essayer de créer une situation que vous pourrez reproduire par vous-même.

C'est exactement ce que je demande à propos des journaux des agents. Les résultats étaient-ils faux pour les deux agents ?

J'ai besoin de voir les journaux des agents avec des résultats corrects et les journaux des agents avec des résultats incorrects.

 
Slava:

Je demande spécifiquement les registres des agents. Les résultats étaient-ils faux pour les deux agents ?

J'ai besoin de voir les journaux des agents avec des résultats corrects et les journaux des agents avec des résultats incorrects.

Les deux agents ont obtenu des résultats erronés pour les passes d'optimisation. J'ai presque réussi à le reproduire sur un terminal propre... Je vais le poster dans un moment.


ZS Au fait, pour quelle raison les agents restent-ils en mémoire après la fermeture du terminal ?

Raison: