Random Search vs. intelligente Suche: Der Crossover liegt an den Eval-Kosten, nicht am Algorithmus
Teil der Serie "Backtests ohne Illusionen".
In der Hyperparameter-Optimierung gibt es eine Art Allgemeinwissen: Random Search ist eine Baseline, die man hinter sich lässt. Bergstra & Bengios klassisches Ergebnis (2012) zeigte, dass Random Grid schlägt; danach sollten Bayessche Optimierung, TPE, CMA-ES und Multi-Fidelity-Methoden wie Hyperband/ASHA Random ihrerseits schlagen. Als wir uns also daransetzten, Parameter-Suchmethoden für unsere eigene Trading-Engine zu benchmarken, erwarteten wir die übliche Rangfolge: Random ganz unten, ein intelligenter Sampler ganz oben.
Wir bekamen das Gegenteil — und dann bekamen wir auch noch die Lehrbuchantwort dazu. Gleiche Strategie, gleicher Parameterraum, gleiche Zielfunktion, gleiche Maschine. Das Einzige, was wir geändert haben, war wie teuer ein einzelner Backtest war, und die Rangfolge der Suchmethoden kehrte sich um. Wenn jede Auswertung billig war, vernichtete eine dumme, verwürfelte Sobol-Sequenz jeden "intelligenten" Sampler. Als wir jede Auswertung teuer machten, zogen die intelligenten Methoden vorbei und fanden die einzige Konfiguration, die out-of-sample überlebte.
Die Lehre daraus lautet nicht "Random wird unterschätzt" oder "Bayessche Optimierung wird überschätzt". Sie lautet: Der Crossover zwischen Random und intelligenter Suche wird von den Auswertungskosten bestimmt, nicht von der Cleverness des Algorithmus. Wähle deinen Optimierer danach, wie viel ein Backtest kostet, nicht nach seinem Ruf. Dieser Artikel misst genau, wo der Crossover liegt, warum er dort liegt, und eine Voraussetzung — Fidelity —, die darüber entscheidet, ob die Tricks des teuren Regimes (Early Stopping, Multi-Fidelity-Pruning) überhaupt sicher einsetzbar sind.
Alles Folgende stammt aus zwei Skripten in unserem Backtester: bench_search.py (v4, Commit ee092f1) für das billige Single-Timeframe-Regime und bench_search_multitf.py (Commit 102853c) für das teure Multi-Timeframe-Regime. Beide sind leak-free — Entscheidung am Schlusskurs von Bar i, Fill auf open[i+1] — und beide bewerten jede Methode anhand einer rollierenden Multi-Fold-Walk-Forward-Zielfunktion mit einem zurückgehaltenen Test-Fenster, das die Suche nie sieht.
Die Frage: Durchsatz oder Sample-Effizienz?

Jede Suchmethode verbraucht ihr Wall-Clock-Budget für zwei Dinge: die Entscheidung, wo als Nächstes gesampelt wird (die eigene Rechenlast des Samplers) und die Auswertung des Samples (das Ausführen des Backtests). Nennen wir Ersteres die Ask/Tell-Kosten und Letzteres die Eval-Kosten. Die effektive Suchkraft einer Methode über ein festes Wall-Clock-Budget ist ungefähr:
und ihre endgültige Qualität ist diese Anzahl multipliziert damit, wie gut platziert jeder Punkt ist. Zwei Stellschrauben, die gegeneinander wirken:
- Durchsatz — Punkte pro Sekunde. Dumme Sampler (Random, verwürfeltes Sobol/QMC) haben nahezu keine Ask/Tell-Kosten: Sie erzeugen einen Low-Discrepancy-Punkt und machen weiter. Sie maximieren die Anzahl.
- Sample-Effizienz — Qualität pro Punkt. Intelligente Sampler (TPE, CMA-ES, ASHA) investieren echte Rechenleistung, um die Zielfunktion zu modellieren und jeden Punkt besser zu platzieren. Sie maximieren die Platzierung, auf Kosten des Durchsatzes.
Welche Stellschraube gewinnt, hängt vollständig vom Nenner ab. Wenn die Eval-Kosten winzig sind, dominieren die Ask/Tell-Kosten den Nenner, sodass alles, was sie aufbläht — ein Surrogatmodell, eine Kernel-Dichteschätzung, ein Kovarianz-Update — die Anzahl der erkundeten Punkte direkt schrumpfen lässt. Wenn die Eval-Kosten groß sind, sind die Ask/Tell-Kosten ein Rundungsfehler, sodass Cleverness effektiv gratis ist und du so viel davon kaufen solltest, wie du kannst.
Das ist die gesamte These in einem Satz: Die Ask/Tell-Steuer ist fix, aber ihre Bedeutung wird durch die Eval-Kosten bestimmt, gegen die du sie teilst. Schauen wir uns jetzt an, wie das passiert.
Das billige Regime: dummes Sobol gewinnt beim Durchsatz

