ランダム探索 vs スマート探索:交差点はアルゴリズムではなく評価コストにある
「幻想なきバックテスト」シリーズの一部。
ハイパーパラメータ最適化には広く信じられている通説がある。ランダム探索は、いずれ卒業すべきベースラインにすぎない、というものだ。Bergstra と Bengio の古典的な結果(2012)は、ランダムがグリッドに勝ることを確立した。その後、ベイズ最適化、TPE、CMA-ES、そしてHyperband/ASHAのようなマルチフィデリティ手法が、順にランダムを上回るはずだった。だから私たちが自社のトレーディングエンジン向けにパラメータ探索手法をベンチマークしようと腰を据えたとき、想定していたのはいつものはしごだった——ランダムが底辺、スマートなサンプラーが頂点。
しかし得られたのはその逆の結果だった——そしてその後、教科書通りの答えも得られた。同じ戦略、同じパラメータ空間、同じ目的関数、同じマシン。唯一変えたのは1回のバックテストにかかるコストであり、探索手法の順位は逆転した。各評価が安価なとき、単純にシャッフルしたSobol列があらゆる「スマート」なサンプラーを叩きのめした。各評価を高コストにすると、スマートな手法が先行し、アウトオブサンプルで生き残った唯一の設定を見つけ出した。
この教訓は「ランダムは過小評価されている」でも「ベイズは過大評価されている」でもない。ランダム探索とスマート探索の交差点は、アルゴリズムの巧妙さではなく評価コストによって支配される、ということだ。オプティマイザは評判ではなく、1回のバックテストにいくらかかるかで選べ。この記事では、その交差点が正確にどこにあるのか、なぜそこにあるのか、そして高コストレジームの技(早期停止、マルチフィデリティ枝刈り)を安全に使えるかどうかを決める前提条件——忠実度——について測定する。
以下はすべて、私たちのバックテスターにある2つのスクリプトによるものだ。安価な単一タイムフレームレジーム用のbench_search.py(v4、コミットee092f1)と、高コストなマルチタイムフレームレジーム用のbench_search_multitf.py(コミット102853c)。どちらもリークフリーであり——バーiの終値で意思決定し、open[i+1]で約定する——どちらも探索が一度も見ることのないホールドアウトのテストウィンドウを持つ、マルチフォールドのローリングwalk-forward目的関数で各手法を採点している。
問い:スループットか、サンプル効率か?

すべての探索手法は経過時間の予算を2つのことに費やす。次にどこをサンプリングするか決めること(サンプラー自身の計算)と、そのサンプルを評価すること(バックテストの実行)だ。前者をask/tellコスト、後者を評価コストと呼ぼう。固定の経過時間予算に対するある手法の実質的な探索力は、おおよそ次のようになる。
そして最終的な質は、この点数に各点がどれだけうまく配置されているかを掛けたものだ。互いに引っ張り合う2つのつまみがある。
- スループット——1秒あたりの点数。単純なサンプラー(ランダム、シャッフルしたSobol/QMC)はask/tellコストがほぼゼロだ。低差異の点を1つ出しては次に進む。点数を最大化する。
- サンプル効率——1点あたりの質。スマートなサンプラー(TPE、CMA-ES、ASHA)は目的関数をモデル化するために実際の計算を費やし、各点をより良く配置する。スループットを犠牲にして配置を最大化する。
どちらのつまみが勝つかは、完全に分母次第だ。評価コストが微小なとき、ask/tellコストが分母を支配するので、それを膨らませるもの——代理モデル、カーネル密度推定、共分散更新——は何であれ、探索できる点数を直接減らしてしまう。評価コストが大きいとき、ask/tellコストは丸め誤差になるので、スマートさは事実上無料であり、買えるだけ買うべきだ。
これがこの記事の論旨をすべて一文にまとめたものだ。**ask/tell税は固定だが、その重要性はそれを割る評価コストによって決まる。**では、それが実際に起こる様子を見てみよう。
安価なレジーム:単純なSobolがスループットで勝つ

