Backtest Reality Check
- Utilitaires
- Version: 1.0
- Activations: 10
Backtest Reality Check est un utilitaire pour MetaTrader 5 : il lit un rapport du testeur de stratégies, en calcule les statistiques une à une, puis applique les mêmes calculs aux transactions que le robot concerné a réellement effectuées sur le compte, et pose les deux séries l'une à côté de l'autre. Tant que le compte n'a pas atteint 30 transactions clôturées, l'écart est affiché sans être qualifié d'écart : rien n'est masqué, et rien n'est encore présenté comme un constat. L'outil ne prend aucune position, n'envoie aucun ordre, ne modifie aucun ordre existant et ne clôture aucune position.
Ce qu'un signalement veut dire
Pour les mesures auxquelles un seuil est associé, un signalement n'a qu'une signification : la valeur a franchi le seuil inscrit en face d'elle. L'outil ne dit pas si le robot est bon ou mauvais et il n'explique pas non plus pourquoi une valeur est ce qu'elle est.
Ce que le panneau affiche
Les textes du panneau sont en anglais et ne sont pas traduits ici, afin que chaque ligne se retrouve à l'identique à l'écran. Voici l'onglet « Live vs Report » :
Manual (0) Link Unlink
Report: GridBot_EURUSD_M15.htm
Report Live Diff
Trades 28 140 -
Win rate 67.86% 41.43% -26.4 pt
Profit factor 3.50 1.64 -1.86
Expected payoff 32.14 7.16 -24.99 0.22x
Avg win 66.32 44.14 -22.18
Avg loss -40.00 -19.00 +21.00
Max drawdown 0.40% 0.38% -0.0 pt
Avg holding time 5.9 h 4.9 h -0.9 h
Trades per week 5.64 5.52 -0.12 0.98x
Avg lot 0.10 0.10 -0.00
Win rate differs from the report by -26.4 pt over 140 trades
La colonne de droite n'est pas calculée à part : les transactions du compte sont d'abord chargées dans la structure même qui a servi à lire le rapport, puis traitées par les fonctions de mesure déjà utilisées pour la colonne de gauche. Pour que les deux colonnes divergent par construction, il faudrait modifier ces fonctions communes. L'objection la plus immédiate — l'écart viendrait de deux façons de compter — ne s'applique donc pas ici.
La ligne « Trades » est la seule à laquelle aucun écart n'est associé, car plusieurs mois de test et quelques semaines de fonctionnement réel n'ont aucune raison d'aboutir au même nombre et la soustraction n'apprendrait rien. Les écarts entre pourcentages sont donnés en points, parce qu'une différence entre deux pourcentages, exprimée elle-même en pourcentage, désignerait une variation relative, c'est-à-dire autre chose. Sur les lignes où un quotient se lit mieux qu'une soustraction, ce quotient est affiché à droite de l'écart : la valeur de la colonne « Live » divisée par celle de la colonne « Report » donne le nombre suivi de la lettre x.
Rien n'est à régler pour obtenir ce tableau. L'outil relève lui-même les numéros magiques présents dans l'historique du compte et consacre une ligne à chacun. Les transactions dépourvues de numéro magique sont regroupées sur la ligne « Manual (0) », parce que, vu de l'extérieur, rien ne distingue un ordre saisi à la main d'un ordre passé par un robot dont le numéro magique n'a pas été renseigné.
Ce que l'outil refuse de dire trop tôt
Au début, le panneau écrit ceci :
Not enough live trades yet (18 of 30)
Win rate 50.00% vs 67.86% - with 18 trades, a gap this size can occur by chance
Les chiffres s'affichent en gris — les colonnes « Report » et « Live » autant que celle des écarts — tant que le compte n'a pas atteint les 30 transactions clôturées, et le panneau annonce cet état par la ligne « Not enough live trades yet ». Les valeurs restent visibles : les masquer serait malhonnête.
L'écart de la ligne « Win rate » ne relève pas d'un seuil mais d'un test statistique. La proportion issue du rapport donne une erreur type qui dépend du nombre de transactions clôturées du compte, et tant que l'écart reste dans un intervalle de 1,96 fois l'erreur type de part et d'autre — le seuil usuel d'un test bilatéral — le panneau écrit qu'un écart de cette taille peut se produire par hasard.
Les deux états du panneau, celui qui invoque le hasard et celui qui énonce l'écart, portent sur le même rapport : la seule quantité qui déplace l'intervalle est le nombre de transactions clôturées du compte. Quand ce nombre est faible, l'intervalle est plus large que l'écart et le panneau parle de hasard ; quand il augmente, l'intervalle devient plus étroit que l'écart, et le panneau abandonne cette formulation pour énoncer l'écart et rien d'autre.
Pouvoir dire que rien ne peut encore être dit fait partie du produit : un instrument qui a toujours une réponse prête n'a rien mesuré.
Comment déposer le rapport
Le rapport doit être enregistré au format HTML. La fenêtre d'enregistrement du testeur de stratégies propose HTML et XML sans qu'aucun des deux ne soit présélectionné, et le second, dont le contenu réel est un classeur compressé, n'est pas lisible par la version actuelle de l'outil. Un fichier de ce genre n'est pas écarté en silence : son nom s'affiche dans le panneau, avec le motif et la marche à suivre. Le dossier lu est MQL5\Files\BacktestRealityCheck\reports ; il est créé au démarrage, et tant qu'il ne contient rien le panneau affiche le chemin absolu où déposer le fichier.
Ce qui est lu et ce qui ne sort pas de l'ordinateur
Les valeurs sont prises dans le détail des transactions du rapport et non dans les libellés d'en-tête : un même test enregistré depuis un terminal réglé sur une autre langue donne donc les mêmes chiffres. La lecture a lieu sur l'ordinateur de l'utilisateur, et le programme n'ouvre aucune connexion sortante : rien n'est envoyé nulle part.
Ce que l'outil ne fait pas
• il n'agit jamais sur le compte : il n'ouvre, ne modifie et ne clôture aucune position, et il ne démarre ni n'arrête aucun robot ;
• il est prévu pour les comptes de couverture : sur un compte de compensation, les positions sont fusionnées, et les chiffres établis robot par robot peuvent être fusionnés eux aussi.
Comment l'essayer
La démonstration gratuite fonctionne dans le testeur de stratégies. Un jeu de données interne est fourni, si bien que le panneau est rempli dès la première seconde au lieu de s'ouvrir vide, et la ligne
Sample data - not a real report
reste affichée du début à la fin et se retrouve dans le journal du terminal, de sorte que ces valeurs ne peuvent pas être prises pour celles d'un compte. Sur un graphique réel, cette ligne n'apparaît jamais.
Ce qu'il faut avoir et ce qui a été vérifié
L'outil possède treize paramètres, tous utilisables tels quels avec leurs valeurs par défaut :
InpReportFolder InpUseCommonFolder InpRescanSeconds InpMinTradesForStats
InpFlagTopTradeShare InpFlagEquityR2 InpFlagMinTrades InpIncludeSwapCommission
InpHistoryDays InpPanelX InpPanelY InpFontSize InpShowTesterSelfDemo
L'outil s'installe sur MetaTrader 5, sur un graphique qui lui est réservé, et il est destiné aux comptes de couverture. Avant publication, trois décomptes automatiques donnent zéro : aucun appel aux fonctions de trading, aucune bibliothèque externe, aucune requête réseau. Ce programme lit des transactions déjà clôturées et les dénombre ; il ne dit rien de ce qui va se produire ensuite et ne promet aucun résultat. Le trading comporte un risque de perte, et un essai sur un compte de démonstration reste la première étape.
