Backtester une stratégie sur actions, forex ou futures, c'est appliquer la même méthode à trois données qui ne se ressemblent pas : des cours d'actions à ajuster, des cotations forex qui n'appartiennent qu'à ton courtier, des contrats à terme qui expirent. Ce guide dit, marché par marché, ce que la donnée change et ce que la simulation doit changer avec elle, pour que le backtest mesure ta stratégie et non les défauts de sa série de prix.
- Actions : série ajustée ou brute selon ta stratégie, échantillon qui garde les sociétés disparues, enchère d'ouverture et suspensions.
- Forex : pas de marché central, donc spread et ticks propres à chaque courtier, volume qui compte les changements de prix, swap chaque nuit.
- Futures : des échéances, un raccord entre contrats qui déforme les prix passés, une valeur du tick et des marges fixées par la bourse.
- Partout : règles écrites avant, coûts simulés, échantillon assez long, test hors échantillon.
La méthode est détaillée dans comment backtester une stratégie sans se mentir, et le choix entre test à la main et test codé dans backtest manuel ou automatisé. Ici, seulement ce qui dépend du marché.
Ce qui ne change pas d'un marché à l'autre
Quel que soit l'instrument, un backtest honnête repose sur quatre choses : des règles écrites avant de regarder le graphique ; des coûts simulés, spread, commission et slippage ; un échantillon assez long pour traverser plusieurs régimes de marché ; et une partie gardée de côté pour vérifier les paramètres là où ils n'ont pas été ajustés. Vient ensuite le forward test, avant de risquer un centime.
Les options sont un cas à part, parce que leur prix dépend du temps et de la volatilité implicite : c'est l'objet de backtester une stratégie d'options. Le vocabulaire du test est dans le glossaire, à l'entrée backtesting et replay, et les outils sont comparés dans le guide sur les logiciels de backtesting gratuits.
Actions : des cours à ajuster et un échantillon qui oublie les disparus
Une action est une part d'une société, et la société vit : elle divise ses titres, verse des dividendes, parfois disparaît de la cote. Chaque événement laisse une trace dans la série de prix, et un backtest sur actions qui la lit sans la comprendre prend un événement comptable pour un mouvement de marché.
Divisions et dividendes : la série ajustée ou la série brute
Quand une société divise ses titres, le cours baisse d'un coup sans que rien ne se soit passé : d'après le glossaire du Nasdaq, une action à 100 dollars avant une division deux pour une cote 50 dollars après, et chaque actionnaire détient deux fois plus de titres. Sur un graphique brut, c'est une chute de moitié, et une stratégie de cassure y verra un signal qui n'a jamais existé. Les fournisseurs de données corrigent cela par une série ajustée : la page d'aide de Yahoo Finance sur le cours de clôture ajusté le définit comme le cours de clôture après ajustement de toutes les divisions et distributions de dividendes, les données antérieures à l'événement étant multipliées par un facteur. Un dividende fait le même effet en plus petit.
Quelle série choisir ? Celle que ta stratégie lit. Des règles fondées sur des niveaux de prix se testent sur la série brute, parce que c'est elle que le marché a vue ; des règles fondées sur des rendements ou des indicateurs, sur la série ajustée, sinon chaque division fabrique un faux signal. Le moteur LEAN nomme les deux dans son code source : en mode brut, dividendes versés en espèces et divisions appliquées à la quantité du portefeuille ; en mode ajusté, divisions et dividendes intégrés rétroactivement dans le prix. Un logiciel de backtesting qui ne te dit pas laquelle il te sert te laisse deviner la moitié de ton résultat.
Le biais du survivant : les sociétés radiées manquent à la base
Le deuxième piège tient à ce qui n'est plus sur le graphique. Si tu testes sur les actions qui composent un indice aujourd'hui, tu testes sur des sociétés qui ont survécu jusqu'à aujourd'hui : celles qui ont fait faillite ou ont été radiées ne sont plus dans la liste, et leurs pertes non plus. Le phénomène atteint jusqu'aux bases de référence : dans « The Delisting Bias in CRSP Data », paru en 1997 dans le Journal of Finance, Tyler Shumway montre que la base du Center for Research in Security Prices sur les actions américaines manque du rendement de radiation correct pour la plupart des titres radiés pour faillite ou autre motif négatif depuis 1962, et que les rendements omis sont importants.
La parade : tester sur la composition de l'indice à chaque date, pas sur sa composition actuelle, et garder les titres radiés avec leur dernier cours. Sinon, lis tes résultats comme une borne haute.
Horaires, enchère d'ouverture et suspensions
Une action a une séance. D'après la page des horaires du New York Stock Exchange, la séance principale va de 9 h 30 à 16 h, heure de New York, s'ouvre et se ferme par une enchère, et certaines journées ferment à 13 h. Le premier prix de la journée est donc le résultat d'une enchère, et un ordre passé « à l'ouverture » obtient ce prix-là, pas la clôture de la veille. Un test en données journalières qui achète « à la clôture du signal » agit sur une information connue à 16 h seulement : c'est une lecture en avance, et elle flatte le résultat.
Une action peut aussi être suspendue. La liste des codes de suspension du Nasdaq distingue, entre autres, la suspension dans l'attente d'une annonce (T1), la pause de volatilité (LUDP) et la suspension décidée par la SEC (H10). Pendant une suspension, il n'y a pas de prix, donc pas de stop exécutable : un backtest y exécute un stop à un prix qui n'a existé pour personne.
Forex : les données de ton courtier, pas celles du marché
Le forex n'a pas de bourse. D'après l'enquête triennale de la Banque des règlements internationaux, les échanges sur les marchés des changes de gré à gré ont atteint 7 500 milliards de dollars par jour en avril 2022, et chaque courtier y sert ses propres cotations. Il n'existe donc pas « les données EUR/USD », il existe celles de ton courtier, et un test fait sur celles d'un autre ne prouve rien sur ce que ton compte aurait vécu.
Spread et ticks propres à chaque courtier
Le mode « chaque tick fondé sur les ticks réels » du testeur de MetaTrader 5 teste, d'après la documentation du Strategy Tester de MetaTrader 5, sur les ticks réels accumulés par les courtiers. Chez cTrader, la page d'aide sur le backtest d'un cBot présente les ticks du serveur comme la source la plus précise, et laisse régler le spread à une valeur fixe, à celle du moment, ou au hasard entre un minimum et un maximum. Un backtester forex réglé sur un spread fixe et étroit teste une version du marché qui n'existe qu'aux heures calmes et surestime toute stratégie de court terme ; la valeur honnête est le spread moyen de ton courtier aux heures où tu trades. Le logiciel ne manque pas, le Strategy Tester est livré avec MetaTrader ; ce qui manque, ce sont les ticks réels de ton courtier.
Un volume qui compte les changements de prix
Le volume forex n'est pas un volume. La documentation de l'indicateur Volumes de MetaTrader 5 le dit : pour le marché des changes, l'indicateur mesure le nombre de changements de prix dans chaque période, alors que pour les actions il mesure les volumes réellement échangés. Une stratégie forex qui filtre ses entrées sur le volume teste donc l'activité du serveur de ton courtier : elle ne se transposera pas telle quelle chez un autre.
Le swap de nuit
Garder une position forex d'un jour sur l'autre coûte ou rapporte un swap, lié à l'écart de taux entre les deux devises et fixé par le courtier. La fiche de spécification des contrats de MetaTrader 4 définit le swap long et le swap short comme la taille du roulement pour une position longue ou courte, et la documentation MQL5 des propriétés de symbole prévoit un jour de la semaine où un swap de trois jours est facturé, pour couvrir le week-end. Sur plusieurs nuits, il peut manger l'espérance d'une paire à fort écart de taux. Un backtest forex multi-jours qui l'ignore n'est pas faux, il est incomplet, et toujours dans le sens qui t'arrange.
Futures : des contrats qui expirent, et une série qu'il faut raccorder
Un contrat à terme a une date. Le S&P 500 de mars n'est pas celui de juin : deux instruments cotés à des prix différents, et le premier cesse d'exister à son échéance. La leçon sur les contrats à terme pose les bases ; pour le backtest, dix ans de test traversent quarante échéances trimestrielles.
Échéances, mois rapproché et rollover
Le glossaire de la CFTC, le régulateur américain des marchés à terme, appelle « front month » l'échéance la plus proche et « back months » les échéances plus lointaines ; il définit le rollover comme le fait de clore une position sur l'échéance proche pour la rétablir sur une échéance plus éloignée. Dans un compte réel, le rollover est un trade : tu fermes mars, tu ouvres juin, tu paies deux fois les frais et l'écart de prix entre les deux contrats. Dans un backtest, il faut décider quand il a lieu et comment il se voit dans la série.
Le contrat continu : trois façons de raccorder, trois séries différentes
Pour tester sur des années, les plateformes construisent un contrat continu, une seule série qui enchaîne les échéances. Au changement, le nouveau contrat ne cote pas au prix de l'ancien, et cet écart n'est pas un mouvement de marché. Le guide de NinjaTrader 8 sur la politique de fusion décrit trois réponses : « MergeBackAdjusted », où un décalage aligne les prix historiques sur le contrat suivant ; « MergeNonBackAdjusted », où les données restent brutes ; et « DoNotMerge », qui ne charge que l'échéance choisie. Le code source de LEAN nomme les mêmes méthodes autrement : « BackwardsPanamaCanal » ajoute à chaque raccord un facteur égal à l'écart de prix entre les deux contrats, « BackwardsRatio » multiplie les prix par leur ratio, et la date du raccord se choisit au dernier jour de cotation, au premier jour du mois de livraison, ou quand le contrat suivant compte plus de positions ouvertes que le contrat en cours.
Conséquences : la série ajustée par différence garde les écarts en points, mais ses prix anciens n'ont jamais été cotés ; la série ajustée par ratio garde les rendements en pourcentage, mais déforme les écarts en points ; la série brute fabrique un faux gap à chaque échéance, que ta stratégie prendra pour une cassure. Une stratégie sur niveaux de prix absolus ne se teste donc pas sur une série ajustée, et avant de lire un résultat, demande à ton logiciel laquelle il t'a servie et à quelle date il a roulé.
Tick, valeur du point et marges
Le glossaire de la CFTC définit la fluctuation minimale de prix, le tick, comme le plus petit incrément de mouvement possible pour un contrat donné, et la taille du contrat comme la quantité réelle de marchandise qu'il représente : chaque future a son tick, et chaque tick sa valeur en argent. Un backtest futures qui compte ses gains en points sans les convertir avec la valeur du tick du contrat testé compare des choses qui n'ont pas la même unité. La taille de position ne se calcule pas non plus comme sur des actions : d'après le même glossaire, la marge initiale est le montant exigé par le courtier à l'ouverture d'une position et la marge de maintenance celui qui doit rester déposé. Le levier d'un future est donc fixé par la marge : une simulation qui prend des positions que ta marge n'aurait pas permises teste un compte que tu n'as pas.
Le tableau comparatif
| Actions | Forex | Futures | |
|---|---|---|---|
| La donnée | Cours brut ou ajusté ; composition de l'indice datée | Cotations et ticks du courtier, aucun prix officiel | Un contrat par échéance ; contrat continu raccordé par différence, par ratio ou brut |
| Le volume | Volume réellement échangé | Volume tick : changements de prix chez le courtier | Volume et positions ouvertes du contrat |
| Les coûts à simuler | Commission, spread, slippage | Spread flottant du courtier, commission, swap | Commission par contrat, slippage en ticks, frais du rollover |
| Le piège principal | Biais du survivant, série non ajustée | Spread fixe, données d'un autre courtier | Raccord des contrats, levier hors marge |
Et Tradoshi dans tout ça
Tradoshi a son propre module de backtesting, en beta : il rejoue l'historique bougie par bougie sans montrer la suite, simule tes ordres avec spread, slippage et commissions, et note chaque session avec les mêmes statistiques que ton journal. Quel que soit le marché, le journal prend ensuite la suite : tes trades réels donnent les statistiques que ton backtest promettait. Le module est présenté sur la page backtesting.
Questions fréquentes
Faut-il backtester les actions sur des cours ajustés ou bruts ?
Selon ce que lit ta stratégie : des rendements ou des indicateurs, la série ajustée, sinon chaque division crée un faux signal ; des niveaux de prix absolus, la série brute, parce que c'est elle que le marché a vue.
Qu'est-ce que le biais du survivant dans un backtest sur actions ?
C'est tester sur les sociétés qui existent encore, sans celles qui ont fait faillite ou ont été radiées. Shumway a montré en 1997 que même la base CRSP manquait du rendement de radiation de la plupart des titres sortis pour motif négatif. La parade : la composition de l'indice à chaque date, titres radiés compris.
Pourquoi un backtest forex donne-t-il des résultats différents d'un courtier à l'autre ?
Parce que le forex n'a pas de marché central : chaque courtier sert ses propres cotations, son propre spread et ses propres ticks. Teste sur les données du courtier chez qui tu traderas, avec son spread moyen aux heures où tu trades.
Comment backtester des futures sur plusieurs années ?
Avec un contrat continu, en sachant comment il est raccordé, par différence, par ratio ou laissé brut, et à quelle date le rollover a lieu. Convertis ensuite les ticks en argent avec la valeur du tick, et respecte la marge.
Peut-on backtester gratuitement sur actions, forex et futures ?
Oui sur les trois : les plateformes de courtier intègrent leur testeur, et NinjaTrader écrit sur sa page des tarifs que sa plateforme est gratuite pour le backtesting et la simulation. Ce qui est rarement gratuit, c'est la donnée fine : ticks réels, historiques intrajournaliers profonds, composition d'indice datée, contrats continus bien raccordés. Le détail est dans le guide sur les logiciels de backtesting gratuits.