Unsere Single-Timeframe-Strategie ist eine leak-free HMA/HMA3-Trennungsregel über einen 7-Parameter-Raum, ausgewertet durch ein In-Process-numba-eval_batch, das prange über Konfigurationen ausführt, ohne Overhead durch Interprozesskommunikation. Auf dieser Engine ist ein Backtest fast kostenlos — der rohe Kernel wertet Konfigurationen mit etwa 3–4k cfg/s aus. Das ist das billige Regime, und hier unterscheidet sich Trading deutlich vom Deep-Learning-Setting, aus dem der meiste HPO-Folklore stammt: Unsere "Zielfunktion" ist kein 6-stündiger GPU-Trainingslauf, sondern ein 0.3-Millisekunden-Array-Durchlauf.
Wir gaben jeder Methode das gleiche Budget — 1,500 Auswertungen — und erfassten die Wall-Clock-Zeit, die jede brauchte, um diese Evals zu verbrauchen, sowie die Holdout-Test-Zielfunktion, die sie fand. Da das Eval-Budget fest ist, ist die Wall-Clock-Spalte ein direktes Abbild des Overheads jedes Samplers:
| Methode | Evals | Wall-Clock | Durchsatz | Holdout-TEST |
|---|---|---|---|---|
| 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 ist die Walk-Forward-Zielfunktion (annualisierter PnL pro aktiver Zeit × Trade-Count-Konfidenz) auf einem Holdout-Fenster, das die Suche nie berührt hat; höher ist besser.
Zwei Tatsachen fallen sofort auf. Erstens: Schau dir die Durchsatz-Spalte an. Verwürfeltes Sobol läuft mit ~2,830 cfg/s — nahe der Obergrenze der Engine. TPE läuft mit ~154 cfg/s und ASHA mit ~95. Das ist eine 18–30x Verlangsamung, um die identische Anzahl an Auswertungen durchzuführen. Die intelligenten Sampler werten dabei nichts Zusätzliches aus; sie verbringen diese Zeit innerhalb ihrer eigenen ask/tell-Maschinerie.
Zweitens — und das ist der Teil, der die Geschichte ehrlich hält — keine Methode fand ein positives Out-of-Sample-Ergebnis. Jeder TEST-Wert ist negativ. Im Single-Timeframe-Regime hat unsere Strategie schlicht keinen dauerhaften OOS-Edge, sodass "welche Methode gewinnt" keine Frage des Endgewinns ist, sondern eine Frage der Sucheffizienz. Und bei der Sucheffizienz mit festem Eval-Budget gewinnen die dummen Methoden klar: Sobol und Random erreichen die gleichen oder bessere Holdout-Werte als die intelligenten Sampler, während sie nur 1/20 der Wall-Clock-Zeit verbrauchen.
Drehen wir den Vergleich nun so, wie ihn ein Praktiker tatsächlich erlebt — fixiere die Wall-Clock-Zeit, nicht die Anzahl der Evals. Wenn du jeder Methode die 15.8 Sekunden gibst, die ASHA für ihre 1,500 Evals brauchte, hört Sobol nicht bei 1,500 auf. Es läuft weiter, bis zu etwa 45,000 Konfigurationen. Im billigen Regime lautet die Frage nie "welcher Sampler platziert 1,500 Punkte am besten" — sondern "hättest du lieber 1,500 clever platzierte Punkte oder 45,000 verwürfelte, wenn jeder Punkt nahezu kostenlos ist?" Bei einer nahezu kostenlosen Auswertung gewinnt die Breite. Die dreißigfache Abdeckung eines 7-dimensionalen Raums schlägt ein besseres Modell davon.
Die Ask/Tell-Steuer
Wohin gehen die 20x? Nicht in den Backtest — der ist bei allen Methoden identisch. Sie gehen in die Buchhaltung des Samplers pro Punkt, die in Python, in der Schleife läuft:
- TPE passt bei jedem
askein Paar von Kernel-Dichteschätzungen (gute vs. schlechte Trials) an, und die Kosten wachsen mit der Trial-Historie. Multivariates TPE passt sie gemeinsam über alle Dimensionen an — mehr Modellierung, mehr Python. - CMA-ES aktualisiert und sampelt bei jeder Generation aus einer Kovarianzmatrix. Hier billiger als TPE (es lief mit ~850 cfg/s), aber immer noch eine Größenordnung mehr Overhead als das Erzeugen eines Sobol-Punkts.
- ASHA zahlt die Promotion-/Rung-Buchhaltung des Pruners und zahlt in unserem Folds-als-Fidelity-Design die fixe Indikator-Vorberechnung, bevor es überhaupt etwas prunen kann — sodass die "eingesparten" Auswertungen weniger einsparen, als die Buchhaltung suggeriert.
Das ist keine Kritik an den Algorithmen. Das ist der Punkt: Die Ask/Tell-Kosten sind eine ungefähr fixe Anzahl von Millisekunden pro Punkt, und wenn die Auswertung, die sie umschließen, ebenfalls nur wenige Millisekunden dauert, sind diese fixen Kosten plötzlich 90% deines Budgets. Der intelligente Sampler verbringt neun Zehntel seiner Wall-Clock-Zeit damit, nachzudenken, wo er suchen soll, und ein Zehntel damit, tatsächlich zu suchen. Eine verwürfelte Sobol-Sequenz verbringt die gesamte Zeit mit Suchen. Wenn Suchen billig ist, gewinnt Suchen.
Wir haben hier absichtlich keinen vollständigen Gaussian-Process-Bayesian-Optimierer benchmarkt, und zwar aus demselben Grund: Ein GP-Surrogat ist in der Anzahl der Trials. Gegen eine Auswertung, die Millisekunden kostet, würde das Anpassen des Surrogats das gesamte Suchbudget verbrauchen, bevor es einen nennenswerten Teil des Raums ausgewertet hätte. Im billigen Regime ist GP-BO durch die Arithmetik disqualifiziert.
Das teure Regime: der Crossover kippt

