597 / 691BT

Backtesting

Test historique d’une stratégie

Backtesting simule des règles décrites à l’avance sur des données historiques. Le résultat dépend de la disponibilité temporelle des informations, du choix des données, du modèle d’exécution et des coûts. Un gain historique n’est ni une transaction réellement exécutée ni une garantie de rendement futur.

Backtesting est une simulation historique de règles de négociation ou de décision, avec des données, un ordre temporel et des hypothèses d’exécution explicitement définis. Il permet d’examiner le comportement d’une règle sur un échantillon passé, mais sa valeur informative dépend de la conception de l’ensemble du test.

Backtesting applique des règles aux données historiques et calcule le résultat qu’elles auraient produit selon les hypothèses retenues. Bailey et ses coauteurs le décrivent comme une simulation historique d’une stratégie algorithmique, tout en soulignant le risque de fausses découvertes. Notre délimitation éditoriale : le résultat correspond à une version précise des règles, des données et du modèle d’exécution. Il ne prouve pas que quelqu’un a réellement effectué ces transactions. Un calcul reproductible peut révéler une erreur ou une idée inadaptée, mais il ne transforme pas à lui seul le passé en prévision fiable. [Bailey et al. — The Probability of Backtest Overfitting]

QuantConnect décrit un biais dans lequel la simulation utilise des informations futures, comme des données comptables avant leur publication ou leurs corrections ultérieures. Notre propre convention temporelle exige, pour chaque entrée, l’instant de sa disponibilité, et pas seulement la date de la période à laquelle elle se rapporte. Un signal issu d’une bougie clôturée ne peut, sans hypothèse supplémentaire, obtenir une transaction à un prix qui n’était plus accessible. Dans notre exemple, les cours de clôture précédents ne sont utilisés que pour la période suivante, et le modèle précise explicitement son exécution à l’ouverture. [QuantConnect — Research Guide]

QuantConnect met en garde contre les tests limités aux titres ayant survécu jusqu’à la fin de la période et contre l’application rétrospective de la composition actuelle d’un indice. Notre question plus générale est de savoir si l’ensemble historique conserve aussi les instruments alors disponibles qui ont disparu par la suite. Il faut documenter les données manquantes, les changements de méthode et le choix des marchés. Pour une simulation sur le bitcoin, on ne peut pas automatiquement considérer le prix d’un service comme un prix accessible sur un autre service. Des données propres supposent des corrections traçables, pas la suppression de résultats gênants. [QuantConnect — Research Guide]

La documentation QuantConnect distingue le signal et l’ordre du modèle qui détermine le prix et la quantité exécutés. Elle souligne aussi la différence entre les exécutions partielles en négociation réelle et l’hypothèse d’exécution complète des modèles prédéfinis. Notre exigence consiste à décrire quand l’ordre peut être exécuté, ce qui se passe si la liquidité est insuffisante et comment un prix périmé est traité. Le simple fait d’atteindre un niveau de prix dans les données historiques ne prouve pas qu’une contrepartie soit disponible pour un ordre de taille quelconque. Le résultat du modèle d’exécution reste une hypothèse de simulation. [QuantConnect — Trade Fills: Key Concepts]

QuantConnect décrit Slippage comme la différence entre le prix d’exécution attendu et le prix réel, en évoquant les délais, la connexion et les conditions de marché ; l’écart peut être favorable ou défavorable. Notre contrôle des coûts distingue les commissions, le prix d’exécution et les éventuels autres coûts de détention ou de financement. Un coût déjà intégré au prix d’exécution ne doit pas être déduit une seconde fois. Une valeur nulle est une hypothèse précise du modèle, pas la preuve d’un marché sans coûts. La sensibilité à des coûts plus élevés aide à déterminer si un faible gain historique dépend d’un paramétrage optimiste. [QuantConnect — Slippage: Key Concepts]

La documentation TimeSeriesSplit explique le découpage chronologique pour éviter d’entraîner un modèle sur le futur et de l’évaluer sur le passé. Notre exigence méthodologique est de fixer une période de conception des règles et une période de validation ultérieure avant d’examiner les résultats. Si les règles sont à nouveau modifiées après un échec en fonction de la période de validation, celle-ci a déjà influencé le développement. Le seul découpage chronologique ne résout ni les fuites d’information dues au prétraitement, ni le chevauchement des cibles, ni la sélection répétée de variantes. La procédure et les frontières entre les données doivent être décrites. [scikit-learn — TimeSeriesSplit]

