← Retour aux articles
July 4, 2026
5 min de lecture

Recherche aléatoire vs recherche intelligente : le point de bascule, c'est le coût d'évaluation, pas l'algorithme

Recherche aléatoire vs recherche intelligente : le point de bascule, c'est le coût d'évaluation, pas l'algorithme
#trading algorithmique
#backtest
#optimisation des hyperparamètres
#optimisation bayésienne
#walk-forward
#overfitting
Part 7 of 10 · Collection
High-Performance Backtest Engines

Fait partie de la série "Backtests sans illusions".

Il existe une idée reçue en optimisation des hyperparamètres : la recherche aléatoire est une base de référence qu'on finit par dépasser. Le résultat classique de Bergstra & Bengio (2012) a établi que l'aléatoire bat la grille ; puis l'optimisation bayésienne, TPE, CMA-ES, et les méthodes multi-fidélité comme Hyperband/ASHA étaient censées battre l'aléatoire à leur tour. Alors quand nous nous sommes attelés à comparer des méthodes de recherche de paramètres pour notre propre moteur de trading, nous attendions l'échelle habituelle : l'aléatoire tout en bas, un échantillonneur intelligent tout en haut.

Nous avons obtenu l'inverse — puis nous avons aussi obtenu la réponse des manuels. Même stratégie, même espace de paramètres, même objectif, même machine. La seule chose que nous avons changée, c'est le coût d'un seul backtest, et le classement des méthodes de recherche s'est inversé. Quand chaque évaluation était bon marché, une séquence de Sobol scrambled naïve a écrasé tous les échantillonneurs "intelligents". Quand nous avons rendu chaque évaluation coûteuse, les méthodes intelligentes ont pris l'avantage et trouvé la seule configuration qui a survécu hors échantillon.

La leçon n'est pas que "l'aléatoire est sous-estimé" ou que "le bayésien est surestimé". C'est que le point de bascule entre recherche aléatoire et recherche intelligente est gouverné par le coût d'évaluation, pas par l'intelligence de l'algorithme. Choisissez votre optimiseur selon ce que coûte un backtest, pas selon sa réputation. Cet article mesure précisément où se situe ce point de bascule, pourquoi il se situe là, et une condition préalable — la fidélité — qui décide si les astuces du régime coûteux (arrêt anticipé, élagage multi-fidélité) sont sûres à utiliser, tout court.

Tout ce qui suit provient de deux scripts de notre backtester : bench_search.py (v4, commit ee092f1) pour le régime bon marché en timeframe unique, et bench_search_multitf.py (commit 102853c) pour le régime coûteux multi-timeframe. Les deux sont sans fuite — décision à la clôture de la barre i, exécution à open[i+1] — et les deux notent chaque méthode sur un objectif walk-forward glissant multi-fold, avec une fenêtre de test retenue que la recherche ne voit jamais.

La question : débit ou efficacité par échantillon ?

Le budget de recherche comme une seule fraction — le wall-clock divisé par le coût ask/tell plus le coût d'évaluation — le terme de coût d'évaluation au dénominateur décidant si c'est le débit brut ou le placement par point qui l'emporte