Jetzt machen wir einen Backtest teuer. Die Multi-Timeframe-Strategie stapelt einen hohen, einen mittleren und einen niedrigen Timeframe (Triple-TF), wobei jeder einen Indikator-Durchlauf und eigene Schwellenwerte beisteuert, alle bewertet über den gleichen Multi-Fold-Walk-Forward. Eine einzelne Auswertung kostet jetzt in der Größenordnung von 0.1–0.5 Sekunden statt 0.3 Millisekunden — ein Sprung um drei Größenordnungen. Die Eval-Kosten sind vom Rundungsfehler-Term unseres Nenners zum dominanten Term gewandert. Laut der These sollte die Ask/Tell-Steuer aufhören, eine Rolle zu spielen, und Cleverness sollte sich auszahlen. Und genau das passiert.
Wir ließen jede Methode unter einem festen Wall-Clock-Budget von ~150 Sekunden auf dem Triple-TF-Problem laufen (einem 18-Parameter-Raum), ließen jede das Budget so verbrauchen, wie es ihr Sampler vorgibt, und werteten die einzelne beste Konfiguration aus, die sie auf einem Holdout-Testfenster zurückgab:
| Methode (Triple-TF, 150 s) | Evals | Holdout-TEST | Urteil |
|---|---|---|---|
| sobol (QMC) | 349 | −673 | verliert |
| cascade (sobol²×64) | 20,864 | −585 | verliert |
| asha (folds) | 292 eff. | −239 | verliert |
| tpe-mv+sobol | 455 | −43 | verliert |
| sobol→cmaes | 15,239 | +226 | einzige OOS-positive |
TEST ist die gleiche Walk-Forward-Zielfunktion wie zuvor. Nur eine Methode überschritt die Nulllinie.
Die dumme Sobol-Baseline, die das billige Regime dominierte, liegt jetzt abgeschlagen auf dem letzten Platz, bei −673. Blindes Low-Discrepancy-Sampling eines 18-dimensionalen Raums mit nur 349 Auswertungen zur Verfügung — weil jede einzelne teuer ist — lokalisiert niemals irgendetwas. Die intelligente Methode, sobol→cmaes — 30% des Budgets auf Sobol, um ein Becken zu seeden, dann CMA-ES-Verfeinerung ausgehend vom besten Seed — ist die einzige Methode, die überhaupt ein positives Out-of-Sample-Ergebnis erzielte. Auf dem finalen, unberührten Holdout erzielte der Champion +2.62% (19 Trades, ~6.6% Kapitaleinsatz) zusätzlich zu einem Testfenster, das +16.35% (46 Trades, ~15.7% Einsatz) erzielte. Der Champion jeder konkurrierenden Methode verlor Geld out-of-sample.
Das ist der Crossover, gemessen an derselben Strategiefamilie, derselben Zielfunktion, derselben Maschine: Ändere nichts außer den Kosten einer Auswertung, und die Rangfolge der Suchmethoden kehrt sich um. Im billigen Regime gewinnt Sobol und die intelligenten Sampler sind eine 20-fache Verschwendung; im teuren Regime ist der intelligente Sampler das Einzige, was funktioniert, und Sobol ist die Verschwendung.
Warum "intelligent" hier gewinnt — und es ist nicht nur Sample-Effizienz

