誠実なネガティブ結果:数万回のバックテスト、主要5銘柄、頑健なエッジはゼロ
「幻想なきバックテスト」シリーズの一篇。
私たちが望まなかった結果
このシリーズは、嘘を捕まえるための計器を組み立てることに何本もの記事を費やしてきた:1バーのリークからシャープレシオ15を製造する先読みバイアス、サーチの勝者に値段をつけるデフレーテッド・シャープレシオ、サーチそのものに値段をつけるバックテスト過学習の確率。それらの一つひとつは、ある意味でリハーサルだった。本記事が本番だ:装置一式を、私たちが実際にトレードしたかった現実の戦略ファミリーに向け、装置が下すために作られた判定を——たとえその判定がノーであっても——下させる。
まず誠実な結末から示そう。私たちは主要5銘柄にわたり、デュアルおよびトリプルタイムフレームの構成で数万回のバックテストを実行し、頑健なエッジを探した。見つからなかった。「小さなエッジを見つけたのでポジションを縮めた」ではない。この機構との接触を生き延びるものが何も見つからなかったのだ——銘柄を横断して同時に利益を出し、かつ多重検定補正の下で擁護できる設定は1つもなかった。それは実験の失敗ではない。それこそが実験の成功なのだ。
魅惑的な部分——計器の乏しいチームなら資本を配分してしまっていたであろう部分——は、素朴に読めば本当に良さそうに見えたことだ:
| ステージ | 私たちが見たもの | その正体 |
|---|---|---|
| 単一銘柄サーチ(ETHUSDT、デュアルTF) | アウトオブサンプルのテストで**+16.35%、手つかずのホールドアウトで+2.62%** | 魅惑の勝者 |
| デフレーテッド・シャープレシオ、約37,000試行 | DSR = 0.00 | ノイズの最良 |
| 銘柄横断、主要5銘柄、デュアルTF | DSR 0.24 / PBO 0.264 | 不合格 |
| 銘柄横断、主要5銘柄、トリプルTF | DSR 0.14 / PBO 0.327 | 不合格 |
あの最上段を、私たちが最初に読んだときのように読んでほしい:ETHUSDT上でデュアルタイムフレームのグリッドを使ってチューニングされた移動平均クロスオーバー戦略が、サーチ中に一度も見なかったデータで+16.35%を印字し、完全に壁で隔てておいた第2の窓でも+2.62%のプラスを保っている。ここで立ち止まれば——そして公開されているバックテストの大半はここで立ち止まる——あなたはこれを出荷する。この記事の残りは、そうするなと私たちに告げた機構の話であり、なぜそれが正しかったかの話だ。
第1幕——魅惑の勝者

この戦略ファミリーは意図的に平凡だ:Hull移動平均のクロスオーバーを確定バー上で評価し、誠実な執行モデルを使う(バーiの終値で判断し、i+1の始値で約定する——このシリーズが決して妥協しない1バーの規律だ)。「デュアルタイムフレーム」とは、シグナルがより遅いタイムフレームのトレンドでゲートされることを意味し、「トリプル」はさらに遅い第3のタイムフレームを加える。タイムフレームを1つ足すごとに自由パラメータが増える。そして自由パラメータこそ、サーチが見かけのパフォーマンスへと変換するものにほかならない。
単一銘柄の研究はETHUSDTで実行した。プロトコルはすでに良い部類のものだった:ローリングのウォークフォワード分割(ウォームアップ窓、複数のインサンプルのフォールド、アウトオブサンプルのテスト窓)に加えて、サーチが最後の最後まで触れることを禁じられた最終ホールドアウト窓。Sobol/QMCサーチがパラメータ空間を探索し、生き残りはウォークフォワードのスコアが最良だった設定で、それが一度——きっかり一度だけ——ホールドアウトの上に載せられた。
生き残りはエッジのように見えた:
- アウトオブサンプルのテスト窓で**+16.35%**——設定のスコア付けにのみ使われ、フィッティングには決して使われなかったデータだ。
- 手つかずのホールドアウトで**+2.62%**——第2の壁も、クリアした。
ここが、研究プロセスが誠実なのか演劇的なのかを分ける瞬間だ。アウトオブサンプルの利益は、数字が捏造されておらず先読みリークも存在しないという狭い意味では本物だ——私たちは確認した。だが「本物の数字、リークなし」は、「本物のエッジ」よりもはるかに低いバーだ。両者の間には、このシリーズ全体のテーマである選択が横たわっている。私たちは1つの戦略を評価して16%を稼ぐと分かったのではない。膨大な数の戦略を評価し、最良のものの16%を報告したのだ。アウトオブサンプル窓は先読みについてはクリーンだったが、選択についてはクリーンではなかった——勝者を選ぶ際、そこでの成績も一部判断材料にしたからだ。この2つの物語を区別できる唯一の計器は、私たちが何回見たかを知っている計器だけだ。
第2幕——デフレーション:約37,000試行、DSR = 0.00

