Skip to content

03 — Lancer et lire un backtest

À quoi sert un backtest

Un backtest rejoue votre stratégie sur des données historiques, barre par barre. Il n'y a pas de mode « simple » : chaque backtest exécute une validation walk-forward. La période demandée est découpée en plusieurs folds, et les métriques in-sample et out-of-sample sont rapportées séparément, jamais fondues dans un chiffre unique.

Si ces termes ne vous disent rien, lisez le Lexique avant d'aller plus loin : comprendre cette distinction est tout l'intérêt de la fonctionnalité.

Lancer un run

Allez dans Stratégies, ouvrez une stratégie, cliquez sur Lancer un backtest, puis remplissez le formulaire Configurer le backtest :

ChampDescription
Date de début / Date de finLa période historique testée (la fin ne peut pas être dans le futur)
SymboleUn seul instrument par backtest, choisi parmi les symboles suivis
Capital initialCapital de départ de la simulation — le dimensionnement ne le dépasse jamais (pas de levier)
Ajustement des prixSplits (défaut) ou Total return (splits + dividendes réinvestis)
Folds walk-forwardNombre de paires in-sample / out-of-sample, de 1 à 20 (10 par défaut), réduit automatiquement si la période est trop courte
Mode walk-forwardAnchored (fenêtre in-sample croissante, défaut) ou Rolling (fenêtre glissante de taille fixe)