私たちの単一タイムフレーム戦略は、7パラメータ空間上のリークフリーなHMA/HMA3分離ルールであり、プロセス内のnumba eval_batchによって評価される。これは設定に対してprangeを実行し、プロセス間オーバーヘッドがない。このエンジンでは、1回のバックテストはほぼ無料である——生のカーネルは1秒あたりおよそ3,000~4,000設定を評価する。これが安価なレジームであり、トレーディングがほとんどのHPO民間伝承の出所であるディープラーニングの設定と大きく異なる点だ。私たちの「目的関数」は6時間のGPU学習ではなく、0.3ミリ秒の配列処理なのだ。
すべての手法に同じ予算——1,500回の評価——を与え、それらの評価を消化するのに必要な経過時間と、見つけたホールドアウトのテスト目的関数値を記録した。評価予算が固定されているため、経過時間の列は各サンプラーのオーバーヘッドを直接読み取ったものになる。
| 手法 | 評価回数 | 経過時間 | スループット | ホールドアウト TEST |
|---|---|---|---|---|
| sobol (QMC) | 1,500 | 0.53秒 | ~2,830 cfg/s | −259 |
| random | 1,500 | 0.85秒 | ~1,770 cfg/s | −27 |
| sobol→cmaes | 1,500 | 1.38秒 | ~1,085 cfg/s | −367 |
| cmaes | 1,500 | 1.76秒 | ~850 cfg/s | −85 |
| tpe | 1,500 | 9.76秒 | ~154 cfg/s | −161 |
| tpe-mv+sobol | 1,500 | 12.15秒 | ~123 cfg/s | −151 |
| asha (folds) | 1,500 | 15.79秒 | ~95 cfg/s | −165 |
TESTは探索が一度も触れなかったホールドアウトウィンドウでのwalk-forward目的関数値(アクティブ時間あたりの年率換算PnL×トレード数の信頼度)であり、高いほど良い。
2つの事実が際立つ。まず、スループットの列を見てほしい。シャッフルされたSobolは約2,830 cfg/sで走り——エンジンの上限に近い。TPEは約154 cfg/s、ASHAは約95で走る。これは同一数の評価を行うために18~30倍の減速だ。スマートなサンプラーは何か余分に評価しているわけではない。その時間を自身のask/tell機構の内部で費やしているのだ。
2つ目——そしてこれが物語を正直に保つ部分だ——**どの手法も正のアウトオブサンプル結果を見つけられなかった。**すべてのTEST値が負である。単一タイムフレームレジームでは、私たちの戦略には単純に持続的なOOSエッジが存在しない。だから「どの手法が勝つか」は最終的な利益についての問いではなく、探索効率についての問いなのだ。そして固定された評価予算での探索効率では、単純な手法が圧勝する。SobolとRandomは、スマートなサンプラーと同等かそれ以上のホールドアウト数値に到達しながら、経過時間はその20分の1しか費やしていない。
では、実務者が実際に経験する形で比較をひっくり返してみよう——評価回数ではなく、経過時間を固定する。ASHAがその1,500回の評価に必要とした15.8秒を全手法に与えれば、Sobolは1,500で止まらない。およそ45,000設定まで進み続ける。安価なレジームでは、問いは決して「どのサンプラーが1,500点を最もうまく配置するか」ではない——「各点がほぼ無料であるとき、1,500個の巧妙に配置された点と、45,000個のシャッフルされた点、どちらを選ぶか」なのだ。ほぼ無料な評価があれば、広さが勝つ。7次元空間の30倍のカバレッジは、それをより良くモデル化することに勝る。
ask/tell税
その20倍はどこへ消えたのか?バックテスト自体ではない——それは手法間で同一だ。それはサンプラーの1点あたりの帳簿付けに行く。Pythonでループの中で実行される。
- TPEは
askのたびに一対のカーネル密度推定(良い試行 vs 悪い試行)をフィットさせ、そのコストは試行履歴とともに増大する。多変量TPEはそれらを次元をまたいで結合的にフィットさせる——モデリングが増え、Pythonも増える。 - CMA-ESは世代ごとに共分散行列を更新し、そこからサンプリングする。ここではTPEより安価だ(約850 cfg/sで走った)が、それでもSobolの点を1つ出すことに比べると1桁分のオーバーヘッドがある。
- ASHAは枝刈り器の昇格/ラング帳簿付けのコストを払い、さらに私たちのフォールドをフィデリティとする設計では、何かを枝刈りできるようになる前に固定のインジケーター事前計算のコストを払う——だから「節約された」評価は、会計上示唆されるほどには節約されていない。
これはアルゴリズムへの非難ではまったくない。これがポイントなのだ。**ask/tellコストは1点あたりおおよそ固定のミリ秒数であり、それが包んでいる評価もまた数ミリ秒であるとき、その固定コストは突如として予算の90%になる。**スマートなサンプラーは経過時間の9割をどこを見るべきか考えることに費やし、実際に見ることには1割しか費やさない。シャッフルされたSobol列はすべてを見ることに費やす。見ることが安価なとき、見ることが勝つ。
私たちは意図的に完全なガウス過程ベイズ最適化器をここではベンチマークしなかった。理由は同じだ。GP代理モデルは試行数に対してである。ミリ秒単位のコストの評価に対して、代理モデルをフィットさせることは、空間の意味のある割合を評価する前に探索予算全体を消費してしまうだろう。安価なレジームでは、GP-BOは算術によって失格となる。
高コストなレジーム:交差点が逆転する