「見た回数」を数えよう。フォールド、タイムフレームの組合せ、パラメータグリッドを合わせると、デュアルタイムフレームのサーチはおよそ37,000個の異なる設定を評価した。その一つひとつが戦略空間からの抽出であり、サーチは最大値を保持した。完全な導出はデフレーテッド・シャープレシオの記事にあるが、ここで必要な事実は1つだけ、偽戦略定理(False Strategy Theorem)(Bailey & López de Prado)だ:真のエッジがゼロのN個の戦略の最大シャープレシオの期待値は、Nとともに増大する。N ≈ 30,000では、純粋なノイズの最良は、選択だけでゼロの約4標準偏差上に座る。4シグマは発見のように見える。それはサーチの影なのだ。
だから正しい問いは「勝者のシャープレシオはプラスか?」ではない——当然プラスだ、あなたは最大値を選んだのだから。正しい問いは「勝者のシャープレシオは、37,000人のコイン投げ師の中で最も運の良い者が記録するであろう値を超えているか?」だ。DSRが計算するのはまさにそれだ:ベンチマークをゼロから、試行回数が含意するノイズ天井まで引き上げ、真のシャープレシオがその天井を超える確率を報告する。
ETHUSDTの勝者のアウトオブサンプルのトラックは、日次シャープレシオ約0.19に相当する。単体で見れば、長い窓での日次SR 0.19はまったく立派な数字だ。だが約37,000試行に対してデフレートすると、蒸発する:
ゼロだ。「限界的」でもなければ、「0.4、様子を見よう」でもない。DSRはこう言っている:これほど激しくサーチした以上、日次シャープレシオ0.19は純粋なノイズの最良の抽出と区別がつかない。+16.35%のアウトオブサンプルも+2.62%のホールドアウトも、この検定が解像できる精度においては、エッジをまったく持たず、単に37,000枚のくじがある宝くじに当選しただけの戦略と整合的なのだ。
デフレーションを誇張したくないので、指摘しておくべき微妙な点が1つある:パラメータグリッド上の隣接点はほぼ複製であり、生の試行回数は独立した「見た回数」を過大に数える。私たちのゲートは有効試行数を使う——デフレートする前に、ONC(López de Prado & Lewis)によってリターン相関で試行をクラスタリングする——帳簿づけ上の理由で本物のエッジを棄却しないために、まさにそうしているのだ。その補正を織り込んでもなお、ETHUSDTの勝者は生き残らない。結果がDSR 0.00と読めるとき、有効Nの機微がそれを救い出すことはない。それはノイズの奥深くに沈んでいる。
これで終わりにすることもできた。1銘柄、1サーチ、ゼロまでデフレート。だが単一銘柄でのDSRの不合格には、執念深い最適化者が必ず通り抜けようとする抜け穴が残る:*ETHUSDTがたまたま難しい銘柄なだけで、この設定は他の場所では本物かもしれない。*その抜け穴を塞ぐには、検定の軸を変えなければならない。
第3幕——決定的な検定:頑健性は銘柄横断に宿る

