5 pièges silencieux du testeur MT5 lancé avec /config

Je lance mes tests en ligne de commande (terminal64.exe /config:test.ini). Plusieurs de mes résultats ont déjà été faussés sans erreur évidente. J'ai donc recontrôlé ces points sur la build 6230, avec un petit EA qui affiche seulement ses paramètres et ne passe aucun ordre.

1. Mauvais chemin vers le .ini

MT5 ne s'arrête pas. Le journal contient une seule ligne : cannot load config "..." at start. Le terminal démarre ensuite normalement et se connecte au dernier compte utilisé, qui peut être un compte réel. Un script qui attend la fin du test reste bloqué.

À faire : vérifier que le fichier existe avant de lancer, et prévoir un délai maximal.

2. Nom d'enum dans [TesterInputs]

Avec InpTF=PERIOD_D1, l'EA reçoit 0. Le rapport affiche quand même InpTF=PERIOD_D1, donc rien ne paraît anormal.
À faire : écrire la valeur numérique, ici InpTF=16408.

M1=1, M5=5, M15=15, M30=30, H1=16385, H4=16388, D1=16408, W1=32769

3. Paramètre absent du .ini

Sa valeur ne vient pas forcément du code. MT5 peut la prendre dans MQL5\Profiles\Tester\<EA>.set, et il recrée ce fichier après chaque test.
Avec 111 comme valeur dans le code :
- sans .set : 111
- avec le .set laissé par le test précédent : 222
- avec un .set écrit à la main : 999

À faire : lister tous les paramètres, ou supprimer le .set avant le test.

4. Paramètre inconnu et mauvais .ex5

Le testeur charge le .ex5 de MQL5\Experts. Une version compilée ailleurs est ignorée. Un paramètre que l'EA ne connaît pas (InpNew=5) est ignoré aussi, sans aucun message au journal. Si on oublie de copier le nouveau .ex5, on peut donc croire que le nouveau réglage ne change rien.

À faire : afficher la version et les paramètres avec Print dans OnInit, car le rapport seul ne suffit pas (voir le point 2).

5. Date de fin dans le futur

Le test est coupé à minuit de la date locale du PC, pas de celle du serveur. Exemple mesuré : PC le 4/11 à 17 h 04, serveur déjà au 5/11, ToDate=2026.11.05. Le test s'arrête à 2026.11.04 00:00.
À faire : vérifier la date de fin réelle dans le journal.
Deux notes :
- Cache : je vidais Tester\cache par prudence. Sur cette build, pour un test simple, aucun fichier n'y restait, et une nouvelle version de l'EA a été prise sans le vider. Je n'ai pas testé l'optimisation.

- Historique : fin août, le même EA avec le même .ini a donné près de 5 % d'écart sur le résultat à 3 jours d'intervalle, après un rafraîchissement des ticks du courtier. Je ne l'ai pas recontrôlé, mais depuis, je relance toujours ma référence le même jour.

Avez-vous rencontré d'autres pièges de ce genre ?