さて、1回のバックテストを高コストにしてみよう。マルチタイムフレーム戦略は、高・中・低の3つのタイムフレーム(トリプルTF)を重ね、それぞれがインジケーター計算と独自の閾値を寄与し、すべてが同じマルチフォールドwalk-forwardで採点される。1回の評価は今や0.3ミリ秒ではなく0.1~0.5秒程度のオーダーとなる——3桁のジャンプだ。評価コストは分母の丸め誤差項から支配項へと移動した。この論旨によれば、ask/tell税は重要でなくなり、スマートさが報われ始めるはずだ。実際そうなる。
私たちはトリプルTF問題(18パラメータ空間)で、すべての手法を固定約150秒の経過時間予算のもとで実行し、それぞれのサンプラーが指示するとおりにその予算を消費させ、返された単一の最良設定をホールドアウトのテストウィンドウで評価した。
| 手法(トリプルTF、150秒) | 評価回数 | ホールドアウト TEST | 判定 |
|---|---|---|---|
| sobol (QMC) | 349 | −673 | 敗北 |
| cascade (sobol²×64) | 20,864 | −585 | 敗北 |
| asha (folds) | 292 実効 | −239 | 敗北 |
| tpe-mv+sobol | 455 | −43 | 敗北 |
| sobol→cmaes | 15,239 | +226 | 唯一OOSで正 |
TESTは以前と同じwalk-forward目的関数値。ゼロを超えたのは1手法のみ。
安価なレジームを支配していた単純なSobolベースラインは、今や最下位、−673だ。18次元空間の盲目的な低差異サンプリングは、各評価が高コストであるためわずか349回の評価しか使えず、何も局所化できない。スマートな手法であるsobol→cmaes——予算の30%をSobolに費やしてベイスン(盆地)の種を蒔き、そこから最良の種を用いてCMA-ESで精緻化する——は、そもそも正のアウトオブサンプル結果を生み出した唯一の手法だった。最終的な未接触のホールドアウトで、チャンピオンは+2.62%(19トレード、資本エクスポージャー約6.6%)を返し、これは**+16.35%**(46トレード、エクスポージャー約15.7%)を返したテストウィンドウの上に積み上げられたものだ。他のすべての競合手法のチャンピオンは、アウトオブサンプルで損失を出した。
これが交差点だ。同じ戦略ファミリー、同じ目的関数、同じマシンで測定された。**1回の評価のコスト以外何も変えなければ、探索手法の順位は逆転する。**安価なレジームではSobolが勝ち、スマートなサンプラーは20倍の無駄だ。高コストなレジームではスマートなサンプラーが唯一機能するものであり、Sobolこそが無駄なのだ。
なぜここで「スマート」が勝つのか——そしてそれは単なるサンプル効率だけではない