単一銘柄のサーチには、他のすべてが完璧でも残る構造的な弱点がある:アウトオブサンプルの軸が時間しかないことだ。設定がETHUSDTの後の窓でも持ちこたえたことは教えてくれる——だが、その設定が市場について何かを学んだのか、それともETHUSDTそのものについて学んだのかは教えてくれない。1つの銘柄への過学習は、その銘柄から決して外に出ない検定には見えないのだ。
そこで目的関数を変えた。「ETHUSDTのアウトオブサンプルで最良」の代わりに、銘柄横断のハントはジェネラリスト——多くの銘柄で同時に良い設定——を求める。プロトコルは次の通り:
- 流動性の高い主要5銘柄:ETHUSDT、BTCUSDT、SOLUSDT、BNBUSDT、XRPUSDT——それぞれ約118万本の1分足、共有された1つのカレンダー窓、共有された1組の分割(ウォームアップ → K個のインサンプルのフォールド → テスト → 手つかずのホールドアウト)。
- 頑健な目的関数:各設定をすべての銘柄のウォークフォワード結果でスコア付けし、銘柄間の中央値でランク付けする。中央値こそが要点だ——1つのコインで華々しく、4つのコインでひどい設定は、たった1つの外れ値で入場券を買うことはできない。選ばれるためには、大半の銘柄で少なくともそこそこでなければならない。
- ゲートに渡すポートフォリオ・リターン行列:試行ごとの日次リターンは、5銘柄にわたる等ウェイトのポートフォリオ(各銘柄に資本の1/S)であり、これがDSRとPBO-CSCVのゲートが消費するT×Nのパフォーマンス行列を与える。
- ホールドアウトに触れるのは一度だけ——各モードの頑健なチャンピオンだけがそれを行う。
これは単一銘柄の検定よりも厳密に難しい検定であり、意図的にそうしてある。ある設定は、1つのコインの特異性を突くことでETHUSDTのサーチには勝てる。だが5銘柄中央値のサーチには、その手では勝てない。この戦略ファミリーに頑健なエッジが存在するなら、それを見つけるのはこのセットアップだ。存在しないなら、たじろぐことなくそう告げるのも、このセットアップだ。
第4幕——判定:どちらのタイムフレームもゲートを通らない
銘柄横断のハントを両方の構成で実行し、それぞれの頑健なチャンピオンをゲートにかけた。ゲートは標準的な2つだ:DSR ≥ 0.95(有効試行数に対してデフレート)とPBO ≤ 0.2(パフォーマンス行列に対するCSCVから)。判定の全体を、正直にそのまま示す:
| モード | DSR(有効N) | PBO(CSCV) | ゲート:DSR ≥ 0.95 | ゲート:PBO ≤ 0.2 | 判定 |
|---|---|---|---|---|---|
| デュアルタイムフレーム | 0.24 | 0.264 | 不合格 | 不合格 | 頑健なエッジなし |
| トリプルタイムフレーム | 0.14 | 0.327 | 不合格 | 不合格 | 頑健なエッジなし |
両方が不合格、両方のゲートで、両方のモードで。2つのゲートは異なることを語っていて、しかも一致しているのだから、それぞれの数字を、以前の記事群が確立したキャリブレーションで読んでほしい:
-
DSR 0.24(デュアル)、0.14(トリプル)。 DSRは、真のシャープレシオが、サーチの含意するノイズ天井を超える確率だ。必要なのは0.95。得られたのは0.24と0.14——試された設定の数を考慮すると、エッジがプラスですらある確率が、かろうじて4分の1と7分の1しかない。第3のタイムフレームを加えると、良くなるどころか悪化した:パラメータが増え、サンプルに合わせ込む方法が増え、汎化するものが減った。この逆転自体が、過学習の指紋だ。
-
PBO 0.264(デュアル)、0.327(トリプル)。 誰もがPBOについて読み違える1つの事実を思い出そう(完全な扱いはこちら):その帰無仮説は1ではなく0.5だ。 PBOは、インサンプルの勝者がアウトオブサンプルで下位半分に落ちる確率だ。信頼できる選択は0の近くに座り、純粋なコイン投げは0.5に座る。私たちの0.264と0.327は0.5より下だ——選択は文字通りのコイン投げではなく、かすかなシグナルのささやきはある——だがどちらも、選択を信頼できると呼ぶために私たちが要求する0.2を大きく上回っている。そしてここでもトリプル(0.327)は、デュアル(0.264)よりコイン投げのラインに近い:複雑さが増え、汎化が減る。
2つの計器は直交している——DSRはパラメトリックで勝者に値段をつけ、PBOはノンパラメトリックで手続きに値段をつける——そして反対方向から同じ答えに収束する。この表をどう読んでも、どちらかの戦略がバーをクリアする読み方は存在しない。このハント全体の発端となった+16.35%には、頑健な銘柄横断のいとこはいなかった。それは1つのコインと1つのサーチの性質だったのだ。
第5幕——チャンピオンを銘柄ごとに追う
集計されたゲートは、戦略が失敗したことを教えてくれる。銘柄別の内訳はどのように失敗したかを教えてくれて、この「どのように」こそが研究全体で最も示唆に富む部分だ。トリプルタイムフレームのチャンピオン——5銘柄中央値の目的関数が実際に戴冠させた設定——を取り、各銘柄のアウトオブサンプルのテスト窓で何をしたかを見てみよう:
| 銘柄 | トリプルのチャンピオン、OOSテスト |
|---|---|
| ETHUSDT | −0.39% |
| BTCUSDT | −0.38% |
| SOLUSDT | +14.74% |
| BNBUSDT | −8.58% |
| XRPUSDT | −4.13% |
幻想の全体が、5つの行にむき出しになっている。チャンピオンが利益を出しているのは5銘柄中ちょうど1つ——SOLUSDTで、けばけばしい+14.74%——であり、残り4銘柄ではマイナスだ。これは、たまたま弱いところもあるジェネラリストではない。ポートフォリオの服を着たSOLスペシャリストだ。1つの大きなプラスがすべての仕事をしている。中央値の目的関数がこの設定を生のETHUSDT勝者より下に降格させたのは、まさに中央値が単一の外れ値に騙されることを拒むからだ。だが、その中央値で選ばれたチャンピオンでさえ、開けてみれば、ほぼ完全に1つのコインに寄りかかっていたことが分かる。
ホールドアウト——誰もそれに向かって最適化することを許されなかった窓——は、可能な限りクリーンな視点から同じ物語を語る:主要5銘柄にわたって、チャンピオンのホールドアウトのリターンがプラスなのは5銘柄中わずか1つだ。これがこの戦略ファミリーの本物のエッジなら、複数の銘柄の手つかずのデータに、少なくともかすかには現れるはずだ。現れたのは1つだけ。それは、市場ではなく銘柄を学習した設定の署名だ。
だからこそ、銘柄横断の軸は「あれば嬉しい」程度のものではなく、決定的な検定だったのだ。単一銘柄のDSRはすでにETHUSDTをゼロまでデフレートしていた。だが失敗を診断するには——見かけのエッジがそもそも銘柄間に分布などしておらず、その回のサーチがたまたま過学習したコインの性質にすぎなかったと示すには——5銘柄中央値の設計が必要だった。ETHUSDTのサーチではそれはETHUSDTのものだった。中央値のハントではSOLUSDTのものへと移った。エッジが移動したのだ。本物のエッジは、そんなふうには移動しない。
なぜネガティブな結果が正しい結果なのか

