
Chaque paramètre libre d’un backtest est une question à laquelle les données doivent répondre. Une stratégie de trading y répond avec des trades clôturés, pas avec des barres d’historique de prix. Cette note expose la règle empirique que KreamEdge applique à la fenêtre in-sample : au moins 30 trades clôturés par paramètre effectif, et jamais moins de 400 trades au total. Elle explique ensuite comment nous comptons un paramètre, le cas où la règle a rejeté l’une de nos propres stratégies, et le surapprentissage qu’elle ne détecte pas.
Il s’agit de méthodologie de recherche. Les chiffres ci-dessous proviennent de backtests historiques menés sur le banc de recherche interne de KreamEdge, pas d’un historique de trading réel, et rien ici ne constitue un signal de trading. Nous ne traderions aucune des stratégies décrites ici telle quelle : c’est de la recherche uniquement. Les performances passées ne préjugent pas des résultats futurs. Ceci n’est pas un conseil financier. Consultez notre page communauté pour l’avertissement complet.
Points clés
- KreamEdge exige au moins max(400, 30 × paramètres effectifs) trades clôturés dans la fenêtre in-sample avant qu’un résultat de backtest compte comme une preuve.
- Le nombre 30 est une heuristique de praticien, pas un théorème. Il vaut trois fois la règle des 10 événements par variable issue des études de régression, parce que les rendements des trades ont des queues épaisses et portent moins d’information par observation.
- Un paramètre est tout choix qui restreint les trades qui ont lieu. Cela inclut les conditions des règles et les filtres fixes, en plus des nombres que l’optimiseur fait varier.
- Le dimensionnement des positions ne peut pas corriger un nombre de trades trop faible. Diviser par deux la taille des positions a fait passer une poche tendance de KreamEdge de 114 à 121 trades, parce que c’est la règle de sélection qui décide de la fréquence à laquelle une stratégie trade.
- La règle limite le nombre de paramètres qu’un ajustement peut supporter. Le nombre de configurations essayées exige un budget distinct, et la fenêtre out-of-sample exige son propre plancher de 80 trades.
Quelle est une bonne règle empirique de trades par paramètre ?
Une règle empirique praticable consiste à exiger au moins 30 trades clôturés dans la fenêtre in-sample pour chaque paramètre effectif, avec un plancher absolu de 400 trades quel que soit le nombre de paramètres. KreamEdge l’applique sous la forme max(400, 30 × paramètres effectifs). Aucun article de statistique ne fixe le nombre 30 pour le trading. C’est une heuristique de praticien, volontairement plus stricte que la règle de régression dont elle s’inspire.
Le point d’ancrage académique le plus proche vient de la statistique médicale. Peduzzi et ses collègues (Journal of Clinical Epidemiology, 1996) ont simulé des régressions logistiques et trouvé des estimations stables à partir de 10 événements par variable prédictive. En dessous, les coefficients étaient biaisés et les intervalles de confiance peu fiables. Des travaux ultérieurs, comme ceux de Vittinghoff et McCulloch (2007), ont soutenu que ce seuil de 10 peut parfois être assoupli.
Les backtests sont un cadre plus rude que les essais cliniques. Les rendements des trades ont des queues épaisses, ils se regroupent par régime de marché, et le résultat d’une stratégie de tendance repose souvent sur une petite minorité de gros gains. Chaque trade clôturé porte donc moins d’information qu’un événement clinique indépendant. Tripler le ratio pour le porter à 30 est la marge que KreamEdge prend pour cette différence.
Les traders systématiques s’accordent davantage sur la forme de la règle que sur son nombre. Dans le podcast Better System Trader, Dave Bergstrom a déclaré qu’il n’autorise pas les stratégies en dessous d’«un certain ratio trades/paramètres» (épisode 79), et Bert Mouler a conseillé de garder ce ratio élevé, en le comptant sur les trades out-of-sample (épisode 64). Aucun des deux n’a donné de chiffre. Michael Bryant a nommé l’unité qui compte :
On évalue la quantité de données nécessaire au nombre de trades, pas forcément au nombre de barres de prix.
Michael Bryant, Better System Trader, épisode 36 (traduit de l’anglais)
Les invités qui ont donné des chiffres ont donné des nombres absolus de trades, pas des ratios :
| Source | Nombre indiqué | À quoi il s’applique |
|---|---|---|
| John Ehlers, BST épisode 152 | Plus de 20 trades ; environ 40 en pratique | Chaque fenêtre in-sample d’un walk-forward intraday |
| Jeff Swanson, BST épisode 196 | Plus de 100 trades | Ce qui reste une fois que les filtres ont réduit la base |
| Stefan Friedrichowski, BST épisode 178 | 3 degrés de liberté | Une stratégie de retour à la moyenne, comptée explicitement |
| KreamEdge | max(400, 30 × paramètres effectifs) | La fenêtre in-sample complète d’une stratégie ajustée |
Pourquoi compter les trades plutôt que les barres ?
Une stratégie apprend des trades clôturés, pas des barres. Dix ans de données journalières représentent environ 2 500 barres. Une stratégie sélective qui trade 15 fois par an n’a produit qu’environ 150 résultats sur la même décennie. L’optimiseur ajuste ses paramètres sur ces 150 résultats : c’est donc le nombre de trades, et non le nombre de barres, qui décide du nombre de paramètres que les données peuvent supporter.

