Fondamentaux du trading algorithmique
LeçonsLeçon 5/535 min

Détecter les pièges du backtest

Repérer les informations du futur, les coûts omis, les données fragiles et la sélection opportuniste ; produire une fiche d'audit reproductible.

Cette leçon est un support pédagogique. Les calculs, exemples et scénarios doivent être vérifiés en démonstration avant toute décision réelle.

Détecter les pièges du backtest

Objectifs

Cette leçon t'apprend à examiner ce qu'un backtest avait réellement le droit de connaître, ce qu'il a facturé et ce qu'il a ignoré. Tu produiras une fiche d'audit utilisable avant toute optimisation. Prérequis : savoir distinguer profit, drawdown et résultat latent.

Les informations qui arrivent trop tôt

Le biais d'anticipation apparaît lorsque la décision utilise une information indisponible à son instant réel. Une stratégie décide à 10 h 00 à partir du plus haut définitif d'une bougie qui se termine à 10 h 15 : elle consulte le futur. Le même problème apparaît si un filtre utilise une annonce révisée publiée plus tard ou une moyenne normalisée sur tout l'historique, y compris la période testée.

Construis une ligne de temps pour chaque variable : moment observé, moment publié, moment utilisable. Pour un signal sur clôture, distingue la dernière bougie terminée de la bougie courante, encore mouvante. Dans MQL5, CopyBuffer compte la position zéro comme la valeur courante ; c'est un point de contrôle concret dans le code. Source : CopyBuffer.

Un signal qui disparaît après rechargement du graphique doit être étudié : il peut dépendre de données recalculées. Conserve ce que l'EA voyait au moment de la décision au lieu de te fier uniquement au graphique final.

Des prix précis ne suffisent pas

Une bougie indique une ouverture, un plus haut, un plus bas et une clôture. Elle ne révèle pas toujours l'ordre des événements intermédiaires. Exemple hypothétique : une position longue ouvre à 100, avec stop à 99 et cible à 101. La bougie atteint 101,5 et 98,5. Sans chemin intrabougie suffisamment précis, tu ne peux pas déterminer lequel des deux niveaux a été atteint en premier.

Dans le testeur MT5, sélectionne un mode de génération adapté à la logique. Les stratégies sensibles aux mouvements intrabougie nécessitent une attention particulière aux ticks. Même en mode fondé sur des ticks réels, inspecte la couverture et le journal : la disponibilité et la cohérence des données doivent être contrôlées. Source : ticks réels et générés dans MT5.

Les coûts et contraintes oubliés

Un backtest peut sous-estimer le spread, les commissions, le financement ou les effets d'un retard d'exécution. Il peut aussi supposer des volumes ou des niveaux de stop incompatibles avec le compte visé. Un résultat n'est interprétable qu'avec la liste des hypothèses qui le produisent.

Exemple hypothétique : cent opérations génèrent 120 € avant des commissions manquantes. Une commission totale de 0,80 € par opération réduit le résultat à 40 €. Un surcoût moyen de 0,50 € par opération lié à un scénario de glissement le ramène à −10 €. Ce calcul est une analyse de sensibilité inventée, pas une prévision de coût. Il montre que la marge économique peut être plus petite que le profit affiché.

Évite de retirer deux fois le spread si les prix d'exécution Bid/Ask le reflètent déjà. Vérifie les rubriques de l'export et reconstruis le résultat d'une opération à la main.

La sélection peut fabriquer un beau gagnant

Essayer de nombreux paramètres, horaires, symboles et filtres puis ne montrer que le meilleur résultat produit une sélection opportuniste. Même si chaque test est correctement codé, l'ensemble de la démarche peut privilégier le hasard. La recherche sur le surapprentissage des backtests traite précisément ce problème de sélection. Source : Bailey et coauteurs, The Probability of Backtest Overfitting.

Garde un registre de toutes les variantes, y compris celles abandonnées. Une période réservée cesse d'être intacte si tu la consultes pour modifier la stratégie. Dire « j'ai seulement déplacé la date de départ » ne supprime pas cette nouvelle décision de sélection.

Le biais de survivance est différent : un test sur les seuls actifs ou EAs encore disponibles aujourd'hui peut exclure les échecs historiques. Conserve l'univers réellement admissible à chaque date lorsque la stratégie dépend de cet univers. Pour un seul symbole, examine plutôt les changements de contrat, les ruptures d'historique et les éventuels ajustements de données.

Atelier : une fiche d'audit reproductible

Choisis un rapport MT5. Enregistre la version de l'EA, les paramètres, le serveur, les symboles exacts, les dates, la devise, le dépôt initial et le mode de ticks. Ouvre le journal pour relever les avertissements, refus et manques de données. Vérifie visuellement trois entrées et trois sorties. Recalcule une opération nette depuis ses transactions.

Ajoute trois colonnes à ton carnet : constat, preuve, conséquence. « Beaucoup de profits » n'est pas un constat d'audit utile. « 62 % du profit provient d'une seule opération » en est un, à condition de conserver le calcul. Termine par les vérifications encore manquantes plutôt que par une note arbitraire sur dix.

Exercice et correction

Après un premier test, tu supprimes les opérations du lundi parce qu'elles étaient perdantes. Le nouveau résultat est meilleur. Peux-tu présenter la même période comme validation indépendante ? Que dois-tu faire de cette modification ?

Correction : non. Les lundis ont été exclus à partir du résultat observé ; cette période a participé à la conception. Inscris la nouvelle règle et son motif dans le registre, conserve l'ancien résultat et évalue la nouvelle version sur des données ultérieures non utilisées pour la choisir. Une justification économique peut motiver la recherche, mais ne transforme pas rétroactivement l'échantillon en test indépendant.

À retenir

Un audit concluant ne prouve pas qu'un EA gagnera. Il permet de savoir ce qui a été testé et avec quelles limites. Tu disposes maintenant des bases nécessaires pour aborder le walk-forward : tester une méthode de sélection au fil du temps avec des frontières explicites.

Se connecter pour suivre votre progression.