Die ordentliche Version dieser Geschichte lautet: "teure Auswertungen belohnen Sample-Effizienz, also gewinnt die Methode, die weniger, dafür bessere Punkte platziert." Das ist halb wahr, und die Daten erzwingen die ehrliche, interessantere andere Hälfte.
Schau dir noch einmal die Eval-Zahlen an. sobol→cmaes gewann nicht, indem es weniger Punkte auswertete als blindes Sobol — es wertete 15,239 aus gegenüber Sobols 349, vierzig Mal mehr, in den gleichen 150 Sekunden. Wie? Weil unsere Multi-TF-Eval-Kosten strukturiert sind, nicht gleichmäßig. Es gibt zwei Achsen: eine teure Indikator-Achse (die Timeframe-Perioden und HMA-Längen, jeweils 30–500 ms zu berechnen, weil sie eine Indikator-Neuberechnung erzwingen) und eine billige Schwellenwert-Achse (die Entry/Exit-Trennungsniveaus, jeweils ~1–2 ms auf gecachten Signalen). Der Abstand zwischen ihnen beträgt 30–100x.
Blindes Sobol ignoriert diese Struktur. Jeder Punkt, den es zieht, verändert die teure Indikator-Achse zufällig und erzwingt eine frische Neuberechnung — es zahlt also bei allen 349 Auswertungen den vollen Preis. sobol→cmaes neigt dazu, sobald CMA-ES eine vielversprechende Region lokalisiert hat, die grobe Indikator-Struktur ungefähr fixiert zu halten und die kontinuierlichen Schwellenwerte zu variieren, die auf gecachten Signalen landen und fast nichts kosten. Die intelligente Methode wandelt dieselbe Wall-Clock-Zeit sowohl in besser platzierte Punkte als auch in weit mehr davon um, weil adaptiv sein hier bedeutet, kostenbewusst zu sein: auf der billigen Achse zu bleiben, nachdem die teure Achse fixiert ist. Unser expliziter cascade(sobol²×64)-Kunstgriff macht das am aggressivsten — 20,864 Evals, indem billige Schwellenwerte auf gecachten Signalen gebatcht werden — und während er den Triple-TF-Test verlor, gewann er in der Two-Timeframe-Variante das Testfenster klar mit +20.2% (bevor er an seinem eigenen Holdout scheiterte — dazu mehr weiter unten).
So die schärfere Formulierung des Crossovers: Im teuren Regime wird die Ask/Tell-Steuer vernachlässigbar, was dich frei macht, intelligent zu sein — und "intelligent" bedeutet, sich an die Kostenstruktur der Zielfunktion anzupassen, nicht nur an ihre Form. Blindes Sampling kann keines von beidem. Das ist genau die Zweiachsen-Struktur, die unsere Adaptive-Resolution-Drill-Down-Engine ausnutzen soll, und deshalb gehören Multi-Fidelity-Methoden zum teuren Regime — sofern eine Bedingung erfüllt ist.
Fidelity: die versteckte Voraussetzung für Pruning
Multi-Fidelity-Methoden — Hyperband, ASHA, jeder Early-Stopping-Pruner — beruhen auf einer Annahme: dass eine billige, partielle Auswertung Konfigurationen genauso rankt wie es die teure, vollständige Auswertung tun würde. Wenn eine Konfiguration, die auf einem Walk-Forward-Fold gut aussieht, dazu tendiert, auf allen gut auszusehen, kannst du die Verlierer früh eliminieren und das Budget der Überlebenden für die Gewinner ausgeben. Wenn die billige Fidelity zufällig rankt, ist Early Stopping nichts weiter als das Wegwerfen guter Konfigurationen per Münzwurf.
Bevor wir also irgendeinem Pruner vertrauen, messen wir die Annahme direkt. Unsere Fidelity ist die Anzahl der Walk-Forward-Folds (Auswertung auf r Folds billig, oder allen K Folds zu vollen Kosten), und das Fidelity-Gate berechnet die Spearman-Rangkorrelation ρ zwischen der billigen r-Fold-Zielfunktion und der vollständigen Zielfunktion über eine Stichprobe zufälliger Konfigurationen. ρ@1 ist die Korrelation, wenn du anhand eines einzelnen Folds beurteilst — der aggressivsten, billigsten Fidelity. Hier ist, was dieses Gate über die beiden Regime hinweg meldete:
| Fidelity (verwendete Folds) | Single-TF ρ | Multi-TF ρ |
|---|---|---|
| ρ@1 (1 Fold) | ~0.03 | 0.43 |
| ρ@2 | — | 0.67 |
| ρ@3 | — | 0.78 |
| ρ@4 | — | 0.82 |
| ρ@5 | — | 0.91 |
Im Single-Timeframe-Regime rankt ein Fold Konfigurationen mit einer Korrelation von ~0.03 zur Wahrheit — statistisch nicht von Zufall zu unterscheiden. Das ist kein Zufall; es ist dieselbe Tatsache wie "keine Methode fand einen OOS-Edge". Wenn eine Strategie kein dauerhaftes Signal hat, ist ihre Performance pro Fold größtenteils Glück, sodass jeder einzelne Fold nahezu eine Zufallsziehung ist und Low-Fidelity-Pruning gute Konfigurationen töten und glückliche befördern würde. Multi-Fidelity ist hier im billigen Regime unsicher — nicht weil die Methode schlecht ist, sondern weil das billige Signal Rauschen ist. (Unser Gate erkennt das und verweigert aggressives Pruning.)
Im Multi-Timeframe-Regime existiert ein echter Edge, und das Fidelity-Bild verändert sich grundlegend: ρ@1 steigt auf 0.43, und bei fünf Folds klettert ρ auf 0.91. Jetzt trägt ein Fold echte Ranking-Information, und fünf Folds tragen fast die gesamte. Early Stopping wird sicher — eine Konfiguration, die bei den ersten paar Folds verliert, ist tatsächlich mit hoher Wahrscheinlichkeit ein Verlierer. Das ist der zweite Grund, warum Multi-Fidelity-Methoden zum teuren Regime gehören: nicht nur, dass teure Auswertungen Pruning lohnenswert machen, sondern dass das teure Regime dort ist, wo die billige Fidelity endlich genauso rankt wie die teure.
Die Regel, die sich daraus ergibt, ist unverblümt und billig auszuführen: Miss ρ, bevor du prunst. Die Fidelity-Korrelation ist eine Zwei-Zeilen-Berechnung auf ein paar hundert zufälligen Konfigurationen, und sie macht den Unterschied zwischen einer Multi-Fidelity-Suche, die dich beschleunigt, und einer, die dich still sabotiert.
Die Suche zu gewinnen heißt nicht, sie zu überleben
Noch eine Anmerkung zur Ehrlichkeit, denn in dieser Serie geht es um Backtests, die lügen. Unser Triple-TF-Champion, sobol→cmaes, war die einzige Methode, die ein positives Holdout erzielte — +2.62%, zusätzlich zu +16.35% im Testfenster. Das sind die guten Nachrichten. Hier ist der Haken: Er überlebte die statistische Deflation nicht.
Der Champion ist der beste unter Zehntausenden Konfigurationen, die über alle Methoden hinweg ausprobiert wurden. Bei so viel Multiple Testing ist ein Holdout von +2.62% nicht automatisch echt. Wir ließen die Overfitting-Gates laufen, auf die sich die gesamte Serie stützt — die Deflated Sharpe Ratio mit effektivem N, korrigiert für die Korrelation zwischen den Trials, und PBO via kombinatorisch-symmetrischer Kreuzvalidierung. Der Champion bestand PBO (0.12, deutlich unter der Schwelle von 0.2 — sein Rang ist über CSCV-Splits hinweg stabil), aber sein Deflated Sharpe kollabierte auf null (das Gate verlangt ≥ 0.95). Urteil: überlebt nicht.
Lies das aufmerksam, denn es ist der Kern der ganzen Übung. Das Crossover-Ergebnis ist echt: Die intelligente Suche gewann die Suche im teuren Regime, klar und deutlich, und Sobol verlor sie. Aber die Suche zu gewinnen ist eine Aussage über den Optimierer, nicht über die Strategie. Die beste Konfiguration, die ein guter Optimierer aus einem edgelosen Raum finden kann, ist immer noch edgelos — die Deflation ist es, die dir sagt, welche du gerade in der Hand hältst. Die richtige Suchmethode zu wählen, verschafft dir effizient die bestmögliche verfügbare Antwort; sie erzeugt keinen Edge, der nie da war. Der Optimierer und die Overfitting-Gates sind unterschiedliche Instrumente, die unterschiedliche Dinge messen, und du brauchst beide.
Eine Entscheidungsregel, die du tatsächlich anwenden kannst
Du musst unseren Benchmark nicht erneut laufen lassen, um einen Optimierer auszuwählen. Du brauchst nur eine Zahl: Wie lange dauert ein Backtest? Miss die Zeit einer einzelnen Auswertung deiner Zielfunktion — einen vollständigen Walk-Forward-Durchlauf, alle Folds — und lies daraus das Regime ab.
- Billige Auswertung (≲ ~10 ms/Backtest): kaufe Durchsatz. Verwende verwürfeltes Sobol/QMC oder Random. Die Ask/Tell-Steuer bei TPE/CMA-ES/ASHA kostet dich das 10–30-fache deiner Punktzahl für eine Platzierung, die eine nahezu kostenlose Auswertung nicht belohnt. Kümmere dich nicht um Multi-Fidelity-Pruning — und falls du versucht bist, prüfe zuerst ρ@1; in einem Low-Edge-Regime mit billigen Auswertungen liegt es wahrscheinlich nahe null, was bedeutet, dass Pruning einem Münzwurf gleichkommt. Investiere die eingesparte Engineering-Zeit darin, die Suche zu erweitern, nicht sie einzuengen.
- Teure Auswertung (≳ ~100 ms–Sekunden/Backtest): kaufe Sample-Effizienz. Verwende CMA-ES, TPE oder einen Sobol-geseedeten CMA-ES-Hybriden; der Sampler-Overhead ist jetzt ein Rundungsfehler gegenüber der Auswertung. Wenn deine Eval-Kosten strukturiert sind (eine langsame Indikator-Achse und eine schnelle Schwellenwert-Achse, wie bei Multi-TF), bevorzuge Methoden, die diese Struktur ausnutzen — Kaskaden, Drill-Downs, alles Kostenbewusste — gegenüber Methoden, die jede Dimension als gleich teuer behandeln.
- Dazwischen oder unsicher: Ein Sobol-geseedeter Hybrid (
sobol→cmaes) ist die robuste Standardwahl. Er verhält sich früh wie Breadth-First-Sobol (billig, kein Modell anzupassen) und spät wie ein intelligenter Verfeinerer, sodass er in jedem Regime, in dem du dich befindest, sanft degradiert — genau deshalb war er unser Champion im teuren Regime. - Miss Fidelity, bevor du einen Pruner einsetzt. Berechne Spearman ρ zwischen der billigen Fidelity und der vollständigen Zielfunktion auf ein paar hundert zufälligen Konfigurationen. Wenn ρ@1 niedrig ist, prune nicht auf Basis eines einzelnen Folds; erhöhe die Mindest-Ressource, bis ρ ~0.5 überschreitet. Das kostet zwei Zeilen Code und verhindert, dass dein Beschleuniger deine besten Konfigurationen still verwirft.
- Egal, wer die Suche gewinnt, lass die Deflations-Gates laufen. Der Gewinner des Optimierers ist das am stärksten overfitting-gefährdete Objekt, das du diese Woche produzieren wirst. DSR und PBO entscheiden, nicht der Score des Optimierers, ob es handelbar ist.
Wo das anknüpft
Dieses Ergebnis sitzt im Zentrum einiger Fäden, die diese Serie schon länger verfolgt:
- Es setzt voraus, dass die zugrundeliegende Engine ehrlich ist. Der gesamte Vorteil des billigen Regimes existiert weil unsere In-Process-numba-Engine Tausende Konfigurationen pro Sekunde ohne IPC erreicht — die Speed-Leiter ist es, die dich überhaupt erst ins Durchsatz-gewinnt-Regime bringt. Eine langsame, von Framework-Overhead belastete Engine würde jedes Problem standardmäßig ins teure Regime versetzen, und du würdest den Crossover nie sehen.
- Der Kunstgriff des teuren Regimes ist die Zweiachsen-Kostenstruktur, um die unsere Adaptive-Resolution-Drill-Down-Engine herum konzipiert ist: erst auf der groben, teuren Achse lokalisieren, dann die feine, billige ausnutzen.
- Jede Methode hier ist nur deshalb vertrauenswürdig, weil die Engine leak-free ist. Eine Suche über Zehntausende Trials ist die effizientestmögliche Maschine, um einen Look-Ahead-Bug zu finden und auszunutzen — der "Gewinner" wäre schlicht die Konfiguration, die sich am stärksten auf das Leck stützt. Fixiere zuerst die Uhr, dann suche.
- Und das Schicksal des Champions — die Suche gewinnen, an der Deflation scheitern — ist das gesamte Argument dafür, Parametersuche und Overfitting-Kontrolle als getrennte Stufen mit getrennten Instrumenten zu behandeln.
Der akademische Hintergrund ist derselbe, zu dem das Feld immer wieder zurückkehrt: Bergstra & Bengio (2012) dazu, warum Random Grid schlägt; Li et al.s Hyperband (2018) und das ASHA-Nachfolgewerk (2020) zu Multi-Fidelity; und Bailey & López de Prado (2014) dazu, warum der Gewinner jeder großen Suche entwertet werden muss, bevor man ihm glaubt. Keiner von ihnen schreibt einen einzigen besten Optimierer vor, weil es keinen gibt — es gibt ein Regime, und Kosten, die es bestimmen.
Kernaussagen
- Der Crossover zwischen Random und intelligenter Suche wird durch die Auswertungskosten bestimmt, nicht durch den Algorithmus. Wir haben die Rangfolge jeder Methode umgekehrt, indem wir nichts als die Kosten eines Backtests geändert haben.
- Billige Auswertung → dummes Sobol gewinnt beim Durchsatz. Auf unserer Single-TF-Engine (~3–4k cfg/s) liefen TPE und ASHA bei gleicher Eval-Anzahl 18–30x langsamer — ~95–154 cfg/s gegenüber ~2,830 bei Sobol. Bei gleicher Wall-Clock-Zeit schlägt Breite ein besseres Modell des Raums, wenn jeder Punkt nahezu kostenlos ist.
- Teure Auswertung → intelligente Methoden gewinnen bei der Effizienz. Beim Triple-TF-Problem war
sobol→cmaesdie einzige Methode, die ein positives Out-of-Sample-Ergebnis fand (+16.35% Test, +2.62% Holdout); blindes Sobol landete abgeschlagen auf dem letzten Platz. - Im teuren Regime bedeutet "intelligent" kostenbewusst. Der Gewinner nutzte die 30–100x-Lücke zwischen der teuren Indikator-Achse und der billigen Schwellenwert-Achse aus — er machte mehr Evals und platzierte sie besser, indem er auf der billigen Achse blieb, sobald die teure fixiert war.
- Fidelity ist die Voraussetzung für Pruning. Die Rangkorrelation bei einem Fold stieg von ρ@1 ≈ 0.03 (Single-TF, im Wesentlichen zufällig) auf 0.43 (Multi-TF) und erreichte bei fünf Folds 0.91. Multi-Fidelity/ASHA zahlt sich erst aus, wenn die billige Fidelity genauso rankt wie die teure — also miss ρ, bevor du prunst.
- Die Suche zu gewinnen heißt nicht, sie zu überleben. Der Champion bestand PBO, scheiterte aber am Deflated-Sharpe-Gate. Wähle den Optimierer nach den Auswertungskosten; entscheide über Handelbarkeit mit den Deflations-Gates. Sie sind unterschiedliche Instrumente, und du brauchst beide.
Wähle deinen Optimierer danach, was ein Backtest kostet. Denk dann daran, dass die beste Antwort, die ein Optimierer in einem edgelosen Raum finden kann, immer noch edgelos ist — und lass die Gates, nicht die Suche, dir sagen, welche du gerade in der Hand hältst.
Authors
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.