La même logique s’applique à tout composant qui active et désactive la stratégie. Adrian Reid a décrit un filtre de régime qui bascule quatre fois dans un backtest comptant 500 trades. L’échantillon propre au filtre, ce sont les quatre bascules, pas les 500 trades :
Vous avez optimisé quelque chose sur, en gros, quatre points de données, quatre marche-arrêt, ce qui est une très grosse erreur.
Adrian Reid, Better System Trader, épisode 206 (traduit de l’anglais)
Ajouter de l’historique aide moins que retirer des paramètres. Rob Carver a souligné dans l’épisode 180 que la précision de l’estimation d’un paramètre croît avec la racine carrée de la longueur de l’échantillon. Doubler l’historique de cinq à dix ans améliore cette précision d’un facteur d’environ 1,4, pas de 2. Retirer un paramètre, à l’inverse, abaisse immédiatement le plancher de 30 trades.
Qu’est-ce qui compte comme paramètre ? Les restrictions, pas les réglages de l’optimiseur
Un paramètre est tout choix qui restreint les trades qui ont lieu, pas seulement les nombres que l’optimiseur fait varier. Le décompte effectif de KreamEdge additionne trois éléments : les paramètres libres, les conditions contenues dans les règles d’entrée et de sortie retenues, et les filtres fixes comme «clôture au-dessus de la moyenne à 200 jours». Un filtre fixe ne devient pas gratuit parce que personne ne l’a réglé lors de l’exécution du jour.
Les praticiens comptent de la même façon. Michael Bryant (épisode 36) compte un croisement de moyennes mobiles comme deux restrictions, une par période de calcul, plus une si le champ de prix est lui aussi un choix. Andrea Unger (épisode 16) a dit ne jamais compter ses degrés de liberté, mais qu’un filtre générique de moyenne mobile à 200 jours reste «quand même une contrainte».
Le propos plus général de Carver est que les retouches manuelles comptent aussi. Remplacer une moyenne mobile simple par une moyenne exponentielle après avoir regardé le backtest est un ajustement, même si aucun paramètre n’a changé :
Vous vous dites : oh, j’ai la conscience tranquille, je n’ai changé aucun paramètre, je n’ai fait aucun ajustement. Si… vous avez complètement changé le modèle.
Rob Carver, Better System Trader, épisode 180 (traduit de l’anglais)
Toutes les restrictions ne coûtent pas un paramètre entier. KreamEdge pondère chaque type de paramètre selon une table fixée avant toute exécution, jamais ajustée candidat par candidat après avoir vu les résultats :
| Type de paramètre | Poids dans le décompte | Raison |
|---|---|---|
| Valeur continue ajustée dans cette recherche | 1,0 | Un degré de liberté entier |
| Entier avec 8 niveaux plausibles ou moins | 0,5 | Moins de valeurs distinctes à ajuster |
| Interrupteur binaire marche/arrêt | 0,25 | Un seul choix entre deux états |
| Valeur figée, jamais réglée sur ces données | 0 | Les données ne l’ont jamais choisie |
| Valeur figée, réglée auparavant sur des données qui se recoupent | La moitié de son poids d’origine | La figer la retire de la recherche du jour, pas de celle de la veille |
Chaque condition divise aussi l’échantillon, et c’est ainsi que le nombre de paramètres et le nombre de trades interagissent en pratique. Scott Andrews a décrit comment il avait réparti des trades sur gaps en davantage de catégories de taille, ce qui avait ramené la catégorie moyenne à environ 125 trades, puis ajouté un filtre à 200 jours, qui l’avait encore divisée par deux :
Donc, dès qu’on commence à ajouter ne serait-ce que quelques idées simples, on se retrouve avec trop peu de trades pour vraiment se fier aux données.
Scott Andrews, Better System Trader, épisode 18 (traduit de l’anglais)
Comment le plancher de trades évolue avec le nombre de paramètres
Avec max(400, 30 × paramètres), le plancher fixe de 400 trades s’applique à toute stratégie comptant jusqu’à 13 paramètres effectifs. Au-delà, chaque paramètre supplémentaire coûte 30 trades in-sample de plus. Une recherche à 15 paramètres exige 450 trades et une recherche à 20 paramètres en exige 600. KreamEdge plafonne donc chaque exécution de l’optimiseur à 15 paramètres libres et vise 10 ou moins.
| Paramètres effectifs | 30 × paramètres | Trades in-sample requis | Trades par an sur une fenêtre de 7 ans |
|---|---|---|---|
| 5 | 150 | 400 | environ 57 |
| 10 | 300 | 400 | environ 57 |
| 15 | 450 | 450 | environ 64 |
| 20 | 600 | 600 | environ 86 |
| 25 | 750 | 750 | environ 107 |
Le plancher fixe de 400 vient du banc de KreamEdge plutôt que de la théorie. Lorsque les stratégies du banc ont été regroupées par nombre de trades, la part affichant un CAGR forward positif était de 36 % en dessous de 200 trades et de 85 % entre 400 et 700 trades. Il s’agit d’une régularité observée sur des candidats déjà filtrés, pas d’une preuve que davantage de trades rendent une stratégie meilleure. Elle montre en revanche que les résultats reposant sur moins de 200 trades nous apprenaient très peu.
La règle a aussi pris en défaut le propre modèle de KreamEdge. Quand le modèle de scoring comportait 11 poids ajustés, le plancher était de 330 trades. Sur 29 stratégies du banc passées par le filtre de qualité, la moyenne était de 374 trades et la médiane de 283 : la stratégie médiane se situait donc environ 14 % sous son propre plancher. Cette mesure a orienté la recherche vers des jeux de paramètres plus petits par famille, désormais moins de 10 valeurs chacun.
Quand la règle dit non : 114 trades en 7,4 ans
La règle existe pour refuser des stratégies, et elle en a refusé une de KreamEdge. Notre poche tendance en place a produit 114 trades sur la totalité des 7,4 ans d’historique disponibles. Un décompte honnête de 8 à 10 paramètres effectifs place son plancher entre 240 et 300 trades, même avec un minimum assoupli à 100 trades. La poche échouait par construction, pas par malchance.
Le décompte de 8 à 10 vient de la table de pondération, pas des réglages de l’optimiseur. Il couvre cinq coefficients de score ajustés, un stop suiveur, une limite de durée de détention et deux seuils d’interrupteur à demi-poids, parce qu’ils avaient été réglés auparavant sur des données qui se recoupent. Les conditions contenues dans la règle d’entrée expliquent le haut de la fourchette.
Deux sondages ont vérifié si le nombre de trades pouvait être artificiellement relevé. Relever le plafond d’entrées par barre a reproduit exactement 114 trades : ce plafond n’avait donc jamais été contraignant. Diviser par deux la taille des positions, soit 20 emplacements, a donné 121 trades pour une exposition de 9 %. Le dimensionnement ne peut pas créer d’exécutions : c’est la règle de sélection qui décide de la fréquence à laquelle une stratégie trade, si bien qu’un nombre de trades aussi bas est structurel.
Le plancher lui-même avait déjà été assoupli une fois, de 400 à un minimum de 100 trades, parce que 7,4 ans d’historique ne permettaient pas de tenir le plancher d’origine. Ce changement était un amendement daté appliqué à tous les candidats, assorti en contrepartie de contrôles de chance obligatoires. Même le plancher assoupli a rejeté la poche.
Il restait deux options honnêtes. La première était une exception étiquetée et datée, suivie uniquement sur papier, avec les contrôles de chance renforcés. La seconde était de choisir une autre stratégie, plus dense, conçue pour franchir le plancher, et de lui faire passer toute la chaîne de validation depuis le début. Ce que le processus exclut, c’est un plancher modifié pour un seul candidat après avoir vu son résultat.
Les trades par paramètre ne suffisent pas : comptez aussi les essais
La règle des trades par paramètre limite le nombre de paramètres qu’un ajustement peut supporter, mais elle ne dit rien du nombre d’ajustements effectués. Bailey, Borwein, López de Prado et Zhu (Notices of the AMS, 2014) montrent qu’avec cinq ans de données journalières, essayer plus d’environ 45 configurations indépendantes rend probable un ratio de Sharpe in-sample de 1 par le seul effet du hasard, avec un Sharpe out-of-sample attendu nul.
Leur Minimum Backtest Length est un second budget, exprimé en années de données par configuration essayée. Une stratégie peut franchir les 30 trades par paramètre et rester malgré tout la gagnante chanceuse de 10 000 essais. Dave Walton a fait la même distinction dans l’épisode 51 : le nombre de règles est un facteur du biais de data mining, et le nombre de variantes explorées en est un autre.
KreamEdge fait payer la sélection elle-même. Toute la liste restreinte est réexécutée sur des séries de prix dont l’ordre jour par jour a été mélangé, ce qui conserve la distribution des rendements de chaque série mais détruit toute structure réelle. La meilleure configuration réelle doit battre le 95e centile des meilleures configurations mélangées : au moins 20 mélanges pour la recherche, au moins 100 avant une promotion. Le test ne compte que s’il réexécute tout le processus de sélection, et pas seulement les finalistes à leurs valeurs déjà ajustées.
Les fenêtres out-of-sample ont besoin de leur propre plancher de trades
Une fenêtre de holdout a besoin d’assez de trades pour être mesurable, et ce plancher est distinct de la règle in-sample. KreamEdge classe un holdout de moins de 80 trades comme «données insuffisantes» plutôt que comme un échec. En dessous de ce nombre, le résultat du holdout est du bruit, et le noter confondrait «a échoué au contrôle» avec «n’a pas pu être contrôlé».
Le seuil de 80 vient du regroupement de 61 stratégies du banc par nombre de trades en holdout. La part affichant un CAGR positif en holdout était de 36 % en dessous de 20 trades, de 35 % entre 20 et 40, et de 94 % entre 80 et 120. Seules deux stratégies se situaient entre 40 et 80. Avant le changement, le plancher était de 5 trades, et des holdouts comptant à peine 9 trades étaient notés comme des échecs.
Chaque plancher de trades du processus KreamEdge a une seule fonction, et ils ne sont jamais mélangés :
| Plancher | Valeur | Question à laquelle il répond |
|---|---|---|
| Fenêtre in-sample | max(400, 30 × paramètres effectifs) | Ces données peuvent-elles supporter autant de paramètres ? |
| Fenêtre de holdout | 80 trades | Le résultat out-of-sample est-il seulement mesurable ? |
| Pli de walk-forward servant à calibrer les cônes de trades | 30 trades clôturés par pli | Ce pli peut-il ancrer une estimation de fourchette attendue ? |
| Fenêtre de test forward | 120 barres ou 30 trades | La fenêtre est-elle assez longue pour être publiée ? |
Comment appliquer la règle à votre propre backtest
Appliquez la règle avant de regarder la performance, pas après. Notez comment chaque type de paramètre est compté, comptez les paramètres effectifs, calculez le plancher, et seulement ensuite lisez le backtest. Un plancher choisi après avoir vu le résultat est un paramètre ajusté à part entière. Les étapes ci-dessous suivent l’ordre adopté par KreamEdge.

