Backtest Robustness Checker
- Indicateurs
-
Kazuma Uezono
MQL5 / MQL4 / Pine Script v6 developer and active trader.
Seller on the MQL5 Market (indicators for MT4/MT5).
Services:
- TradingView Pine Script to MT5/MT4 conversion (bar-by-bar matching, with tester report)
- MT4 to MT5 migration - Version: 1.2
- Mise à jour: 12 novembre 2026
- Activations: 5
Backtest Robustness Checker est un indicateur pour MetaTrader 5 qui lit la liste de vos transactions clôturées et montre comment les statistiques changent lorsque les mêmes transactions arrivent dans un autre ordre, lorsque certaines transactions manquent ou lorsque les plus gros gains sont retirés. Les transactions peuvent provenir de l'historique de votre compte, d'un rapport du testeur de stratégie ou du compte enregistré en HTML, ou d'un simple fichier CSV. Les résultats s'affichent dans un panneau sur le graphique et peuvent être enregistrés en CSV.
Il affiche uniquement des statistiques de transactions passées. Il ne prédit ni ne garantit les résultats futurs, il ne vous dit pas si une stratégie ou un EA est bon, rentable ou « robuste », et il ne donne aucun verdict « réussi / échoué ». Une valeur Monte-Carlo comme « 95e centile du drawdown maximal » décrit des copies mélangées de vos transactions passées ; ce n'est pas la probabilité d'un drawdown futur. L'usage que vous faites de ces chiffres relève de votre décision.
Lecture seule : il n'ouvre, ne modifie ni ne clôture jamais d'ordres et ne donne aucun signal d'achat ou de vente. Dans le testeur de stratégie (et lors de la vérification automatique du Market), il n'y a pas de transactions à vous ; il affiche donc des DONNÉES D'EXEMPLE intégrées (SAMPLE DATA), marquées en orange « not real » (non réelles).
Fonctionnalités
- Trois sources de données : l'historique du compte (filtre par numéros magiques, symboles et date de clôture), un fichier dans MQL5\Files (un rapport MT5 enregistré en HTML, ou un CSV) ou l'exemple intégré de 400 transactions de démonstration.
- Ordre d'origine : transactions, profit net, facteur de profit, taux de réussite, résultat moyen par transaction, drawdown maximal (montant et %), pertes consécutives maximales, plus longue période sous le sommet (en transactions).
- Ordre mélangé (Monte-Carlo) : les mêmes transactions dans un ordre aléatoire, répété (1 000 fois par défaut). Minimum, 5 %, 25 %, 50 %, 75 %, 95 % et maximum du drawdown maximal, du drawdown maximal en %, des pertes consécutives maximales et de la plus longue période sous le sommet ; la part des mélanges avec un drawdown au moins égal à l'original ; la part au-dessus d'un drawdown en % que vous fixez ; un histogramme.
- Retrait aléatoire de transactions : chaque passage retire chaque transaction avec la probabilité choisie (10 % par défaut) et garde le reste dans l'ordre d'origine. Centiles du profit net, du facteur de profit, du drawdown maximal et des transactions conservées, part des passages avec un profit net <= 0, et un histogramme.
- Retrait des plus gros gains : profit net, facteur de profit et drawdown maximal sans les K plus grosses transactions gagnantes (5 par défaut).
- Tableau annuel (transactions, % de gains, net, PF, DD max dans l'année, plus longue série de pertes, moyenne) et tableau mensuel du profit net, selon l'heure de clôture. Les longs tableaux sont répartis en pages.
- Export CSV (bouton) : réglages, toutes les statistiques, centiles, tableaux annuel et mensuel, liste des transactions et, en option, une ligne par simulation. Enregistré dans MQL5\Files.
- Graine aléatoire fixe : les mêmes données, réglages et graine donnent toujours le même résultat.
- Panneau en anglais ou en japonais (automatique selon la langue du terminal), couleurs claires ou sombres selon le fond du graphique, n'importe quel coin, trois tailles, repliable. Plusieurs copies sur un même graphique sont empilées.
Paramètres principaux
- Trades to analyze : source des données ; compte : numéros magiques, symboles, clôturées du / au, inclure commission, frais et swap ; fichier : nom dans MQL5\Files, lire dans le dossier Files commun ; solde de départ pour le DD en % (0 = automatique).
- Simulation : nombre de simulations (10-100000, 1000 par défaut), graine aléatoire (12345 par défaut), part des transactions retirées (1-90 %, 10 par défaut), nombre de plus gros gains retirés (0-1000, 5 par défaut), compter les simulations dont le DD max dépasse ce % (20 par défaut, 0 = désactivé).
- Panel : page affichée en premier, lignes par page, langue, coin, décalages, taille, couleurs, démarrer replié, bouton CSV, CSV avec une ligne par simulation, recalculer à la clôture de nouvelles transactions.
- 27 paramètres en 4 groupes.
Méthode de calcul
- Résultat d'une transaction = profit + commission et frais + swap (pour l'historique du compte, les coûts peuvent être exclus). Une transaction est un gain ou une perte lorsqu'elle s'écarte de zéro de plus de la moitié de la plus petite unité monétaire (fichiers et exemple : 0,005), sinon elle est à l'équilibre. Facteur de profit = gains bruts / pertes brutes.
- Courbe de solde = solde de départ + résultat cumulé des transactions dans l'ordre de clôture. Drawdown maximal = plus forte baisse depuis un sommet précédent ; drawdown maximal en % = cette baisse divisée par le solde au sommet. Les positions ouvertes et les profits latents ne sont pas inclus.
- Solde de départ (automatique) : historique du compte = solde du compte juste avant la clôture de la première transaction sélectionnée ; HTML = les lignes balance avant la première transaction ; exemple = 10 000. Les dépôts et retraits après la première transaction ne sont pas ajoutés à la courbe ; le dénominateur du DD en % ne les inclut donc pas. Le paramètre « Starting balance for DD % » remplace la valeur automatique.
- Historique du compte : une transaction = une position (les clôtures partielles appartiennent à la même transaction, un Close By de deux positions est une seule transaction, un retournement en netting est scindé).
- Rapport HTML : une transaction = une transaction de clôture (out, in/out, out by) dans le tableau Deals. Chaque clôture partielle compte comme une transaction distincte ; le nombre de transactions, le taux de réussite et le PF peuvent donc différer légèrement de l'historique du compte pour les mêmes transactions. Un rapport ne contient pas d'identifiants de position ; chaque transaction de clôture est donc associée au volume ouvert selon une règle (même symbole, sens opposé ; la plus ancienne transaction d'ouverture ayant exactement le même volume restant, sinon premier entré, premier sorti). Avec des positions couvertes de volumes différents, cette association est une estimation, tout comme la part de commission et de swap d'ouverture attribuée à chaque transaction. Les totaux sont exacts.
- CSV : une ligne par transaction, « heure,profit » (virgule, point-virgule ou tabulation ; heure au format YYYY.MM.DD HH:MM ou YYYY.MM.DD HH:MM:SS, « - » ou « / » également acceptés), ou une seule colonne de profit (alors pas de tableaux annuel ni mensuel). Séparateur décimal « . » uniquement, pas de séparateur de milliers. Les lignes sont utilisées dans l'ordre du fichier. Une première ligne illisible est traitée comme un en-tête ; les autres lignes illisibles sont comptées comme lignes ignorées ; les lignes commençant par # sont ignorées. Un CSV ne contient pas de solde : indiquez le solde de départ dans les paramètres pour voir le DD en %.
- Si le solde de départ est inconnu, le panneau affiche « unknown » (inconnu) et aucune valeur de DD en % n'est calculée. Les montants restent affichés.
- Mélange : Fisher-Yates à partir de l'ordre d'origine à chaque fois. Retrait : un nombre aléatoire par transaction. Nombres aléatoires : splitmix64 à partir de la graine (le retrait utilise graine + 1). Centiles : interpolation linéaire.
- Limite de calcul : simulations x transactions reste au plus à 100 millions par type de simulation. Au-delà, le nombre de simulations est réduit automatiquement (au moins 10) et le panneau l'indique. Par exemple, 50 000 transactions sont calculées avec 2 000 simulations. Les gros calculs se font par étapes avec une ligne de progression, afin que le graphique ne se fige pas.
Remarques et limites
- Uniquement des statistiques de transactions passées. Ce n'est ni une prévision, ni une garantie, ni un test « réussi / échoué » d'une stratégie, ni un signal de trading, ni un conseil.
- Le mélange et le retrait traitent chaque transaction comme un montant fixe qui ne dépend pas des autres transactions. Pour les systèmes où les transactions dépendent les unes des autres ou du solde (par exemple grille, martingale, moyenne à la baisse ou taille de lot qui croît avec le solde), les résultats simulés peuvent être très éloignés de ce qu'un tel système pourrait réellement faire.
- Un résultat de backtest dépend des réglages du test (période, symbole, spread, commission, modèle de ticks). Cet outil lit seulement le résultat que vous lui donnez et ne vérifie pas comment le test a été réalisé.
- Les rapports .xlsx (Open XML / Excel) ne peuvent pas être lus. Enregistrez le rapport en HTML ou utilisez un CSV. Les fichiers de plus de 64 Mo ne sont pas lus, et au plus 2 000 000 de transactions sont utilisées.
- Seuls les fichiers situés dans MQL5\Files (ou dans le dossier Files commun) peuvent être lus. Le nom du fichier ne doit contenir ni « .. » ni « : ».
- Les noms par défaut des rapports MT5 contiennent le numéro de compte (par exemple ReportTester-12345678.html). Le panneau et le CSV exporté affichent le nom du fichier ; renommez donc le fichier avant de faire des captures d'écran ou de partager le CSV.
- Les tableaux annuel et mensuel utilisent l'heure de clôture telle qu'elle figure dans les données (heure du serveur pour les rapports et l'historique MT5).
- Dans le testeur de stratégie, la source « Account history » ne contient pas de transactions à vous ; des DONNÉES D'EXEMPLE sont donc affichées et le bouton CSV est masqué. Pour vos propres données, utilisez-le sur un graphique normal.
Compatibilité et support
- MetaTrader 5 uniquement. Comptes en couverture et en netting, tout symbole et toute unité de temps (le symbole du graphique n'a pas d'importance).
- Pas de DLL, pas d'accès à Internet. Il n'écrit un fichier que lorsque vous appuyez sur le bouton CSV.
- Support par messages MQL5, réponse sous 3 jours ouvrés : installation, réglages, chargement de fichiers et signalement de bugs. Nous ne pouvons pas juger si votre stratégie ou votre EA est bon, interpréter vos résultats comme un conseil, donner des avis sur le marché ni prendre des décisions de trading à votre place.
- Aucun résultat de votre trading n'est promis ni sous-entendu.
