Backtesting et réalité : cette espérance parfaite vous ment
Votre backtest : 8R d'espérance. Facteur de profit 3,5. 50 000 $ de gain sur un compte de 10 000 $.
Vous passez en réel. Première semaine : -2R d'espérance. Facteur de profit 0,4. Compte en baisse de 12 %.
Que s'est-il passé ? Votre backtest a menti.
🚨 Parlons franchement
La plupart des backtests relèvent de la pure fantaisie. Ils supposent des exécutions parfaites, zéro slippage, aucun spread et des entrées magiques qui n'existent pas en marché réel.
Si votre backtest paraît trop beau pour être vrai, c'est qu'il l'est. Vous vous êtes ajusté au bruit, pas au signal.
Dans cette leçon, tu vas apprendre :
- Pourquoi 90 % des backtests échouent une fois passés en réel
- Les 4 péchés capitaux : surapprentissage, biais d'anticipation, coûts irréalistes, biais du survivant
- Comment modéliser le slippage et les spreads pour qu'ils collent vraiment à la réalité
- In-sample contre out-of-sample (la seule validation qui compte)
⚡ Gains rapides pour demain (cliquez pour déplier)
- Ajoutez des coûts réalistes à votre backtest — Comptez 0,03-0,05 % de slippage par position, plus le spread réel. Si les résultats s'effondrent, votre avantage était factice.
- Découpez vos données 70/30 — Optimisez sur 70 % des données, validez sur les 30 % que vous n'avez jamais vus. Si l'out-of-sample échoue, vous avez surajusté.
- Tradez sur papier pendant 30 jours avant de passer en réel — Si les résultats papier s'écartent nettement du backtest, quelque chose cloche. Ne passez pas en réel tant qu'ils ne concordent pas.
Exemple concret : comment un backtest « parfait » à 1,3R d'espérance est devenu un désastre à -0,45R en réel
Contexte : En mars 2024, Chris (exemple composite) a mis au point une stratégie de cassure après 6 mois d'optimisation. Le backtest était incroyable : 1,3R d'espérance, facteur de profit 4,9, 67 % de réussite, testé sur 2 ans de données SPY (2022-2023). 50 000 $ ont été déployés en avril 2024. En juin 2024, le compte accusait -8 400 $ (-16,8 %). Voici l'autopsie complète.
Le backtest « parfait » (données 2022-2023)
| Indicateur | Valeur | Ce que Chris se disait |
|---|---|---|
| Positions au total | 156 | Échantillon correct |
| Taux de réussite | 67.3% (105W / 51L) | « Incroyable ! Bien au-dessus de la moyenne. » |
| Gain moyen / perte moyenne | +2.4R / -1R | « Excellent R:R, les gagnants font 2,4× les perdants. » |
| Facteur de profit | 4.9 | « Un chiffre de niveau professionnel. » |
| Espérance | +1,3R par position | « Le Graal, ni plus ni moins. » |
| drawdown maximal | -8.2% | « Un drawdown minuscule. Ultra sûr. » |
| Rendement total (2 ans) | +$40,600 (+406%) | « C'est la bonne. Je quitte mon travail. » |
Le processus d'optimisation de Chris :
- 50 périodes d'EMA testées (EMA(34) jugée « parfaite »)
- 20 multiplicateurs d'ATR testés pour les stops (1,47× ATR jugé « optimal »)
- 15 niveaux d'objectif testés (2,8R jugé « le meilleur »)
- Stratégie finale : croisement d'EMA(34) + stop à 1,47× ATR + objectif à 2,8R
- Combinaisons testées au total : 50 × 20 × 15 = 15 000 variantes
Ce que Chris n'a pas mis dans le backtest :
- Le slippage (exécutions parfaites aux prix exacts supposées)
- La fourchette achat-vente (spread nul supposé)
- Les commissions (oubliées)
- Le rejet d'ordres (100 % d'exécution supposé)
- Le test out-of-sample (jamais testé sur des données inédites)
La réalité en trading réel (avril-juin 2024, 10 semaines)
| Indicateur | Backtest | Réalité en réel | Écart |
|---|---|---|---|
| Taux de réussite | 67.3% | 51.4% (19W / 18L) | -15,9 points de moins |
| Gain moyen | +2.4R (+$1,200) | +1.8R (+$900) | -25 % plus petit |
| Perte moyenne | -1R (-$500) | -1.3R (-$650) | -30 % plus grande |
| Facteur de profit | 4.9 | 1.46 | -70 % d'effondrement |
| Espérance | +1.3R | -0,45R net de coûts | -1,75R NÉGATIF |
| drawdown maximal | -8.2% | -21.4% | 2,6× pire |
| Rendement total (10 semaines) | +9 600 $ projetés | -$8,400 (-16.8%) | 18 000 $ d'écart |
La comptabilité complète : où sont passés les 18 000 $
| Poste de coût | Description | Impact |
|---|---|---|
| 1. Surapprentissage (courbe ajustée) | EMA(34) + 1,47× ATR fonctionnait parfaitement sur les données 2022-2023, mais avait été optimisé sur le bruit historique. Les conditions de marché de 2024 = un autre bruit. | -$6,200 |
| 2. Slippage (non modélisé) | 0,08 % de slippage moyen par position × 25 000 $ de position moyenne × 37 allers-retours = 1 480 $ de coûts de slippage | -$1,480 |
| 3. Fourchette achat-vente | Spread du SPY 0,01 $ × 500 titres en moyenne × 37 positions = 185 $. Options (utilisées pour le levier) spread = 0,03 $ par titre × 100 titres par contrat × 20 contrats × 37 positions = 2 220 $ de coût total de spread | -$2,405 |
| 4. Commissions | Options : 0,65 $ par contrat × 20 contrats × 37 positions × 2 (aller-retour) = 962 $ | -$962 |
| 5. Rejets d'ordres | Sur 8 positions, des ordres à cours limité n'ont jamais été exécutés (5 gagnantes manquées, 3 perdantes manquées). Coût d'opportunité net : 5 gagnantes à +1,8R manquées (-9R) moins 3 perdantes à -1,3R évitées (+3,9R) = -5,1R = 2 550 $ | -$2,550 |
| 6. Biais d'anticipation | Le code du backtest utilisait close[0] pour calculer l'entrée et entrait à la clôture de cette même bougie (impossible en réel). En réel, on entre à l'ouverture de la bougie suivante. Une entrée 0,3 % moins bonne en moyenne = 2 775 $ de dégradation | -$2,775 |
| 7. Délais d'exécution | Latence de la plateforme + temps de vérification de l'ordre = 2 à 8 secondes de délai. Les cassures rapides bougeaient de 0,15 % en moyenne avant exécution = 1 387 $ de slippage dû aux délais | -$1,387 |
| DÉGRADATION TOTALE PAR RAPPORT AU BACKTEST : | -$17,759 | |
Le calcul :
- Profit projeté par le backtest (10 semaines) : +9 600 $
- Moins les coûts de dégradation : -17 759 $
- Résultat attendu en réel : -8 159 $
- Résultat réel : -8 400 $ — la comptabilité tombe à 250 $ près de ce qui s'est vraiment passé
Ce qu'il aurait fallu faire : la validation dans les règles
| Étape | Ce que Chris a fait (mal) | Ce qu'il faudrait faire (bien) |
|---|---|---|
| 1. Découpage des données | A utilisé toutes les données 2022-2023 pour optimiser | Optimiser sur 2022, garder 2023 de côté pour le test out-of-sample |
| 2. Optimisation | A testé 15 000 combinaisons de paramètres | Utiliser des paramètres standards (EMA 20/50, stops à 2× ATR). Limiter les essais à moins de 10 variantes |
| 3. Modélisation des coûts | A supposé des coûts nuls | Modéliser 0,10 % de slippage + 0,01 $ de spread + 2 $ de commission par position = -30 $ par position au minimum |
| 4. Contrôle d'anticipation | A utilisé la clôture de la même bougie pour le signal et l'exécution | Signal sur close[0], exécution sur open[1] (bougie suivante). Un calendrier réaliste. |
| 5. Test out-of-sample | N'a jamais testé sur des données inédites | Tester sur les données 2023 (intactes). Si la performance se dégrade de plus de 30 %, la stratégie est surajustée |
| 6. Walk-forward | Une seule période de backtest | Fenêtres d'optimisation de 6 mois, test sur les 3 mois suivants. Répéter en avançant. Vérifier la cohérence. |
Le test out-of-sample que Chris aurait dû faire
La bonne méthode :
- Période in-sample : Optimiser uniquement sur les données 2022 (ne pas toucher à 2023)
- Trouver les paramètres : EMA(34) + 1,47× ATR (même résultat, mais obtenu avec 2022 seulement)
- Figer les paramètres : PLUS AUCUN CHANGEMENT. Les paramètres sont gelés.
- Test out-of-sample : Faire tourner exactement ces paramètres sur les données 2023
- Comparer les résultats : Si la performance 2023 tombe sous 70 % de celle de 2022, la stratégie est surajustée
Ce qui se serait passé :
| Période | Espérance | Facteur de profit | Verdict |
|---|---|---|---|
| 2022 (in-sample) | +1.4R | 3.1 | Performance optimisée |
| 2023 (out-of-sample) | +0.4R | 1.4 | ⚠️ 71 % de dégradation |
| Conclusion : La stratégie est gravement surajustée. L'espérance 2023 vaut 29 % de celle de 2022. Avec des coûts réalistes (-30 $ par position = -0,15R), l'espérance nette tombe à +0,25R (à peine au-dessus de zéro). NE PAS DÉPLOYER. | |||
La leçon : le backtest de Chris était une fantaisie. Tester 15 000 combinaisons de paramètres garantit que vous en trouverez une qui épouse parfaitement le bruit historique. Cette espérance « parfaite » de 1,3R n'était que de la courbe ajustée. Un test out-of-sample l'aurait révélé avant de perdre 8 400 $. Le backtesting ne consiste pas à trouver la meilleure performance passée, mais à trouver ce qui marchera ensuite. Et cela demande des données inédites, des coûts réalistes et zéro biais d'anticipation.
Pourquoi votre stratégie parfaite échouera en réel
Commençons par la vérité qui dérange : si vous avez optimisé une stratégie pour qu'elle colle aux données passées, vous n'avez pas trouvé un avantage. Vous avez trouvé du bruit.
Ajuster la courbe à du bruit aléatoire
Ce que c'est : Optimiser les paramètres jusqu'à ce que le backtest paraisse parfait
Exemple :
- Vous testez 100 périodes d'EMA différentes (10, 11, 12… 110)
- EMA(47) donne 4,2R d'espérance en backtest
- Vous croyez avoir trouvé le « chiffre magique »
Réalité : EMA(47) collait simplement par hasard à ce jeu de données précis. Et en test hors échantillon ? -0,8R d'espérance. Vous avez appris le bruit, pas le signal.
Mieux : Limitez l'optimisation. Utilisez des paramètres standards. Testez sur des données inédites.
Utiliser des données futures (impossible en trading réel)
Ce que c'est : Du code qui « regarde » les bougies futures pour décider maintenant
Exemple :
if close[0] > high[5]: # utilise les 5 bougies FUTURES
enter_long()
Le problème : En backtesting, vous disposez des données futures. En trading réel, non.
Réalité : Ce code ne peut tout simplement pas s'exécuter en réel. Votre backtest teste une stratégie qui n'existe pas.
Mieux : N'utilisez que les données disponibles au moment de la décision.
Supposer des exécutions parfaites à des prix parfaits
Hypothèse du backtest : « J'achète à 100,00 $ pile »
Réalité : L'ordre au marché est exécuté à 100,12 $ (spread + slippage)
Impact sur 100 positions :
- Profit du backtest : 5 000 $
- Coût du spread (0,10 $ par position) : -1 000 $
- Slippage (0,05 $ par position) : -500 $
- Commissions (2 $ par position) : -200 $
Réalité : Profit réel = 3 300 $ (34 % de moins que le backtest)
Ne tester que sur les survivants
Ce que c'est : Faire du backtesting uniquement sur les valeurs actuelles du S&P 500
Le problème : Vous excluez plus de 200 titres radiés ou tombés en faillite
Exemple :
- Backtest sur la liste S&P 500 de 2024 : 1,8R d'espérance, facteur de profit 2,1
- Mais sur toute cette période, vous auriez été acheteur de Hertz (faillite en 2020), de SVB Financial (effondrement en 2023) et de tous les autres noms partis à zéro.
Réalité : Votre espérance laisse de côté les pertes catastrophiques liées aux radiations. Espérance réelle : -0,2R (un système perdant).
💡 le déclic
Un backtest n'est pas la réalité. C'est une simulation. Et si votre simulation repose sur des hypothèses impossibles, vos résultats réels le seront tout autant.
Les coûts cachés qui tuent les stratégies
Voici ce que la plupart des backtests ignorent — et pourquoi le vôtre est sans doute 20 à 40 % trop optimiste :
Étape 1 : modéliser la fourchette achat-vente
Ce que c'est : L'écart entre le prix d'achat et le prix de vente
Exemple :
- SPY, demande : 450,00 $ / offre : 450,01 $ → spread = 0,01 $
- Vous achetez : vous payez 450,01 $ (demi-fourchette = 0,005 $)
- Vous vendez : vous recevez 450,00 $ (demi-fourchette = 0,005 $)
Coût par aller-retour : $0.01
Pour 1 000 titres : 0,01 $ × 1 000 = 10 $ par position
100 positions : 1 000 $ de coûts de spread
Étape 2 : modéliser le slippage
Ce que c'est : Écart entre le prix visé et l'exécution réelle
Slippage réaliste selon les conditions :
- Liquidité normale : 0.01-0.02%
- Marchés volatils : 0.05-0.10%
- Liquidité faible : 0.10-0.30%
- Position de grande taille : 0.20-0.50%
Hypothèse prudente : 0,05 % par position
Position de 10 000 $ × 0,05 % = 5 $ de slippage par sens = 10 $ l'aller-retour
Étape 3 : modéliser les commissions
Exemple : Interactive Brokers
- 0,005 $ par titre, 1 $ minimum
- 200 titres × 0,005 $ = 1 $ par sens
- Aller-retour = 2 $
100 positions : 200 $ de commissions
Étape 4 : coût réaliste total
Par position (aller-retour) :
- Spread : 10 $
- Slippage : 10 $
- Commission : 2 $
Total : 22 $ par position
Si votre stratégie rapporte 50 $ bruts par position → 28 $ nets (44 % de moins !)
Exemple d'ajustement du backtest
Avant et après des coûts réalistes
Stratégie : 100 positions, 50 $ de profit moyen par position
Backtest (fantaisie) :
100 positions × 50 $ = 5 000 $ de profit
Après des coûts réalistes :
- Brut : 5 000 $
- Spread : -1 000 $
- Slippage : -1 000 $
- Commissions : -200 $
Profit net : 2 800 $ (44 % de moins)
La seule validation qui compte
Voici comment les professionnels valident une stratégie :
Découpez vos données en deux périodes.
- In-sample (60-70 %) : C'est ici que vous développez et optimisez votre stratégie
- Out-of-sample (30-40 %) : Validation sur des données INÉDITES
🎯 Exemple : 6 ans de données (2018-2024)
In-sample : 2018-2022 (optimisez ici)
- Testez différents paramètres
- Trouvez les règles les plus performantes
- Affinez la logique d'entrée et de sortie
Out-of-sample : 2023-2024 (validez ici)
- Faites tourner la stratégie sans AUCUNE modification
- Comparez la performance à celle de l'in-sample
- Si c'est comparable → pas de surapprentissage !
- Si c'est bien pire → surajustée au bruit de l'in-sample
Les signaux d'alerte du surapprentissage
🚩 Les signes que votre stratégie est une courbe ajustée
- Sharpe supérieur à 3,0 : Trop beau pour être vrai
- Espérance supérieure à 5R : Extrêmement rare (vérifiez vos hypothèses d'exécution)
- Seulement 20-30 positions : Échantillon trop petit (statistiquement dénué de sens)
- Courbe de capital parfaite : Une ligne lisse sans drawdowns (impossible)
- Testée sur un seul actif : Sans doute ajustée à ce régime précis
- 10 paramètres optimisés ou plus : Vous avez ajusté le bruit, pas le signal
La méthode de validation professionnelle
L'in-sample contre l'out-of-sample, c'est bien. Le walk-forward, c'est mieux.
Comment cela fonctionne :
📊 Le cadre walk-forward
Période 1 : Entraînement sur 2018-2019 → test sur 2020
Période 2 : Entraînement sur 2019-2020 → test sur 2021
Période 3 : Entraînement sur 2020-2021 → test sur 2022
Période 4 : Entraînement sur 2021-2022 → test sur 2023
Si c'est cohérent sur toutes les périodes : Stratégie robuste
Si la performance se dégrade : Surajustée ou dépendante du régime
🎓 À retenir
- Modélisez des coûts réalistes : Spread, slippage, commissions (20 à 40 % de profit en moins)
- Évitez le surapprentissage : Limitez les paramètres, testez sur plusieurs marchés
- In-sample contre out-of-sample : Développez sur 60-70 %, validez sur 30-40 %
- Test walk-forward : Vérifiez la cohérence dans le temps
- Signaux d'alerte : Sharpe supérieur à 3,0, espérance supérieure à 5R, moins de 30 positions
- Testez en marche avant, puis passez en réel : Trading papier pendant 3 à 6 mois minimum
🎯 Exercice de validation de backtest
Exercice : validez votre stratégie avec le détecteur de signaux d'alerte
Prenez votre stratégie actuelle (ou une que vous envisagez) et passez-la par la validation :
- Faites le backtest sur 60 % de vos données (in-sample). Notez : positions, espérance, Sharpe, DD maximal
- Repérez les paramètres utilisés (EMAs, seuils, etc.). Les avez-vous optimisés en essayant plusieurs valeurs ?
- Testez sur les 40 % restants (out-of-sample). Comparez avec l'in-sample.
- Utilisez la grille de validation du modèle (8 catégories, 60 points maximum)
- Calculez votre score : 50-60 = on y va, 40-49 = à revoir, moins de 40 = à jeter
- Si le score atteint 50 : tradez sur papier pendant 30 à 60 positions avant de passer en réel
Objectif : Attrapez la courbe ajustée, le biais d'anticipation et les hypothèses irréalistes AVANT qu'ils ne détruisent votre compte réel. Mieux vaut jeter une mauvaise stratégie en backtesting que perdre de l'argent réel.
🎮 Vérification rapide
Q : Vous faites le backtest d'une stratégie : 5,2R d'espérance, ratio de Sharpe de 4,2, testée sur 25 positions, avec EMA(47) parce que c'est elle qui donnait le meilleur résultat après avoir essayé 100 périodes. Qu'est-ce qui cloche ?
Vous faites le backtest d'une stratégie de retour à la moyenne sur le SPY de 2010 à 2024. Résultats : 2,8R d'espérance, 68 % de réussite, 120 000 $ de profit. Les données ne contiennent que les composantes actuelles du S&P 500 (les titres présents dans l'indice aujourd'hui). Vous passez en réel en 2025 : ça échoue. Qu'est-ce qui a cloché ?
Vous faites un test walk-forward de votre stratégie : entraînement 2018-2020, test 2021 (réussi). Entraînement 2018-2021, test 2022 (réussi). Entraînement 2018-2022, test 2023 (réussi). Vous n'avez modélisé ni le slippage ni les commissions. Faut-il trader cette stratégie en réel ?
En backtesting, la perfection est suspecte. Le réalisme est l'avantage. Modélisez les coûts, évitez le surapprentissage, testez en avant — ou échouez en réel.
Leçons associées
Maîtriser le journal de trading
Suivez la performance réelle et comparez-la aux résultats du backtest.
Lire la leçon →Taille de position
Appliquez un dimensionnement correct dans vos backtests pour des résultats réalistes.
Lire la leçon →Reconnaissance de régime
Testez votre stratégie sur tous les régimes pour en vérifier la robustesse.
Lire la leçon →⏭️ La suite
Leçon #33 : gestion avancée du risque — les cadres professionnels — Découvrez le critère de Kelly, le dimensionnement dynamique et les protocoles de drawdown.
À but éducatif uniquement. Le trading comporte un risque de perte substantiel. Les performances passées ne garantissent pas les résultats futurs.
💬 Discussion (0 commentaire)
Chargement des commentaires…
Prêt à trader avec Signal Pilot ?
Mettez votre formation en pratique avec des indicateurs professionnels et des outils d'analyse de marché en temps réel.
Retour à Signal Pilot →À but éducatif uniquement. Le trading comporte un risque de perte substantiel. Ceci n'est pas un conseil financier. Les performances passées ne garantissent pas les résultats futurs.