- Fixez la table de pondération avant la première exécution : ce qui compte comme un paramètre entier, un demi, un quart ou zéro.
- Comptez les paramètres effectifs : les paramètres libres, plus les conditions des règles, plus les filtres fixes, plus les valeurs figées après réglage sur les mêmes données, à demi-poids.
- Calculez le plancher sous la forme max(400, 30 × paramètres effectifs) et ne comptez que les trades clôturés dans la fenêtre in-sample.
- Si la stratégie n’atteint pas le plancher, retirez des paramètres ou élargissez l’univers en appliquant les mêmes paramètres à chaque instrument. Ne redimensionnez pas les positions pour fabriquer des trades.
- Consignez chaque configuration essayée, y compris les modifications manuelles, et rapportez le nombre d’essais aux années de données disponibles.
- Fixez à l’avance le plancher du holdout, et déclarez un holdout trop court comme insuffisant, pas comme un échec.
- Comparez les variantes à exposition égale et à nombre de trades à peu près égal. Un interrupteur qui supprime la plupart des trades peut relever le ratio de Sharpe sans améliorer le signal.
Questions fréquentes (FAQ) sur les trades par paramètre
Combien de trades par paramètre faut-il à un backtest ?
KreamEdge exige au moins 30 trades clôturés dans la fenêtre in-sample par paramètre effectif, avec un minimum absolu de 400 trades. Le nombre 30 est une heuristique de praticien, trois fois la règle des 10 événements par variable issue des études de régression, parce que les rendements des trades ont des queues épaisses. Aucune étude de trading publiée ne fixe de ratio exact, et les praticiens du podcast Better System Trader qui en utilisent un n’ont pas donné de chiffre.
Un filtre fixe comme une moyenne mobile à 200 jours compte-t-il comme un paramètre ?
Oui. Un filtre fixe restreint les trades qui ont lieu, et réduit donc l’échantillon sur lequel les autres paramètres sont ajustés. KreamEdge le compte à plein poids s’il a été réglé sur des données qui se recoupent, à demi-poids s’il a été figé après un ajustement antérieur sur ces données, et à zéro uniquement si les données ne l’ont jamais choisi. L’auteur et trader Andrea Unger a qualifié un tel filtre de «quand même une contrainte».
30 trades suffisent-ils pour valider une stratégie de trading ?
Non. Dans la règle de KreamEdge, 30 est le nombre de trades par paramètre effectif, pas le total. Une stratégie complète exige au moins 400 trades in-sample, et son holdout en exige au moins 80 pour être mesurable. Trente trades clôturés, c’est le minimum que KreamEdge retient pour un seul pli de walk-forward servant à calibrer une estimation de fourchette attendue, ce qui est une tâche bien plus étroite.
Ajouter des symboles peut-il augmenter le nombre de trades ?
Oui : si les mêmes paramètres s’appliquent à chaque symbole, regrouper plusieurs instruments ajoute des trades sans ajouter de paramètres. La réserve tient à l’indépendance. Les trades sur des instruments corrélés se chevauchent dans le temps et dans le risque ; le trader Adam Grimes a noté dans l’épisode 188 de Better System Trader que 20 positions en actions se comportent davantage comme un seul risque que comme 20. Comptez les trades regroupés, mais ne les traitez pas comme pleinement indépendants.
Quelle différence entre trades par paramètre et longueur minimale de backtest ?
Les trades par paramètre limitent le nombre de paramètres qu’un ajustement peut supporter. La Minimum Backtest Length, de Bailey, Borwein, López de Prado et Zhu (2014), limite le nombre de configurations qui peuvent être essayées sur un nombre d’années de données donné. Avec cinq ans de données journalières, l’article situe cette limite à environ 45 configurations indépendantes. Un backtest solide doit respecter les deux budgets.
Sources
- Podcast Better System Trader, animé par Andrew Swanscott : épisodes 16 (Andrea Unger), 18 (Scott Andrews), 36 (Michael Bryant), 51 (Dave Walton), 64 (Bert Mouler), 79 (Dave Bergstrom), 152 (John Ehlers, juillet 2018), 178 (Stefan Friedrichowski), 180 (Rob Carver, février 2021), 188 (Adam Grimes), 196 (Jeff Swanson) et 206 (Adrian Reid, novembre 2021). Archive des épisodes.
- David H. Bailey, Jonathan M. Borwein, Marcos López de Prado et Qiji Jim Zhu, «Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance», Notices of the American Mathematical Society, 2014. Résumé sur SSRN.
- Peter Peduzzi, John Concato, Elizabeth Kemper, Theodore R. Holford et Alvan R. Feinstein, «A simulation study of the number of events per variable in logistic regression analysis», Journal of Clinical Epidemiology 49(12), 1996. Notice PubMed.
- Eric Vittinghoff et Charles E. McCulloch, «Relaxing the Rule of Ten Events per Variable in Logistic and Cox Regression», American Journal of Epidemiology, 2007.
Sur les sources : les passages en citation et entre guillemets sont transcrits des transcriptions des épisodes, nettoyés de la ponctuation et des mots de remplissage mais jamais du sens, une ellipse signalant toute omission. Tout le reste de ce qui est attribué à un invité est une paraphrase de son argument dans les mots de KreamEdge. Les invités sont nommés comme les titres des épisodes les nomment. Les chiffres de KreamEdge proviennent du banc et du journal de recherche internes ; ils décrivent des backtests historiques sur une configuration de recherche, et aucun chiffre ici n’est audité.
KreamEdge n’a aucun lien avec Better System Trader, ses invités ou les auteurs cités, et aucune citation ne vaut recommandation.
Conclusion
Trente trades par paramètre est une règle grossière, et c’est précisément son intérêt. Elle oblige à faire le décompte avant que la courbe de capital soit visible, elle fait payer leur place aux filtres fixes et aux modifications manuelles, et elle refuse les stratégies qui paraissent bonnes sur trop peu de résultats, y compris les nôtres. Elle ne remplace ni un budget d’essais ni un holdout mesurable. C’est la première porte, pas la seule.
Si vous souhaitez discuter de budgets de paramètres et de méthodologie de backtest avec d’autres concepteurs de systèmes, rejoignez les canaux gratuits indiqués sur la page communauté.
Nous ne traderions aucune des stratégies décrites ici telle quelle : c’est de la recherche uniquement. Les chiffres proviennent de backtests historiques, les performances passées ne préjugent pas des résultats futurs, et rien dans cette note ne constitue un conseil financier ni une recommandation d’achat ou de vente d’un quelconque instrument.
Autres recherches KreamEdge
- Pourquoi les backtests de trading par LLM sont (presque toujours) absurdes (en anglais)
- Pourquoi screener et stratégie doivent partager une même boucle d’optimisation (en anglais)
- Dimensionnement des positions : un résultat nul (en anglais)
- Filtre de régime de marché : un résultat nul (en anglais)
- Gestion du risque après la débâcle de l’IA : volatilité et biais (en anglais)
- Comment choisir une taille de barre : 1D ou 1H (en anglais)
0 commentaire