私たちが何を主張していて、何を主張していないのかを明示しておく価値はある。「エッジは見つからなかった」は、偽りの謙遜か無能の告白かのどちらかとして読み違えられやすいからだ。どちらでもない。
私たちは、HMAクロスオーバーが決して機能し得ないとか、この5つのコインが予測不能だとか、デュアル/トリプルタイムフレーム戦略が存在しないとか主張しているのではない。より狭く、しかしはるかに強いことを主張している:*この戦略ファミリーの中で、このデータの上で、このサーチ強度において、見かけのパフォーマンスが「試したものの数」への補正を生き延びる設定は存在しない。*エッジのように見えたものはすべて、ノイズの最良の信頼帯の内側にある。それは正確で、反証可能で、擁護可能な言明だ——そして、公表すべき正しい言明でもある。
この機構が打ち負かす誘惑は巨大で、他のあらゆる分野で名前がついている:**お蔵入り問題(file-drawer problem)**だ。ネガティブな結果は埋められ、ポジティブな結果は論文になる。トレーディングではインセンティブはさらに鋭い。デフレートし損ねたポジティブな結果は、単なる出来の悪い論文ではない——ノイズに向かって展開された資本であり、シグナルと見間違えた宝くじ券をトレードするために本物の手数料を支払う、本物のお金だからだ。先読みバイアスの記事は、リークがシャープレシオ15を捏造する様を示した。DSRの記事は、リークが一切なくても、サーチが純粋なノイズからシャープレシオ1.63を捏造する様を示した。この記事は、それらの計器を自分自身のお気に入りのアイデアに向け、正直であれと求めたときの姿だ。この装置——DSR、PBO/CSCV、有効Nクラスタリング、銘柄横断の選択——は、あなたの戦略を祝福するために存在するのではない。ノイズの最良をアルファとして出荷するのを止めるために存在するのであり、それが機能している唯一の証明は、時に「ノー」と言うことなのだ。
この装置を持たないチームなら、あの+16.35%を出荷していただろう。クリーンに見えるウォークフォワード、プラスのホールドアウト、検出可能な先読みリークなし、もっともらしいストーリー。彼らは間違っていて、しかもライブのP&Lが乖離するまで、それを知らずにいただろう——ネガティブだが誠実な結果なら決して説明する必要のないバックテストとライブの乖離だ。なぜなら、そもそもライブに行かなかったのだから。厳密なノーの価値は、あなたが決して被らなかったドローダウンで測られる。
出所
この記事のすべての数字は、物語ではなくコードにたどれる。銘柄横断のエッジハント——5銘柄のロード、共有された分割、銘柄間中央値の目的関数、ゲートに渡す等ウェイトのポートフォリオ行列——は、バックテスターのリポジトリのscripts/edge_hunt_multitf.py(コミットacd84e8)にある。それが呼び出す統計ゲート——確率的シャープレシオとデフレーテッド・シャープレシオ、最小トラックレコード長、ONCクラスタリングによる有効N、そしてCSCVによるPBO。いずれもブラックボックスのライブラリではなく、一次資料に当たってNumPy/SciPyの上でゼロから実装したもの——はscripts/overfit_gates.py(コミット7b966e1)にあり、純粋なノイズの中に既知のエッジを仕込み、ゲートがそれを通過させてノイズを棄却することを確認するセルフテストが同梱されている。ここに手計算の数字は1つもない。答えがイエスでもノーでも、ゲートは同じコードパスだ。魅惑の+16.35%を生んだETHUSDT単一銘柄の研究は、ハントが読み取り専用でインポートする、以前のbench_search_multitfハーネスから得られたものだ。
まとめ
- **私たちは主要5銘柄にわたり、デュアルおよびトリプルタイムフレームで数万回のバックテストを実行し、頑健なエッジを見つけられなかった——そしてそれこそ、この機構が生み出すために作られた結果だ。**厳密に確立されたネガティブな結果は、失敗ではなく発見である。
- クリーンに見えるアウトオブサンプルの数字はエッジではない。 ETHUSDTの勝者はアウトオブサンプルで+16.35%、手つかずのホールドアウトで+2.62%を記録し、先読みリークもなかった——だが背後の約37,000試行を数えたとたん、DSR 0.00までデフレートされた。アウトオブサンプルは先読みを晴らすが、選択を晴らすのはデフレーションだけだ。
- **その理由が偽戦略定理だ。**約30,000試行では、純粋なノイズの最良が、選択だけでゼロの約4シグマ上に座る。日次シャープレシオ0.19は、まさにその宝くじが支払う配当だ。勝者を比較すべき相手はノイズ天井であって、決してゼロではない。
- 頑健性は時間だけでなく、銘柄を横断して宿る。 5銘柄間の中央値で選抜することで、単一コインの幻想は診断可能な幻想へと変わった:デュアルDSR 0.24 / PBO 0.264、トリプルDSR 0.14 / PBO 0.327——どちらも両ゲートに不合格で、トリプル(パラメータがより多い)は、あらゆる指標でデュアルより悪い。
- 信頼する前に、チャンピオンを開梱せよ。トリプルタイムフレームの「ポートフォリオ」チャンピオンが利益を出したのは5銘柄中1つ(SOL +14.74%;ETH −0.39%、BTC −0.38%、BNB −8.58%、XRP −4.13%)で、ホールドアウトでプラスだったのも5銘柄中1つだけだった。1つの銘柄にだけ宿り、サーチし直すと移動するエッジは、エッジではない——ポートフォリオの服を着た過学習だ。
- **ネガティブな結果を公表せよ。**反過学習の装置——DSR、PBO/CSCV、有効N、銘柄横断の選択——が持つ価値は、まさに時にノーと告げることにある。そして規律とは、告げられたときに耳を傾けることだ。
私たちが最も機能してほしかった戦略は、機能しなかった。それを捕まえるために作った計器たちは、1ドルたりとも危険に晒される前に、4つの独立したやり方でそう告げた。それがこのシリーズの要点のすべてであり、この記事はその要点が現金化される場所だ:機構が自らの存在価値を稼ぐのは、あなたにお世辞を言う日ではない——あなたを止める日なのだ。
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.