Le timeframe n'est pas un paramètre du run : il découle de la stratégie, qui s'exécute sur le plus fin des timeframes référencés par ses règles (journalier si aucun ne l'est) — voir 02 — Concevoir une stratégie.

Un symbole radié reste testable jusqu'à sa dernière cotation : le formulaire limite alors la date de fin en conséquence.

Cliquez sur Lancer le backtest. Le calcul se fait en arrière-plan et une barre de progression suit son avancement en direct. Les données de marché manquantes pour la période demandée sont récupérées automatiquement avant le début de la simulation.

Comment la période est découpée

La période est découpée en folds successifs, selon le mode choisi :

  • Anchored (défaut) : la fenêtre in-sample de chaque fold part toujours du tout début de la période et s'étend à chaque fold — rien n'est oublié.
  • Rolling : la fenêtre in-sample est de taille fixe et glisse — c'est le segment qui précède immédiatement l'out-of-sample du fold. À préférer si vous soupçonnez un changement de régime de marché, qui rendrait l'histoire ancienne trompeuse.
  • Dans les deux cas, l'out-of-sample d'un fold est la tranche de temps suivante, que la fenêtre in-sample de ce fold ne contenait pas.
  • La configuration de la stratégie est strictement identique sur les deux fenêtres : rien n'est calibré ni réglé différemment entre elles (voir la nuance importante dans le LexiqueWalk-forward).

Chaque segment est une simulation indépendante qui repart du capital initial et refait son propre échauffement d'indicateurs depuis sa première barre. C'est ce qui garantit qu'aucun trade out-of-sample ne peut dépendre d'un calcul à cheval sur la frontière.

Si la période est trop courte pour donner à chaque segment un nombre de barres raisonnable, le nombre de folds est réduit automatiquement (jusqu'à 1 minimum) plutôt que de faire échouer le run. Un message le signale dans les résultats : un résultat sur 2 folds n'a pas le poids statistique d'un résultat sur 10.

Lire les résultats

Les résultats s'affichent en deux onglets : Métriques et Graphique.

L'onglet Métriques

  1. Deux cartes de synthèse, toujours côte à côte : out-of-sample et in-sample (moyenne et écart-type du rendement et du Sharpe sur l'ensemble des folds). C'est la carte out-of-sample qui décide si une stratégie mérite qu'on continue.
  2. Une ligne d'en-tête de run : mode et nombre de folds, WFE médiane, part de folds out-of-sample profitables, et max drawdown de la courbe d'equity out-of-sample recousue — tracée juste sous le tableau des folds.
  3. Le tableau fold par fold : rendement et Sharpe in-sample, rendement, Sharpe et nombre de trades out-of-sample, et un badge de WFE (vert à partir de 50 %, ambre en dessous). Un fold dont l'out-of-sample n'a produit aucun trade est signalé comme tel et sort des agrégats de WFE.
  4. Le détail d'un segment : cliquez sur la ligne d'un fold, puis basculez entre In-sample et Out-of-sample pour voir toutes ses métriques, et suivez le lien vers le graphique de ce segment précis.
  5. Un rappel de la configuration exacte du run — capital, mode d'ajustement, dimensionnement, modèle de coûts, version du moteur — figée à son lancement. Modifier la stratégie ensuite ne change pas ce qui est affiché ici.
  6. Les avertissements sur la qualité des données, s'il y en a.

Les métriques d'un segment

Elles sont regroupées en sections — Rendements, Ajusté du risque, Drawdown, Trading, Coûts et exécution :

MétriqueCe qu'elle mesure
Rendement totalGain ou perte nette sur le segment, en %
CAGR (annualisé)Taux de croissance annuel composé, calculé sur le temps calendaire écoulé
Rendement buy & holdLe même symbole simplement détenu sur tout le segment — la référence minimale à battre
Ratio de SharpeRendement ajusté du risque, annualisé, net du taux sans risque configuré
Ratio de SortinoComme le Sharpe, mais ne pénalise que la volatilité à la baisse
Ratio de CalmarCAGR rapporté au drawdown maximum
Volatilité (ann.)Écart-type annualisé des rendements
Drawdown max (+ montant, durée, temps de récupération)Pire perte d'un sommet à un creux, temps pour l'atteindre et pour la récupérer
Taux de réussitePart des trades gagnants
Profit factorProfit brut ÷ perte brute — au-dessus de 1, la stratégie est nette positive
Payoff ratioGain moyen ÷ perte moyenne
Espérance / tradeP&L moyen par trade clôturé
Série perdante maxPlus longue succession de trades perdants
ExpositionPart des barres où au moins une position était ouverte
Durée moyenne de détentionTemps moyen pendant lequel un trade est resté ouvert
Frais totaux / Slippage totalCoûts de transaction réellement payés sur le segment
Entrées réduites / Entrées rejetéesSignaux d'entrée bridés ou refusés faute de capital disponible
Trades totaux, gagnants, perdantsDécompte des trades clôturés sur le segment
Barres de warm-upBarres consommées par l'échauffement des indicateurs, pendant lesquelles aucun signal n'est émis

Une carte des rendements mensuels complète le tableau. Les définitions complètes sont dans le Lexique ; les conventions de calcul (facteur d'annualisation, taux sans risque, écart-type de population…) sont dans 06 — Hypothèses et limites.

L'onglet Graphique

Pour le segment sélectionné : les chandeliers, les indicateurs de la stratégie, les marqueurs d'entrée et de sortie, et la courbe d'equity. En dessous, le tableau des trades — un par ligne, avec pour chacun l'excursion la pire et la meilleure atteinte pendant qu'il était ouvert (MAE / MFE) — exportable en CSV.

Lire l'écart in-sample / out-of-sample

Si les chiffres out-of-sample sont nettement moins bons que les chiffres in-sample (Sharpe plus faible, rendement plus faible voire négatif), considérez l'avantage apparent de la stratégie comme fragile : il tient peut-être au régime de marché de la période d'origine plutôt qu'à un motif durable. Une stratégie dont le Sharpe out-of-sample reste proche du Sharpe in-sample, fold après fold, est un bien meilleur candidat.

Comme rien n'est calibré fold par fold, lisez cela comme un contrôle de cohérence dans le temps, pas comme une garantie contre le surapprentissage au sens statistique du terme.

La batterie de robustesse

Sous les métriques, une section Robustesse complète — sans le remplacer — le walk-forward. Elle tourne après coup, au mieux de ce qui est possible : si un test ne peut pas être calculé, sa section disparaît, le backtest reste valide.

TestQuestion posée
Monte CarloEt si les mêmes barres étaient arrivées dans un autre ordre ? Donne un cône d'equity, la probabilité de finir en perte et la probabilité de ruine
Stress des coûtsLa stratégie survit-elle à un slippage et un spread doublés puis triplés ? Si non, elle vit de son modèle de coûts, pas d'un avantage réel
Performance par année et périodes de criseComment se comporte-t-elle année par année, et pendant les crises entièrement couvertes par la période (2008, krach COVID, baissier 2022)
Sensibilité à la date de départLe résultat s'effondre-t-il si l'on commence quelques barres plus tard ? Si oui, il n'y a pas d'avantage, juste un bon point d'entrée
Deflated Sharpe RatioQuelle est la probabilité que ce Sharpe soit réel, sachant le nombre d'essais déjà tentés sur cette stratégie ?

Les hypothèses et limites de chacun de ces tests sont détaillées dans 06 — Hypothèses et limites.

Retrouver un run précédent

Le panneau Backtests précédents, à gauche, liste les runs de la stratégie, du plus récent au plus ancien, avec leur période, leur nombre de folds et leur rendement out-of-sample moyen. Un clic recharge le résultat complet, sans relancer le calcul.

Un run rejoué est rejoué dans sa configuration d'origine. Si les données de marché ont changé depuis (correction du fournisseur, split appliqué), un avertissement le signale au lieu d'absorber l'écart en silence.

Comparer des variantes

L'onglet Comparer des variantes fait varier un seul champ d'une règle d'entrée ou de sortie sur un intervalle de valeurs — jusqu'à 8 variantes — et affiche les résultats côte à côte. Le champ varié est soit le seuil de comparaison, soit un paramètre de l'indicateur (une période, par exemple).

Deux points à connaître :

  • Ce n'est pas un backtest walk-forward. Chaque variante tourne en un seul bloc sur toute la période, sans découpage in-sample / out-of-sample. Servez-vous-en pour un premier tri, puis lancez un vrai backtest walk-forward sur la variante retenue.
  • Lisez la forme, pas le sommet. L'interface met en avant la médiane des variantes, le pire et le meilleur cas, et indique si le résultat forme un plateau (voisinage stable, paramètre robuste) ou un pic isolé (presque toujours du bruit). Retenir la meilleure de 8 variantes surestime mécaniquement la performance future.

La comparaison est refusée si la règle visée n'a pas de champ à faire varier — une sortie purement en pourcentage, ou une condition composée ET/OU, par exemple.

Chaque variante exécutée compte comme un essai dans le compteur de la stratégie, au même titre qu'un run complet.

D'où viennent les données

Les cours proviennent de fournisseurs de données de marché externes, choisis selon la classe d'actifs. Quand un backtest a besoin de données absentes, elles sont récupérées automatiquement puis conservées : les runs suivants sur la même plage les réutilisent. Les symboles suivis sont par ailleurs synchronisés régulièrement.

Avant de simuler, le moteur contrôle la qualité des données de la période demandée (couverture par rapport au calendrier de marché, sauts de prix suspects) et bloque le run plutôt que de produire un chiffre faux. Les seuils, les cas limites et les couvertures d'historique par fournisseur — en particulier les fortes limites en intraday — sont détaillés dans 06 — Hypothèses et limites.