598 / 691WFA

Walk-forward Analysis

Analyse avec progression dans le temps

Walk-forward Analysis sélectionne des règles à partir du passé disponible et les teste sur le segment suivant. La procédure se répète dans le temps selon un protocole fixé à l’avance. Elle évalue toute la méthode de sélection, pas un gagnant trouvé rétrospectivement ; même une séparation correcte des segments ne garantit pas un rendement futur.

Walk-forward Analysis est l’évaluation chronologique d’une procédure qui sélectionne ou ajuste des règles à partir de données antérieures, puis les applique à la période de test suivante. Les rôles de sélection et de test avancent dans le temps, sans que la décision actuelle puisse connaître le résultat suivant.

Walk-forward Analysis fait avancer la simulation historique dans le temps : elle sélectionne ou ajuste une règle à partir des données disponibles jusque-là, puis évalue son application sur le segment suivant. QuantConnect décrit une optimisation régulière sur une fenêtre de l’historique récent. Notre distinction éditoriale : nous n’évaluons pas seulement un ensemble immuable de paramètres, mais une procédure de renouvellement décrite à l’avance. Le moment de la prochaine sélection, son objectif et l’ensemble des candidats font aussi partie de la règle. Un meilleur ajustement aux données récentes ne confirme pas à lui seul un meilleur résultat futur. [QuantConnect — Walk Forward Optimization]

QuantConnect indique que la période utilisée pour rechercher les meilleurs paramètres devient une partie des données de développement. Y appliquer le gagnant choisi rétrospectivement ne constitue pas une vérification honnête de la décision qui aurait été prise à l’époque. Notre protocole clôt donc la sélection avant le début du segment de test suivant. Les données de ce segment ne doivent pas influencer le gagnant actuel. Une fois le segment terminé et ses informations réellement disponibles, elles peuvent entrer dans une sélection ultérieure selon la procédure prédéfinie ; cela ne modifie toutefois pas les décisions de test précédemment enregistrées. [QuantConnect — Optimization Parameters]

TimeSeriesSplit crée des indices d’entraînement et de test ordonnés dans le temps ; par défaut, il élargit progressivement l’ensemble d’entraînement passé et permet d’en limiter la taille. Notre distinction : une fenêtre glissante conserve une durée d’historique choisie, tandis qu’une fenêtre croissante garde un début fixe. La longueur de la fenêtre et la fréquence de renouvellement font partie de la conception, et ne sont pas des ajustements libres après examen des résultats. Pour comparer les métriques des segments, la documentation exige des observations régulièrement espacées ; avec des données irrégulières, il faut surveiller la durée calendaire réelle. [scikit-learn — TimeSeriesSplit]

Le paramètre gap de TimeSeriesSplit exclut des observations à la fin de l’ensemble d’entraînement, avant le test. Notre exigence méthodologique consiste à déduire l’écart nécessaire du moment où les entrées sont disponibles et les résultats cibles achevés. Si le résultat d’une observation d’entraînement utilise des prix de la période de test, le simple classement des lignes ne supprime pas la fuite d’information. La longueur de l’intervalle ne doit donc pas être choisie uniquement pour obtenir une belle courbe. Même un intervalle approprié ne prouve pas l’indépendance des périodes voisines et n’élimine pas toutes les formes de biais de sélection. [scikit-learn — TimeSeriesSplit]

La documentation scikit-learn avertit que la normalisation, le remplacement de valeurs manquantes ou la sélection de variables peuvent transférer des informations du test vers le modèle. Les paramètres de ces transformations doivent être appris uniquement sur la partie d’entraînement, puis appliqués à la partie de test. Notre contrôle répète cette séparation à chaque déplacement de fenêtre. Le calcul préalable d’une moyenne sur tout le jeu de données n’est pas corrigé en divisant seulement ensuite le tableau déjà préparé. Il faut aussi conserver la version des données et leur disponibilité temporelle réelle. [scikit-learn — Common Pitfalls: Data Leakage]

QuantConnect décrit un modèle qui détermine le prix et la quantité exécutés et peut intégrer le spread ainsi que Slippage. Notre exigence pour assembler les segments de test est de traiter uniformément le capital, les positions ouvertes et les coûts de changement de règle. Les gains d’entraînement ne sont pas ajoutés au résultat du test suivant, et les périodes de test qui se chevauchent ne doivent pas être comptées plusieurs fois sans explication. Si des positions sont conservées, la transition entre configurations doit être décrite. Notre modèle ci-dessous termine, au contraire, chaque période sans position ouverte. [QuantConnect — Trade Fills: Key Concepts]

