Trading · Module intermédiaire · Évaluer une méthode
Backtesting Forex : tester une stratégie sans fausser les résultats
Écrire les règles, respecter l’ordre des informations et simuler les coûts. Découvrez comment lire un test historique, repérer ses biais et distinguer un résultat calculé d’une preuve de rentabilité future.
Cette page complète le module Forex intermédiaire. Pour interpréter les montants simulés, la gestion du risque et le calcul de la taille de position constituent des bases utiles.
Qu’est-ce qu’un backtest Forex ?
Un backtest applique une méthode à des données historiques pour calculer les opérations qu’elle aurait produites dans un modèle donné. Il sert à examiner sa logique et ses résultats simulés. Il ne démontre pas qu’une stratégie est exploitable en réel.
Le test peut être manuel, en avançant un graphique sans afficher sa suite, ou automatisé avec un programme. Dans les deux cas, les règles doivent être suffisamment précises pour qu’une autre personne puisse reproduire les décisions.
Exemple de protocole expérimental
- Données : EUR/USD horaire, fournisseur et fuseau documentés.
- Événement : clôture au-dessus du plus haut des 20 barres précédentes, en excluant la barre actuelle de ce seuil.
- Exécution : achat au premier prix ask disponible après connaissance de la clôture, selon le modèle retenu.
- Taille : 10 000 unités de base fixes, sans pyramide ni position simultanée sur la même paire.
- Sorties : stop à 30 pips, objectif à 60 pips ou clôture après 24 barres ; ordre de traitement des événements précisé.
Ces nombres illustrent des règles à tester. Ils ne décrivent pas une stratégie validée. Pour approfondir le critère de cassure, consultez le guide du breakout Forex.
Un protocole doit également préciser les périodes exclues, les annonces éventuelles, les positions encore ouvertes en fin de test et le capital de départ. Une condition vague comme « entrer quand la tendance est forte » ne suffit pas.
Données, frais et conditions d’exécution
Notez la source, les dates, les trous de cotation, les doublons et les changements de fuseau. Sur le Forex, deux flux peuvent présenter des prix ou des clôtures différents. La précision apparente d’un rapport ne corrige pas une série incomplète ou mal interprétée.
Ne pas utiliser une information avant sa disponibilité
Si la décision utilise la clôture d’une barre, cette clôture doit être connue avant l’envoi de l’ordre simulé. Entrer rétroactivement au meilleur prix de cette même barre introduit une information future.
Le même problème apparaît avec un sommet repéré grâce aux barres suivantes, une moyenne centrée ou la clôture quotidienne finale consultée alors que la journée n’est pas terminée. Le timestamp d’une donnée et le moment où elle devient exploitable doivent être distingués.
Une barre ne donne pas toujours l’ordre des événements
Les prix d’ouverture, plus haut, plus bas et clôture ne suffisent pas à reconstituer chaque déplacement. Si le stop et l’objectif se trouvent tous deux dans la plage d’une barre, on ne sait pas nécessairement lequel a été touché en premier.
Il faut alors des données plus fines ou une hypothèse prudente et constante. Des ticks générés ne sont pas des ticks effectivement observés ; même une base de ticks réels peut présenter des lacunes. Vérifiez le mode utilisé par le moteur.
Les coûts à modéliser
Spread, commission, glissement, financement de détention et conversion peuvent affecter le résultat. Avec des prix bid/ask d’exécution qui intègrent déjà le spread, l’ajouter une seconde fois le compterait deux fois.
Un achat utilise normalement le prix ask et sa fermeture le bid, selon le produit. Un ordre stop ordinaire ne garantit pas une exécution au seuil. Une simulation qui suppose toujours le prix demandé peut donc embellir les résultats.
Un mode de test rapide peut convenir à une vérification technique préliminaire sans être assez détaillé pour la méthode évaluée. Documentez les paramètres du moteur, les frais et les caractéristiques du contrat.
Éviter le surajustement et les essais oubliés
Le surajustement apparaît lorsqu’une méthode épouse trop étroitement les particularités de données déjà examinées. Choisir la meilleure combinaison parmi des centaines d’essais peut produire un résultat séduisant sans comportement durable.
Un découpage chronologique possible
Explorer les règles sur une première période et consigner les variantes.
Évaluer les choix sur une période suivante, sans oublier qu’elle sert encore à sélectionner.
Examiner une période tenue à l’écart après avoir arrêté les règles.
Après consultation du test final, le modifier puis le relancer ne préserve pas son caractère inédit. Gardez la trace des essais, même abandonnés. Une nouvelle version doit être identifiée et son évaluation interprétée en tenant compte de l’historique de recherche.
Le walk-forward n’efface pas tous les biais
Une approche walk-forward réestime éventuellement les paramètres sur une fenêtre passée, puis les applique à la fenêtre suivante. Toute la procédure doit être définie, y compris les dates, les paramètres autorisés et le traitement des positions.
Changer cette procédure après chaque résultat décevant peut à nouveau surajuster la méthode. Si des positions ou cibles se chevauchent entre périodes, évitez de faire circuler une information de l’évaluation vers la sélection.
Lire un rapport de backtesting
Pour expliquer les indicateurs, prenons dix résultats nets fictifs, en USD : +60, −40, +80, −50, −70, +40, +100, −30, −20, +50. Le capital initial est 1 000 USD, sans dépôt ni retrait et sans positions simultanées.
On suppose 4 USD de coûts fixes par opération. Les résultats bruts correspondants sont donc chacun supérieurs de 4 USD. Cet échantillon est construit pour les calculs : il ne constitue pas le backtest d’une méthode ni un nombre suffisant pour conclure.
| Mesure | Valeur | Lecture |
|---|---|---|
| Résultat brut total | +160 USD | Avant les 40 USD de coûts supposés |
| Résultat net total | +120 USD | Solde final : 1 120 USD |
| Opérations gagnantes nettes | 5 sur 10 | Taux de réussite : 50 % |
| Moyenne nette observée | +12 USD | 120 ÷ 10 ; pas une espérance future garantie |
| Profit factor net | 1,57 environ | 330 USD de gains ÷ 210 USD de pertes absolues |
Le solde peut baisser avant de finir plus haut
Drawdown : un recul depuis un sommet
Le recul de 1 100 à 980 USD vaut 120 USD, soit 120 ÷ 1 100 × 100 ≈ 10,91 %. C’est ici le plus grand recul relatif de la série des soldes après clôture, en incluant le capital initial.
Un drawdown calculé sur la valeur du compte avec les positions ouvertes peut être différent et plus important. Précisez la fréquence d’observation, la base et le traitement des dépôts ou retraits avant de comparer deux rapports.
Le taux de réussite ne suffit pas à juger une méthode. Le profit factor dépend aussi de la taille des gains et pertes ; il devient non défini si le dénominateur est nul. Quelques opérations exceptionnelles peuvent influencer fortement ces statistiques.
Comment examiner la robustesse d’un test ?
- Comparer les paramètres voisins : une seule combinaison brillante entourée de résultats faibles mérite un examen critique.
- Modifier les coûts : mesurer ce qui reste après une hypothèse moins favorable de spread ou de glissement.
- Séparer les contextes : regarder si les résultats se concentrent sur une seule période ou quelques opérations.
- Vérifier des transactions : refaire manuellement des calculs d’entrée, de sortie, de taille et de frais.
- Conserver les versions : règles, source des données, dates, paramètres, journal et rapport complet.
- Observer ensuite sans modifier : pratiquer une simulation sur des données nouvelles, avec la version identifiée.
Il n’existe pas de nombre magique d’opérations qui transforme un test en preuve. La durée, la diversité des situations et la dépendance entre opérations comptent. Cent opérations très proches dans le temps ne représentent pas nécessairement cent observations indépendantes.
Un journal minimal pour reproduire les résultats
Pour chaque opération : heure du signal, information disponible, prix et heure d’exécution, quantité, sortie, coûts et résultat net. Conservez aussi les événements ignorés et la raison de leur exclusion.
Le rapport final devrait distinguer explicitement période de conception, période d’évaluation, nombre de variantes essayées et limites connues du modèle.
Une démonstration sur des données nouvelles apporte une observation complémentaire. Elle ne reproduit pas toutes les contraintes d’un compte réel, notamment la liquidité, l’exécution et la capacité à respecter une méthode pendant les pertes.
FAQ : backtesting Forex
Peut-on faire un backtest sans programmer ?
Oui, en avançant un graphique sans voir sa suite et en consignant tous les événements selon des règles fixes. Les décisions discrétionnaires et les omissions doivent être documentées pour éviter de ne retenir que les exemples favorables.
Combien d’opérations faut-il tester ?
Aucun seuil universel ne suffit. Il faut examiner la période couverte, les contextes et la dépendance entre les opérations. Un petit échantillon donne des estimations fragiles, même si son résultat est positif.
Un test rentable permet-il de passer en réel ?
Il ne fournit pas cette garantie. Vérifiez d’abord les données, les biais, les coûts et les règles d’exécution. Les contraintes réelles peuvent différer, et les pertes futures rester possibles.
Peut-on optimiser après avoir regardé le test final ?
On peut créer une nouvelle version, mais la période consultée ne redevient pas inédite. Il faut conserver la trace de cette sélection et prévoir une évaluation distincte, sans présenter l’ancien test comme totalement indépendant.
Sources et lectures complémentaires
- MetaTrader 5 : test de stratégie et paramètres d’exécution.
- MetaTrader 5 : ticks réels et générés — modes de données et limites.
- QuantConnect : guide de recherche et biais de backtesting.
- NFA : limites des résultats hypothétiques — documentation destinée à ses membres, citée ici pour les limites des simulations.
Les dix résultats et leur courbe sont des exemples pédagogiques créés pour cette page, sans données de marché ni performance de stratégie associée.