Bailey et ses coauteurs montrent que la recherche répétée de la meilleure configuration sur les mêmes données augmente le risque de fausses découvertes et d’ajustement au bruit passé. Notre règle de présentation impose de fournir l’historique des essais, et pas seulement la courbe gagnante. Cela comprend les changements de paramètres, de périodes et de sélection des instruments. Un résultat choisi après de nombreux essais n’a pas la même valeur informative qu’une règle fixée à l’avance et laissée inchangée. Leur méthode d’estimation de la probabilité de surajustement n’est ni appliquée dans notre exemple simple ni remplacée par un unique découpage des données. [Bailey et al. — The Probability of Backtest Overfitting]

La NFA souligne que les résultats hypothétiques ne représentent pas des transactions réelles, peuvent profiter du recul et modéliser imparfaitement la liquidité, Slippage ou le comportement face à une perte réelle. Notre rapport doit donc conserver la version des données et du code, les règles, les hypothèses d’exécution, les coûts inclus et la liste complète des transactions simulées. Le rendement total exige un contexte de risque et une comparaison dans les mêmes conditions ; un beau graphique sélectionné ne suffit pas. Même une implémentation sans erreur d’un test historique ne garantit ni sa faisabilité ni son rendement sur un marché futur. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]

ExempleEXEMPLE · BT

Signal de la période précédente, exécution dans la suivante

Notre exemple fictif utilise quatre périodes de même durée, A, B, C et D. La trésorerie initiale est de 1000 USD, sans position ouverte, dette, dépôt ni retrait. Les deux cours de clôture avant la période A sont [100, 100] USD/BTC. Les cours d’ouverture des périodes A à D sont [101, 103, 102, 105] USD/BTC et les cours de clôture [102, 101, 104, 103] USD/BTC. La règle fixée à l’avance achète 1 BTC au début de la période uniquement si le dernier cours de clôture achevé dépasse le cours de clôture achevé précédent ; elle vend tout à la fin de cette même période. Les signaux sont donc [0, 1, 0, 1], où 1 signifie une transaction et 0 l’inaction. Le modèle suppose une exécution complète exactement aux cours d’ouverture et de clôture indiqués, un spread et Slippage nuls, sans autres coûts qu’une commission de 0.1 USD par achat ou vente. En B, l’achat se fait à 103 USD et la vente à 101 USD ; en D, à 105 USD et 103 USD. Les résultats bruts des périodes sont [0, -2, 0, -2] USD. Les quatre opérations d’achat ou de vente exécutées coûtent au total 0.4 USD et les résultats nets sont [0, -2.2, 0, -2.2] USD. Le total brut est de -4 USD, le total net de -4.4 USD et la trésorerie finale de 995.6 USD. Le graphique présente les contributions nettes de chaque période, et non le solde du compte ou une probabilité. Il s’agit d’une simulation de l’ordre temporel et de la comptabilisation vérifiable à la main, pas de données de marché réelles, d’une optimisation ou d’une preuve de performance future.

Pour une vision complète, lisez aussi Trading Plan, Trading Journal, Slippage, Overfitting, Walk-forward Analysis. Cette entrée est également citée par Technical analysis, OHLCV, Timeframe, Candlestick chart.

01Un backtest rentable prouve-t-il qu’une stratégie gagnera de l’argent ?

Non. Le résultat peut dépendre de données particulières, des coûts, du modèle d’exécution ou du choix de la meilleure variante. Il faut vérifier la cohérence temporelle, les hypothèses et la procédure de sélection ; même ensuite, cela ne garantit pas un rendement futur.

02Suffit-il de déduire les commissions du gain final ?

Uniquement si cette méthode correspond exactement au modèle et n’influence ni le capital disponible ni les décisions ultérieures. Il faut généralement comptabiliser les coûts lors des événements correspondants, distinguer le prix d’exécution des commissions et éviter une double déduction.

DOC · 001Bailey et al. — The Probability of Backtest OverfittingSource primaire ↗DOC · 002QuantConnect — Research GuideDocumentation ↗DOC · 003QuantConnect — Trade Fills: Key ConceptsDocumentation ↗DOC · 004QuantConnect — Slippage: Key ConceptsDocumentation ↗DOC · 005scikit-learn — TimeSeriesSplitDocumentation ↗DOC · 006NFA — Use of Promotional Material Containing Hypothetical Performance ResultsDocumentation ↗
Sources d’abord · Pas un conseil financier