Chaque méthode de recherche dépense son budget wall-clock sur deux choses : décider où échantillonner ensuite (le calcul propre à l'échantillonneur) et évaluer l'échantillon (exécuter le backtest). Appelons la première le coût ask/tell et la seconde le coût d'évaluation. La puissance de recherche effective d'une méthode sur un budget wall-clock fixe est, grosso modo :

points explored    wall-clock budgetask/tell cost+eval cost\text{points explored} \;\approx\; \frac{\text{wall-clock budget}}{\text{ask/tell cost} + \text{eval cost}}

et sa qualité finale est ce compte multiplié par la qualité du placement de chaque point. Deux leviers, qui tirent en sens opposés :

  • Débit — points par seconde. Les échantillonneurs naïfs (aléatoire, Sobol/QMC scrambled) ont un coût ask/tell quasi nul : ils émettent un point à faible discrépance et passent au suivant. Ils maximisent le compte.
  • Efficacité par échantillon — qualité par point. Les échantillonneurs intelligents (TPE, CMA-ES, ASHA) dépensent un calcul réel à modéliser l'objectif pour mieux placer chaque point. Ils maximisent le placement, au prix du débit.

Quel levier l'emporte dépend entièrement du dénominateur. Quand le coût d'évaluation est minuscule, le coût ask/tell domine le dénominateur, donc tout ce qui le gonfle — un modèle de substitution, une estimation de densité par noyau, une mise à jour de covariance — réduit directement le nombre de points explorés. Quand le coût d'évaluation est important, le coût ask/tell devient une erreur d'arrondi, donc l'intelligence est de fait gratuite et vous devriez en acheter autant que possible.

Voilà toute la thèse en une phrase : la taxe ask/tell est fixe, mais son importance est fixée par le coût d'évaluation contre lequel on la divise. Voyons maintenant cela se produire.

Le régime bon marché : le Sobol naïf gagne sur le débit

Dans le régime bon marché, un flux de Sobol scrambled inonde l'espace des paramètres de milliers d'évaluations quasi gratuites, tandis que TPE et ASHA calent derrière leur propre machinerie ask/tell, dépensant l'essentiel de leur budget à réfléchir plutôt qu'à regarder

Notre stratégie single-timeframe est une règle de séparation HMA/HMA3 sans fuite sur un espace à 7 paramètres, évaluée par un eval_batch numba in-process qui exécute prange sur les configurations sans surcoût inter-processus. Sur ce moteur, un backtest est presque gratuit — le noyau brut évalue les configurations à environ 3–4k cfg/s. C'est le régime bon marché, et c'est là que le trading diffère nettement du cadre du deep learning dont provient l'essentiel du folklore HPO : notre "fonction objectif" n'est pas un entraînement GPU de 6 heures, c'est un passage de tableau de 0.3 milliseconde.

Nous avons donné à chaque méthode le même budget — 1,500 évaluations — et enregistré le wall-clock que chacune a eu besoin de dépenser pour ces évaluations, plus l'objectif de test retenu qu'elle a trouvé. Comme le budget d'évaluation est fixe, la colonne wall-clock est une lecture directe du surcoût de chaque échantillonneur :

Méthode Évals Wall-clock Débit TEST retenu
sobol (QMC) 1,500 0.53 s ~2,830 cfg/s −259
random 1,500 0.85 s ~1,770 cfg/s −27
sobol→cmaes 1,500 1.38 s ~1,085 cfg/s −367
cmaes 1,500 1.76 s ~850 cfg/s −85
tpe 1,500 9.76 s ~154 cfg/s −161
tpe-mv+sobol 1,500 12.15 s ~123 cfg/s −151
asha (folds) 1,500 15.79 s ~95 cfg/s −165

TEST est l'objectif walk-forward (PnL annualisé par temps actif × confiance liée au nombre de trades) sur une fenêtre retenue que la recherche n'a jamais touchée ; plus c'est élevé, mieux c'est.

Deux faits sautent aux yeux. D'abord, regardez la colonne débit. Sobol scrambled tourne à ~2,830 cfg/s — proche du plafond du moteur. TPE tourne à ~154 cfg/s et ASHA à ~95. C'est un ralentissement de 18–30x pour faire le même nombre d'évaluations. Les échantillonneurs intelligents n'évaluent rien de plus ; ils passent ce temps dans leur propre machinerie ask/tell.

Ensuite — et c'est ce qui garde l'histoire honnête — aucune méthode n'a trouvé de résultat positif hors échantillon. Chaque valeur de TEST est négative. Dans le régime single-timeframe, notre stratégie n'a tout simplement aucun edge OOS durable, donc "quelle méthode gagne" n'est pas une question de profit final ; c'est une question d'efficacité de recherche. Et sur l'efficacité de recherche à budget d'évaluation fixe, les méthodes naïves gagnent nettement : Sobol et l'aléatoire atteignent des chiffres retenus égaux ou meilleurs que les échantillonneurs intelligents tout en ne dépensant qu'1/20e du wall-clock.

Maintenant, inversons la comparaison de la façon dont un praticien la vit réellement — fixez le wall-clock, pas le nombre d'évaluations. Si vous donnez à chaque méthode les 15.8 secondes dont ASHA a eu besoin pour ses 1,500 évaluations, Sobol ne s'arrête pas à 1,500. Il continue, jusqu'à environ 45,000 configurations. Dans le régime bon marché, la question n'est jamais "quel échantillonneur place le mieux 1,500 points" — c'est "préférez-vous 1,500 points placés intelligemment ou 45,000 points scrambled, quand chaque point est presque gratuit ?" Avec une évaluation presque gratuite, l'étendue l'emporte. Trente fois plus de couverture d'un espace à 7 dimensions bat un meilleur modèle de cet espace.

La taxe ask/tell

Où passe ce 20x ? Pas dans le backtest — il est identique quelle que soit la méthode. Il passe dans la comptabilité par point de l'échantillonneur, exécutée en Python, dans la boucle :

  • TPE ajuste une paire d'estimations de densité par noyau (essais bons vs mauvais) à chaque ask, et le coût croît avec l'historique des essais. Le TPE multivarié les ajuste conjointement sur les dimensions — plus de modélisation, plus de Python.
  • CMA-ES met à jour et échantillonne une matrice de covariance à chaque génération. Moins cher que TPE ici (il tournait à ~850 cfg/s), mais reste un ordre de grandeur au-dessus du surcoût de la simple émission d'un point de Sobol.
  • ASHA paie la comptabilité de promotion/rung de l'élagueur et, dans notre conception où les folds servent de fidélité, paie le précalcul fixe des indicateurs avant de pouvoir élaguer quoi que ce soit — si bien que ses évaluations "économisées" économisent moins que ne le suggère la comptabilité.

Rien de tout cela n'est une critique des algorithmes. C'est justement le point : le coût ask/tell est un nombre à peu près fixe de millisecondes par point, et quand l'évaluation qu'il enveloppe ne coûte elle aussi que quelques millisecondes, ce coût fixe devient soudain 90% de votre budget. L'échantillonneur intelligent passe neuf dixièmes de son wall-clock à réfléchir à où regarder, et un dixième à réellement regarder. Une séquence de Sobol scrambled passe tout son temps à regarder. Quand regarder est bon marché, regarder gagne.

Nous n'avons délibérément pas benchmarké ici un optimiseur bayésien complet basé sur un processus gaussien, et pour la même raison : un modèle de substitution GP a une complexité en O(n3)O(n^3) en fonction du nombre d'essais. Face à une évaluation qui coûte des millisecondes, ajuster le modèle de substitution consommerait tout le budget de recherche avant même d'avoir évalué une fraction significative de l'espace. Dans le régime bon marché, le GP-BO est disqualifié par l'arithmétique.

Le régime coûteux : le point de bascule s'inverse

Le point de bascule : à mesure qu'une évaluation devient coûteuse, les deux courbes de méthode se croisent — le Sobol aveugle décroche tandis que l'échantillonneur intelligent conscient du coût le dépasse, devenant la seule méthode à franchir le territoire positif hors échantillon

Rendons maintenant un backtest coûteux. La stratégie multi-timeframe empile un timeframe haut, un moyen et un bas (triple-TF), chacun apportant un passage d'indicateurs et ses propres seuils, le tout noté sur le même walk-forward multi-fold. Une seule évaluation coûte maintenant de l'ordre de 0.1–0.5 seconde au lieu de 0.3 milliseconde — un bond de trois ordres de grandeur. Le coût d'évaluation est passé du terme d'erreur d'arrondi de notre dénominateur au terme dominant. Selon la thèse, la taxe ask/tell devrait cesser de compter et l'intelligence devrait commencer à payer. C'est le cas.

Nous avons fait tourner chaque méthode sous un budget wall-clock fixe d'environ 150 secondes sur le problème triple-TF (un espace à 18 paramètres), laissé chacune dépenser ce budget comme son échantillonneur le dicte, et évalué la meilleure config unique qu'elle a retournée sur une fenêtre de test retenue :

Méthode (triple-TF, 150 s) Évals TEST retenu Verdict
sobol (QMC) 349 −673 perd
cascade (sobol²×64) 20,864 −585 perd
asha (folds) 292 eff. −239 perd
tpe-mv+sobol 455 −43 perd
sobol→cmaes 15,239 +226 seule OOS-positive

TEST est le même objectif walk-forward que précédemment. Une seule méthode a franchi zéro.

La base de référence Sobol naïve, qui dominait le régime bon marché, est maintenant bonne dernière, à −673. L'échantillonnage aveugle à faible discrépance d'un espace à 18 dimensions, avec seulement 349 évaluations à dépenser parce que chacune est coûteuse, ne localise jamais rien. La méthode intelligente, sobol→cmaes — 30% du budget sur Sobol pour amorcer un bassin, puis un raffinement CMA-ES depuis la meilleure graine — est la seule méthode à avoir produit un résultat positif hors échantillon, tout court. Sur le holdout final, jamais touché, le champion a rapporté +2.62% (19 trades, ~6.6% d'exposition au capital) en plus d'une fenêtre de test qui a rapporté +16.35% (46 trades, ~15.7% d'exposition). Le champion de chaque concurrent a perdu de l'argent hors échantillon.

C'est ça, le point de bascule, mesuré sur la même famille de stratégie, le même objectif, la même machine : ne changez rien d'autre que le coût d'une évaluation, et le classement des méthodes de recherche s'inverse. Dans le régime bon marché, Sobol gagne et les échantillonneurs intelligents sont un gaspillage de 20x ; dans le régime coûteux, l'échantillonneur intelligent est la seule chose qui fonctionne et Sobol est le gaspillage.

Pourquoi "l'intelligence" gagne ici — et ce n'est pas seulement une question d'efficacité par échantillon

Exploitation consciente du coût d'un espace de paramètres à deux axes : l'axe indicateur coûteux fixé en place tandis que l'échantillonneur intelligent inonde l'axe seuil bon marché sur des signaux mis en cache, convertissant le même wall-clock en à la fois plus d'évaluations et des évaluations mieux placées

La version simple de cette histoire est que "les évaluations coûteuses récompensent l'efficacité par échantillon, donc la méthode qui place moins de points, mais de meilleurs, gagne." C'est à moitié vrai, et les données imposent l'autre moitié, honnête et plus intéressante.

Regardez à nouveau les nombres d'évaluations. sobol→cmaes n'a pas gagné en évaluant moins de points que le Sobol aveugle — il en a évalué 15,239 contre 349 pour Sobol, quarante fois plus, dans les mêmes 150 secondes. Comment ? Parce que le coût d'évaluation de notre multi-TF est structuré, pas uniforme. Il y a deux axes : un axe indicateur coûteux (les périodes de timeframe et les longueurs HMA, 30–500 ms chacune à calculer, car elles forcent un recalcul d'indicateur) et un axe seuil bon marché (les niveaux de séparation entrée/sortie, ~1–2 ms chacun sur des signaux mis en cache). L'écart entre eux est de 30–100x.

Le Sobol aveugle ignore cette structure. Chaque point qu'il tire fait vaciller l'axe indicateur coûteux, forçant un recalcul complet — il paie donc le prix fort sur les 349 évaluations. sobol→cmaes, une fois que CMA-ES a localisé une région prometteuse, a tendance à maintenir la structure grossière des indicateurs à peu près fixe et à perturber les seuils continus, qui tombent sur des signaux mis en cache et ne coûtent presque rien. La méthode intelligente convertit le même wall-clock en à la fois des points mieux placés et bien plus nombreux, parce qu'être adaptatif ici signifie être conscient du coût : rester sur l'axe bon marché une fois l'axe coûteux fixé. Notre exploit explicite cascade(sobol²×64) fait cela le plus agressivement — 20,864 évaluations en regroupant les seuils bon marché sur des signaux mis en cache — et bien qu'il ait perdu le test triple-TF, dans la variante à deux timeframes il a remporté la fenêtre de test tout net, à +20.2% (avant d'échouer sur son propre holdout — plus de détails ci-dessous).

D'où la formulation plus tranchante du point de bascule : dans le régime coûteux, la taxe ask/tell devient négligeable, ce qui libère la possibilité d'être intelligent — et "intelligent" signifie s'adapter à la structure de coût de l'objectif, pas seulement à sa forme. L'échantillonnage aveugle ne peut faire ni l'un ni l'autre. C'est précisément la structure à deux axes que notre moteur d'exploration à résolution adaptative est conçu pour exploiter, et c'est pourquoi les méthodes multi-fidélité appartiennent au régime coûteux — à condition qu'une certaine condition soit remplie.

La fidélité : la condition préalable cachée à l'élagage

Les méthodes multi-fidélité — Hyperband, ASHA, n'importe quel élagueur à arrêt anticipé — reposent sur une hypothèse : qu'une évaluation bon marché, partielle classe les configurations de la même façon que le ferait l'évaluation coûteuse, complète. Si une config qui a l'air bonne sur un fold walk-forward a tendance à avoir l'air bonne sur tous les folds, vous pouvez tuer tôt les perdantes et dépenser le budget des survivantes sur les gagnantes. Si la fidélité bon marché classe au hasard, l'arrêt anticipé revient juste à jeter de bonnes configs à pile ou face.

Donc, avant de faire confiance à un élagueur, nous mesurons l'hypothèse directement. Notre fidélité, c'est le nombre de folds walk-forward (évaluer sur r folds bon marché, ou sur tous les K folds à coût complet), et le gate de fidélité calcule la corrélation de rang de Spearman ρ entre l'objectif r-fold bon marché et l'objectif complet, sur un échantillon de configs aléatoires. ρ@1 est la corrélation quand on juge sur un seul fold — la fidélité la plus agressive, la moins chère. Voici ce que ce gate a rapporté sur les deux régimes :

Fidélité (folds utilisés) ρ Single-TF ρ Multi-TF
ρ@1 (1 fold) ~0.03 0.43
ρ@2 0.67
ρ@3 0.78
ρ@4 0.82
ρ@5 0.91

Dans le régime single-timeframe, un seul fold classe les configs avec une corrélation de ~0.03 à la vérité — statistiquement indiscernable du hasard. Ce n'est pas une coïncidence ; c'est le même fait que "aucune méthode n'a trouvé d'edge OOS." Quand une stratégie n'a aucun signal durable, sa performance par fold relève surtout de la chance, donc n'importe quel fold isolé est un tirage quasi aléatoire, et l'élagage à basse fidélité tuerait les bonnes configs et promouvrait les chanceuses. Le multi-fidélité est dangereux dans le régime bon marché ici — non pas parce que la méthode est mauvaise, mais parce que le signal bon marché est du bruit. (Notre gate le signale et refuse d'élaguer agressivement.)

Dans le régime multi-timeframe, un véritable edge existe, et le tableau de fidélité se transforme : ρ@1 monte à 0.43, et à cinq folds ρ grimpe à 0.91. Désormais, un seul fold porte une véritable information de classement, et cinq folds en portent presque toute l'information. L'arrêt anticipé devient sûr — une config qui perd sur les deux premiers folds est réellement susceptible d'être une perdante. C'est la seconde raison pour laquelle les méthodes multi-fidélité appartiennent au régime coûteux : non seulement les évaluations coûteuses rendent l'élagage rentable, mais c'est dans le régime coûteux que la fidélité bon marché finit par classer comme la fidélité complète.

La règle que cela vous donne est simple et brutale, et coûte peu à exécuter : mesurez ρ avant d'élaguer. La corrélation de fidélité est un calcul de deux lignes sur quelques centaines de configs aléatoires, et c'est ce qui fait la différence entre une recherche multi-fidélité qui vous accélère et une recherche multi-fidélité qui vous sabote en silence.

Gagner la recherche, ce n'est pas y survivre

Une dernière note d'honnêteté, parce que cette série parle des backtests qui mentent. Notre champion triple-TF, sobol→cmaes, était la seule méthode à afficher un holdout positif — +2.62%, en plus de +16.35% dans la fenêtre de test. Ça, c'est la bonne nouvelle. Voici le bémol : il n'a pas survécu à la déflation statistique.

Le champion est le meilleur parmi des dizaines de milliers de configurations essayées à travers toutes les méthodes. Sous une telle quantité de tests multiples, un holdout de +2.62% n'est pas automatiquement réel. Nous avons fait tourner les gates d'overfitting sur lesquels s'appuie toute la série — le ratio de Sharpe déflaté avec un N effectif corrigé pour la corrélation entre essais, et le PBO via une validation croisée combinatoirement symétrique (CSCV). Le champion a passé le PBO (0.12, confortablement sous le seuil de 0.2 — son rang est stable à travers les découpages CSCV) mais son Sharpe déflaté s'est effondré à zéro (le gate exige ≥ 0.95). Verdict : ne survit pas.

Lisez cela attentivement, car c'est le point de tout l'exercice. Le résultat du point de bascule est réel : la recherche intelligente a gagné la recherche dans le régime coûteux, de façon décisive, et Sobol l'a perdue. Mais gagner la recherche est un énoncé sur l'optimiseur, pas sur la stratégie. La meilleure config qu'un bon optimiseur peut trouver dans un espace sans edge reste sans edge — la déflation est ce qui vous dit laquelle vous tenez entre les mains. Choisir la bonne méthode de recherche vous procure efficacement la meilleure réponse disponible ; cela ne fabrique pas un edge qui n'a jamais existé. L'optimiseur et les gates d'overfitting sont des instruments différents qui mesurent des choses différentes, et vous avez besoin des deux.

Une règle de décision que vous pouvez réellement appliquer

Vous n'avez pas besoin de refaire tourner notre benchmark pour choisir un optimiseur. Vous avez besoin d'un seul chiffre : combien de temps prend un backtest ? Chronométrez une seule évaluation de votre objectif — un passage walk-forward complet, tous les folds — et déduisez-en le régime.

  • Évaluation bon marché (≲ ~10 ms/backtest) : achetez du débit. Utilisez Sobol/QMC scrambled ou l'aléatoire. La taxe ask/tell sur TPE/CMA-ES/ASHA vous coûtera 10–30x sur votre nombre de points, pour un placement qu'une évaluation quasi gratuite ne récompense pas. Ne vous embêtez pas avec l'élagage multi-fidélité — et si vous êtes tenté, vérifiez d'abord ρ@1 ; dans un régime bon marché à faible edge, il est probablement proche de zéro, ce qui signifie que l'élagage revient à jouer à pile ou face. Dépensez le temps d'ingénierie économisé à élargir la recherche, pas à la restreindre.
  • Évaluation coûteuse (≳ ~100 ms–secondes/backtest) : achetez de l'efficacité par échantillon. Utilisez CMA-ES, TPE, ou un hybride CMA-ES amorcé par Sobol ; le surcoût de l'échantillonneur est maintenant une erreur d'arrondi face à l'évaluation. Si votre coût d'évaluation est structuré (un axe indicateur lent et un axe seuil rapide, comme en multi-TF), préférez des méthodes qui exploitent cette structure — cascades, drill-downs, tout ce qui est conscient du coût — plutôt que des méthodes qui traitent chaque dimension comme également coûteuse.
  • Entre les deux, ou en cas de doute : un hybride amorcé par Sobol (sobol→cmaes) est le choix par défaut robuste. Il se comporte comme un Sobol en largeur d'abord au début (bon marché, aucun modèle à ajuster) et comme un raffineur intelligent à la fin, donc il se dégrade en douceur quel que soit le régime dans lequel vous vous trouvez — c'est exactement pourquoi il a été notre champion du régime coûteux.
  • Avant tout élagueur, mesurez la fidélité. Calculez le ρ de Spearman entre la fidélité bon marché et l'objectif complet sur quelques centaines de configs aléatoires. Si ρ@1 est faible, n'élaguez pas sur un seul fold ; augmentez la ressource minimale jusqu'à ce que ρ dépasse ~0.5. Cela coûte deux lignes de code et empêche votre accélérateur de jeter silencieusement vos meilleures configs.
  • Quelle que soit la méthode qui gagne la recherche, faites tourner les gates de déflation. Le gagnant de l'optimiseur est l'objet le plus sujet à l'overfitting que vous produirez de toute la semaine. Ce sont le DSR et le PBO, pas le score de l'optimiseur, qui décident s'il est tradable.

Où cela se connecte

Ce résultat se situe au centre de plusieurs fils que cette série tire depuis le début :

  • Il présuppose que le moteur sous-jacent est honnête. Tout l'avantage du régime bon marché existe parce que notre moteur numba in-process atteint des milliers de configs par seconde sans IPC — c'est l'échelle de vitesse qui vous place d'entrée de jeu dans le régime où le débit gagne. Un moteur lent, taxé par son framework, placerait tout problème dans le régime coûteux par défaut, et vous ne verriez jamais le point de bascule.
  • L'exploit du régime coûteux, c'est la structure de coût à deux axes autour de laquelle est conçu notre moteur d'exploration à résolution adaptative : localiser sur l'axe grossier et coûteux, puis exploiter l'axe fin et bon marché.
  • Chaque méthode ici n'est fiable que parce que le moteur est sans fuite. Une recherche sur des dizaines de milliers d'essais est la machine la plus efficace possible pour trouver et exploiter un bug de look-ahead — le "gagnant" serait simplement la config qui s'est appuyée le plus fort sur la fuite. Réparez d'abord l'horloge, puis cherchez.
  • Et le sort du champion — gagner la recherche, échouer à la déflation — constitue tout l'argument pour traiter la recherche de paramètres et le contrôle de l'overfitting comme des étapes séparées, avec des instruments séparés.

La toile de fond académique est celle vers laquelle le domaine ne cesse de revenir : Bergstra & Bengio (2012) sur les raisons pour lesquelles l'aléatoire bat la grille ; le Hyperband de Li et al. (2018) et son prolongement ASHA (2020) sur le multi-fidélité ; et Bailey & López de Prado (2014) sur les raisons pour lesquelles le gagnant de toute recherche à grande échelle doit être déflaté avant d'y être cru. Aucun d'eux ne prescrit un unique meilleur optimiseur, parce qu'il n'y en a pas — il y a un régime, et un coût qui le sélectionne.

Points à retenir

  1. Le point de bascule entre recherche aléatoire et recherche intelligente est fixé par le coût d'évaluation, pas par l'algorithme. Nous avons inversé le classement de chaque méthode en ne changeant rien d'autre que le coût d'un backtest.
  2. Évaluation bon marché → le Sobol naïf gagne sur le débit. Sur notre moteur single-TF (~3–4k cfg/s), TPE et ASHA tournaient 18–30x plus lentement pour le même nombre d'évaluations — ~95–154 cfg/s contre ~2,830 pour Sobol. À wall-clock égal, l'étendue bat un meilleur modèle de l'espace quand chaque point est presque gratuit.
  3. Évaluation coûteuse → les méthodes intelligentes gagnent sur l'efficacité. Sur le problème triple-TF, sobol→cmaes était la seule méthode à trouver un résultat positif hors échantillon (+16.35% test, +2.62% holdout) ; le Sobol aveugle a fini bon dernier.
  4. Dans le régime coûteux, "intelligent" veut dire conscient du coût. Le gagnant a exploité l'écart de 30–100x entre l'axe indicateur coûteux et l'axe seuil bon marché — il a fait plus d'évaluations et les a mieux placées, en restant sur l'axe bon marché une fois l'axe coûteux fixé.
  5. La fidélité est la condition préalable à l'élagage. La corrélation de rang à un seul fold est passée de ρ@1 ≈ 0.03 (single-TF, essentiellement aléatoire) à 0.43 (multi-TF), atteignant 0.91 à cinq folds. Le multi-fidélité/ASHA ne devient rentable qu'une fois que la fidélité bon marché classe comme la fidélité complète — donc mesurez ρ avant d'élaguer.
  6. Gagner la recherche, ce n'est pas y survivre. Le champion a passé le PBO mais a échoué au gate du Sharpe déflaté. Choisissez l'optimiseur selon le coût d'évaluation ; décidez de la tradabilité avec les gates de déflation. Ce sont des instruments différents, et vous avez besoin des deux.

Choisissez votre optimiseur selon ce que coûte un backtest. Puis rappelez-vous que la meilleure réponse qu'un optimiseur puisse trouver dans un espace sans edge reste sans edge — et laissez les gates, pas la recherche, vous dire laquelle vous tenez entre les mains.

blog.disclaimer

Authors

Eugen Soloviov
Eugen Soloviov

Trading-systems engineer

Trading-systems engineer building bots since 2017: cross-exchange arbitrage (connected up to 30 venues), cointegration-based pairs arbitrage across spot and futures, scalping, news and sentiment-driven strategies, trend algorithms, and portfolio management and balancing algorithms. Also builds sub-millisecond order execution, big-data warehouses, backtesting engines, AI agents, and trading interfaces (incl. open-source profitmaker.cc). Stack: JS/TS, Python, Rust/Zig/Go, DevOps, backend, frontend, architecture.

Newsletter

Gardez une longueur d'avance sur le marché

Abonnez-vous à notre newsletter pour des insights exclusifs sur le trading IA, des analyses de marché et des mises à jour de la plateforme.

Nous respectons votre vie privée. Désabonnement possible à tout moment.