この物語のきれいなバージョンは「高コストな評価はサンプル効率に報いるので、より少なく、より良い点を配置する手法が勝つ」というものだ。それは半分だけ正しく、データはもう半分の、より正直で興味深い話を私たちに強いる。
もう一度評価回数を見てほしい。sobol→cmaesは盲目的なSobolより少ない点数を評価することで勝ったのではない——同じ150秒で15,239回を評価した。Sobolの349回の40倍多いのだ。どうしてか?私たちのマルチTF評価コストは構造化されているのであって、均一ではないからだ。2つの軸がある。高コストなインジケーター軸(タイムフレームの周期とHMAの長さ、それぞれ計算に30~500ミリ秒かかる。インジケーターの再計算を強制するからだ)と、安価な閾値軸(エントリー/エグジットの分離水準、キャッシュされたシグナル上でそれぞれ約1~2ミリ秒)だ。両者の差は30~100倍。
盲目的なSobolはこの構造を無視する。それが引く各点は高コストなインジケーター軸を揺さぶり、新たな再計算を強制する——だから349回すべての評価で全額を支払う。sobol→cmaesは、CMA-ESが有望な領域を局所化した後は、粗いインジケーター構造をおおよそ固定したまま連続的な閾値を摂動させる傾向があり、これはキャッシュされたシグナル上に着地するのでほぼコストがかからない。スマートな手法は同じ経過時間をより良く配置された点とはるかに多くの点の両方に変換する。なぜならここで適応的であるとはコストを意識することを意味するからだ——高コストな軸が固定された後は、安価な軸にとどまること。私たちの明示的なcascade(sobol²×64)活用法はこれを最も積極的に行う——キャッシュされたシグナル上で安価な閾値をバッチ処理することで20,864回の評価を行う——そしてトリプルTFテストでは敗北したが、2タイムフレームの変種ではテストウィンドウを**+20.2%**で完勝した(その後、自身のホールドアウトで失敗した——詳細は以下)。
だから交差点をより鋭く述べるならこうなる。高コストなレジームでは、ask/tell税は無視できるものとなり、それがスマートであることを解放する——そして「スマート」とは、目的関数の形状だけでなくそのコスト構造に適応することを意味する。盲目的なサンプリングはどちらもできない。これはまさに私たちのアダプティブ解像度ドリルダウンエンジンが活用するよう設計された2軸構造であり、マルチフィデリティ手法が高コストなレジームに属する理由である——ただし1つの条件が成り立つ場合に限る。
忠実度:枝刈りの隠れた前提条件
マルチフィデリティ手法——Hyperband、ASHA、あらゆる早期停止枝刈り器——は1つの仮定に立脚している。安価で部分的な評価が、高コストで完全な評価と同じように設定をランク付けする、という仮定だ。ある設定が1つのwalk-forwardフォールドで良く見えるなら、すべてのフォールドでも良く見える傾向があるなら、負け組を早期に切り捨て、生き残った組の予算を勝ち組に費やすことができる。もし安価なフィデリティがランダムにランク付けするなら、早期停止はコイントスで良い設定を捨てているにすぎない。
だから、どんな枝刈り器を信頼する前にも、私たちはこの仮定を直接測定する。私たちのフィデリティは使用するwalk-forwardフォールドの数(安価にrフォールドで評価するか、フルコストで全Kフォールドで評価するか)であり、フィデリティゲートは、安価なrフォールド目的関数値とフル目的関数値との間のスピアマン順位相関ρを、ランダムな設定のサンプルにわたって計算する。ρ@1は、単一のフォールドで判定したときの相関——最も積極的で最も安価なフィデリティだ。以下は、このゲートが2つのレジームにわたって報告した結果だ。
| フィデリティ(使用フォールド数) | 単一TF ρ | マルチTF ρ |
|---|---|---|
| ρ@1(1フォールド) | ~0.03 | 0.43 |
| ρ@2 | — | 0.67 |
| ρ@3 | — | 0.78 |
| ρ@4 | — | 0.82 |
| ρ@5 | — | 0.91 |
単一タイムフレームレジームでは、1フォールドが設定を真の値に対して~0.03の相関でランク付けする——統計的にランダムと区別がつかない。これは偶然ではない。「どの手法もOOSエッジを見つけられなかった」のと同じ事実だ。戦略に持続的なシグナルがないとき、そのフォールドごとの性能は主に運であり、だからどの単一フォールドもほぼランダムな抽出であり、低フィデリティ枝刈りは良い設定を殺し、運の良かった設定を昇格させてしまうだろう。ここでの安価なレジームでは、マルチフィデリティは安全ではない——手法が悪いからではなく、安価なシグナルがノイズだからだ。(私たちのゲートはこれを検知し、積極的な枝刈りを拒否する。)
マルチタイムフレームレジームでは、実際のエッジが存在し、フィデリティの様相は一変する。ρ@1は0.43まで上昇し、5フォールドまでにρは0.91まで登る。今や1フォールドが真のランク付け情報を運び、5フォールドはほぼすべてを運ぶ。早期停止は安全になる——最初の2、3フォールドで負けている設定は、本当に負け組である可能性が高い。これがマルチフィデリティ手法が高コストなレジームに属する2つ目の理由だ。高コストな評価が枝刈りを価値あるものにするだけでなく、高コストなレジームこそが、安価なフィデリティがついに高コストなフィデリティのようにランク付けする場所でもあるのだ。
これが私たちに渡す規則は、率直で実行コストが安い。**枝刈りの前にρを測定せよ。**フィデリティ相関は数百のランダムな設定に対する2行の計算であり、それこそがマルチフィデリティ探索があなたを加速することと、マルチフィデリティ探索が静かにあなたを妨害することの分かれ目なのだ。
探索に勝つことと、それを生き延びることは別物だ
もう1つ、正直に言っておきたいことがある。このシリーズは嘘をつくバックテストについてのものだからだ。私たちのトリプルTFチャンピオンsobol→cmaesは、正のホールドアウトを記録した唯一の手法だった——+2.62%、テストウィンドウの**+16.35%**の上に積み上げられている。ここまでは良い知らせだ。ここに注意点がある。それは統計的デフレーションを生き延びなかった。
このチャンピオンは、すべての手法にわたって試された数万の設定の中の最良のものだ。これほど多重の検定のもとでは、+2.62%のホールドアウトは自動的に本物であるとは言えない。私たちは、このシリーズ全体が依拠する過学習ゲートを実行した——試行間の相関について有効Nを補正したDeflated Sharpe Ratio、そして組み合わせ的対称交差検証によるPBOだ。このチャンピオンはPBOに合格した(0.12、0.2の閾値を余裕を持って下回っている——CSCVの分割にわたってそのランクは安定している)が、そのデフレート済みシャープはゼロに崩壊した(ゲートは0.95以上を要求する)。判定:生き残れない。
これを注意深く読んでほしい。それがこの演習全体のポイントだからだ。交差点の結果は本物だ。スマートな探索は高コストなレジームで探索そのものに勝った、決定的に。そしてSobolはそれに負けた。しかし**探索に勝つことは、オプティマイザについての言明であり、戦略についての言明ではない。**優れたオプティマイザがエッジのない空間から見つけられる最良の設定は、それでもなおエッジがない——デフレーションこそが、あなたが手にしているのがどちらなのかを教えてくれるものだ。正しい探索手法を選ぶことは、効率的に現在得られる最良の答えを与えてくれる。それはこれまで存在しなかったエッジを作り出すわけではない。オプティマイザと過学習ゲートは、異なるものを測定する異なる計器であり、両方が必要なのだ。
実際に適用できる決定ルール
私たちのベンチマークを再実行しなくても、オプティマイザを選ぶことはできる。必要なのは1つの数字だけだ。**1回のバックテストにどれくらい時間がかかるか?**目的関数の1回の評価——1回の完全なwalk-forwardパス、全フォールド——の時間を計測し、レジームを読み取ればいい。
- **安価な評価(≲ 約10ミリ秒/バックテスト):スループットを買え。**シャッフルされたSobol/QMC、またはランダムを使え。TPE/CMA-ES/ASHAのask/tell税は、ほぼ無料な評価が報いない配置のために、点数を10~30倍犠牲にする。マルチフィデリティ枝刈りは気にするな——もし試したくなったら、まずρ@1を確認せよ。エッジの低い安価なレジームでは、それはおそらくゼロに近く、枝刈りがコイントスであることを意味する。節約されたエンジニアリング時間は、探索を狭めるのではなく、広げることに費やせ。
- **高コストな評価(≳ 約100ミリ秒~数秒/バックテスト):サンプル効率を買え。**CMA-ES、TPE、あるいはSobolで種を蒔いたCMA-ESハイブリッドを使え。サンプラーのオーバーヘッドは今や評価に対する丸め誤差だ。もし評価コストが構造化されているなら(マルチTFのように、遅いインジケーター軸と速い閾値軸がある場合)、その構造を利用する手法——カスケード、ドリルダウン、コストを意識したあらゆる手法——を、すべての次元を等しく高コストとして扱う手法よりも優先せよ。
- **その中間、または不確かな場合:**Sobolで種を蒔いたハイブリッド(
sobol→cmaes)が堅牢なデフォルトだ。初期には幅優先のSobolのように振る舞い(安価で、フィットさせるモデルもない)、後期にはスマートな精緻化器のように振る舞う。だからどちらのレジームにいることになろうと優雅に劣化する——これこそが、それが私たちの高コストレジームのチャンピオンだった理由だ。 - **枝刈り器の前に、忠実度を測定せよ。**数百のランダムな設定について、安価なフィデリティとフル目的関数値との間のスピアマンρを計算せよ。もしρ@1が低ければ、1フォールドだけで枝刈りしてはいけない。ρが約0.5をクリアするまで最小リソースを引き上げよ。これには2行のコードしかかからないが、あなたの加速器が最良の設定を静かに捨ててしまうのを防いでくれる。
- **どちらが探索に勝とうとも、デフレーションゲートを実行せよ。**オプティマイザの勝者は、その週にあなたが生み出す中で最も過学習しやすいオブジェクトだ。それが取引可能かどうかを決めるのは、オプティマイザのスコアではなく、DSRとPBOだ。
これがつながる先
この結果は、このシリーズがずっと引っ張ってきたいくつかの糸の中心に位置している。
- それは、下にあるエンジンが正直であることを前提としている。安価なレジームでの優位性全体は、私たちのプロセス内numbaエンジンがIPCなしで1秒あたり数千の設定を処理できるからこそ存在する——速度のはしごこそが、そもそもあなたをスループットが勝つレジームに置いてくれるものだ。遅く、フレームワークに課税された速度のエンジンは、あらゆる問題をデフォルトで高コストなレジームに押し込んでしまい、あなたはこの交差点を決して見ることがないだろう。
- 高コストなレジームでの活用法は、私たちのアダプティブ解像度ドリルダウンエンジンがその周りに設計されている2軸コスト構造そのものだ。粗く高コストな軸で局所化し、それから細かく安価な軸を活用する。
- ここでの各手法が信頼できるのは、エンジンがリークフリーである場合に限られる。数万の試行にわたる探索は、先読みバグを見つけて利用するための、考えうる最も効率的な機械だ——「勝者」は、そのリークに最も強く依存した設定になるだろう。まず時計を修正し、それから探索せよ。
- そしてこのチャンピオンの運命——探索に勝ち、デフレーションに失敗した——は、パラメータ探索と過学習制御を、異なる計器を用いる別々の段階として扱うべきだという、その全体の論拠なのだ。
その学術的な背景は、この分野が何度も立ち返ってきたものと同じだ。ランダムがなぜグリッドに勝るかについてのBergstraとBengio(2012)、マルチフィデリティについてのLiらのHyperband(2018)とそれに続くASHA(2020)、そしてなぜ大規模な探索の勝者は信じられる前にデフレートされねばならないかについてのBaileyとLópez de Prado(2014)。そのいずれも、単一の最良のオプティマイザを規定してはいない。なぜならそんなものは存在しないからだ——存在するのはレジームであり、それを選ぶコストなのだ。
まとめ
- **ランダム探索とスマート探索の交差点は、アルゴリズムではなく評価コストによって設定される。**1回のバックテストにかかるコスト以外何も変えずに、私たちはすべての手法の順位を逆転させた。
- **安価な評価 → 単純なSobolがスループットで勝つ。**私たちの単一TFエンジン(約3,000~4,000 cfg/s)では、TPEとASHAは同じ評価回数で18~30倍遅く走った——Sobolの約2,830 cfg/sに対して約95~154 cfg/sだ。同じ経過時間では、各点がほぼ無料であるとき、広さが空間のより良いモデルに勝る。
- **高コストな評価 → スマートな手法が効率で勝つ。**トリプルTF問題では、
sobol→cmaesが正のアウトオブサンプル結果を見つけた唯一の手法だった(テスト+16.35%、ホールドアウト+2.62%)。盲目的なSobolは最下位に終わった。 - **高コストなレジームでは、「スマート」とはコストを意識することを意味する。**勝者は高コストなインジケーター軸と安価な閾値軸の間の30~100倍のギャップを利用した——高コストな軸が固定された後は安価な軸にとどまることで、より多くの評価を行い、かつそれらをより良く配置した。
- **忠実度は枝刈りの前提条件だ。**単一フォールドの順位相関は、ρ@1 ≈ 0.03(単一TF、実質的にランダム)から0.43(マルチTF)まで上昇し、5フォールドまでに0.91に達した。マルチフィデリティ/ASHAは、安価なフィデリティが高コストなフィデリティのようにランク付けするようになって初めて報われる——だから枝刈りの前にρを測定せよ。
- **探索に勝つことは、それを生き延びることではない。**このチャンピオンはPBOに合格したが、Deflated Sharpeゲートには失敗した。オプティマイザは評価コストで選び、取引可能性はデフレーションゲートで決めよ。それらは異なる計器であり、両方が必要だ。
1回のバックテストにかかるコストでオプティマイザを選べ。そして、オプティマイザがエッジのない空間で見つけられる最良の答えは、それでもなおエッジがないことを覚えておこう——そして探索そのものではなく、ゲートに、あなたが手にしているのがどちらなのかを教えさせよう。
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.