Bailey et ses coauteurs décrivent le risque croissant de fausses découvertes lorsque les recherches sont répétées sur les mêmes données. Notre conséquence pour Walk-forward Analysis : si nous modifions la longueur des fenêtres, l’objectif ou les candidats selon la série de test obtenue, puis répétons toute l’exécution, cette série influence déjà le développement. La rebaptiser indépendante ne suffit pas. Le rapport doit indiquer tous les protocoles essayés et distinguer une éventuelle validation supplémentaire encore inutilisée. La seule progression temporelle n’est ni une estimation de la probabilité de surajustement ni une garantie statistique automatique. [Bailey et al. — The Probability of Backtest Overfitting]

La NFA souligne que les résultats hypothétiques ne reflètent ni les transactions réelles ni tous les effets de la liquidité, de Slippage et du comportement face à une perte réelle. Notre rapport Walk-forward Analysis conserve donc les limites des fenêtres, les candidats, les scores de sélection, les configurations retenues et les résultats des segments suivants, coûts inclus. La somme exige le contexte du risque, du nombre d’observations et d’une comparaison dans les mêmes conditions. Un petit exemple négatif ne prouve pas l’inefficacité générale de la méthode, tout comme une somme positive ne prouve pas un avantage de négociation futur. [NFA — Use of Promotional Material Containing Hypothetical Performance Results]

ExempleEXEMPLE · WFA

Sélectionner sur le passé, évaluer seulement la période suivante

Notre modèle fictif utilise six périodes de même durée numérotées de 1 à 6 et deux variantes prédéfinies A et B. Leurs résultats nets pour une même taille fixe sont A [4, -1, 2, -3, 5, -2] USD et B [1, 2, 1, 1, -2, 4] USD. Chaque résultat n’est disponible qu’après la fin de la période correspondante, comprend tous les coûts du modèle et se termine sans position ouverte. Il n’existe pas d’autres coûts de transition, de dette ni de flux de trésorerie. La procédure fixée à l’avance additionne toujours les trois dernières périodes achevées, choisit la somme la plus élevée et applique le gagnant uniquement à la période suivante ; en cas d’égalité, elle choisirait A. Les fenêtres de sélection sont [1, 2, 3], [2, 3, 4] et [3, 4, 5], et les tests suivants [4, 5, 6]. Les sommes de sélection de A sont [5, -2, 4] USD et celles de B [4, 4, 0] USD ; A, B et A sont donc choisis successivement. Seuls [-3, -2, -2] USD entrent dans le résultat de test combiné, soit -7 USD au total. La trésorerie initiale du test avant la période 4 est de 1000 USD et la trésorerie finale de 993 USD ; la taille ne varie pas selon la trésorerie. Les résultats d’entraînement ne sont pas ajoutés au compte et chaque segment de test n’est compté qu’une fois. Le schéma montre le déplacement des fenêtres de sélection et des tests suivants, pas un historique de marché réel ni une probabilité de réussite future.

Pour une vision complète, lisez aussi Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. Cette entrée est également citée par Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.

01Une ancienne période de test peut-elle entrer plus tard dans l’entraînement ?

Oui, si elle est terminée, que ses informations sont disponibles et que le protocole fixé à l’avance l’autorise. Elle ne doit toutefois pas modifier rétroactivement la sélection ou le résultat enregistré pour cette période.

02Walk-forward Analysis élimine-t-elle le surajustement ?

Pas automatiquement. Il reste possible de sélectionner à plusieurs reprises les longueurs de fenêtres, les candidats ou toute la procédure selon les mêmes résultats. Il faut déclarer l’historique des essais, surveiller les fuites d’information et maintenir la distinction entre développement et validation supplémentaire.

DOC · 001QuantConnect — Walk Forward OptimizationDocumentation ↗DOC · 002QuantConnect — Optimization ParametersDocumentation ↗DOC · 003scikit-learn — TimeSeriesSplitDocumentation ↗DOC · 004scikit-learn — Common Pitfalls: Data LeakageDocumentation ↗DOC · 005QuantConnect — Trade Fills: Key ConceptsDocumentation ↗DOC · 006Bailey et al. — The Probability of Backtest OverfittingSource primaire ↗DOC · 007NFA — Use of Promotional Material Containing Hypothetical Performance ResultsDocumentation ↗
Sources d’abord · Pas un conseil financier