LEARN · 第5部 · 5-1 美しいバックテストを疑え ― 過剰最適化の罠 過去に100点を取る方法は、過去を見ながらカンニングすることだ。
きれいな右肩上がりの実績を見せられたら、まず疑え。バックテストが嘘をつくのは、作り手が悪人だからではない。 過去のデータに向かって「いちばん儲かる設定」を探す作業は、過去を見ながら答案を書くカンニングと数学的に同じだからだ。 ここから先、川を下る旅はいったん終わる。我々はテーブルの反対側 ―― プレイヤーではなく、カジノの胴元の席に座る。 胴元は「次にどの目が出るか」を当てない。出る目の確率の偏りを測り、それを大量にさばくだけだ。
01バックテストとは何か、そしてなぜ嘘をつくか
バックテストとは、ある売買ルールを過去の価格に当てはめて、「もし昔これをやっていたらどうなったか」を計算する作業だ。 やること自体は健全で、戦略を捨てる根拠(ダメな手法を早く殺す)としては必須の道具になる。問題は使い方を一段間違えた瞬間に起きる ―― 結果が良くなるように、ルールの方を過去に合わせて調整し始めた瞬間だ。
想像してほしい。サイコロを1000回振った記録(過去)が手元にある。あなたは「偶数の次は奇数を賭ける」「3が出たら倍賭け」と、 記録を見ながらルールをいじり、最後に全勝するルールを組み立てる。当然、過去には100点が取れる。記録を見ながら賭けたのだから。 だが次の1投(未来)で、その全勝ルールは何の役にも立たない。バックテストの嘘の正体はこれと寸分違わない。 過去はカンニングを許してくれる。未来は、絶対にさせてくれない。
02過剰最適化(カーブフィッティング)と多重検定バイアス
過去に合わせ込みすぎたルールを過剰最適化(カーブフィッティング)と呼ぶ。曲線(過去の値動き)に、ルールという針金を ぴったり沿わせてしまう、という比喩だ。針金は過去の凸凹を完璧になぞるが、未来の凸凹は別の形をしているので、針金はもう沿わない。 パラメータ(移動平均の期間、損切り幅、エントリー条件…)を増やせば増やすほど、針金は自由に曲がり、過去への密着度は上がる ―― そして未来での無力さも同じだけ上がる。
さらに厄介なのが多重検定バイアスだ。胴元の視点で言えば、これが現代の最大の罠になる。 ルールを1つだけ試して当たったなら、まだ意味がある。だが何千通り、何万通りのルールを総当たりで試し、その中のベストを1つ選んだなら話は別だ。 コインを1枚投げて10回連続で表が出たら「おかしい」と思う。だがコインを1024枚同時に投げれば、10回連続表のコインは確率的に必ず1枚は現れる。 そのコインは「優秀」なのではない。たくさん試した中のまぐれを、後から拾い上げただけだ。
計算資源とデータが安価になった今、誰でも一晩で数万通りの戦略を回せる。だから「過去によく効いたベスト戦略」は、 むしろ偶然の勝者である確率が高い。プロはこれを補正するためにDeflated Sharpe Ratio(何通り試したかを差し引いて シャープレシオを割り引く)や White's Reality Check といった検定を使う。要は「お前、裏で何千個試しただろう」と数字に問い詰める仕組みだ。
03紙のシャープレシオが本番で消える理由
仮に多重検定もくぐり抜けた、本物に見える戦略があったとする。それでも紙の上のシャープレシオ(リターンを変動で割った効率指標)は、 実弾では縮む。理由は3つ、いずれも「過去のグラフには載っていないコスト」だ。
| 本番で効く摩擦 | 過去のグラフに載らない理由 |
|---|---|
| 取引コスト | スプレッド・手数料は毎回の往復で削れる。回転の速い戦略ほど、薄い優位性が手数料に食われて消える。 |
| スリッページ | バックテストは「その瞬間の理想価格」で約定したことにする。現実は注文を出した瞬間に価格が逃げ、想定より不利な値で約定する。 |
| キャパシティ | 小さな歪みを突く戦略は、大きな資金を入れた瞬間に自分の注文で価格を動かしてしまい、突くべき歪みが消える。優位性には“入る箱の大きさ”の上限がある。 |
だから「紙のシャープ2.0」は、コストとスリッページとキャパシティを引いた瞬間に「実効0.5」まで落ちることがある。 胴元の言葉で言えば ―― 賭場の取り分(テラ銭)を計算に入れていないプレイヤーの勝率表は、全部嘘だ。 摩擦を引いてなお残る薄い優位性だけが、本物の取り分になる。
04バックテストの見方は、昔と今でどう変わったか
バックテストできれいな右肩上がりが出れば、その戦略は本物。過去に勝てた手法は、未来でも勝てる。
計算資源とデータが安価になり、誰でも一晩で何千・何万通りの戦略を試せる。だから「過去のベスト戦略」は本物より偶然の勝者である確率が高い。これを補正するのが多重検定の割引(Deflated Sharpe)・生存/先読みバイアスの除去・改定前の値を使うPoint-in-Time データ。さらに取引コスト・スリッページ・キャパシティを引けば、紙のシャープは大きく縮む。
なぜ:高速計算と安価な履歴データが普及し、総当たり探索が誰にでも可能になった=偶然の勝者を量産できる時代になったから。試行回数を申告しない実績は、それだけで疑わしい。
過去のデータにはカンニングができ、未来にはできない。だから「過去への密着度」と「未来での優位性」は別物だ ―― この非対称は、手段がどれだけ進歩しても不変。
05では胴元はどう稼ぐのか ―― 弱い優位性の分散
ここまで読むと「結局、確かな必勝法など作れないのか」と思うだろう。半分正しい。一発で大当たりする魔法のルールは、ほぼ全てまぐれだ。 だが胴元は、それでも長期で必ず勝つ。秘密は「強い予測」ではなく「弱い優位性を、大量に、独立に積む」ことにある。 ルーレットの取り分はたった一回ごとには 2.7% 程度の薄い偏りでしかない。だが胴元はそれを何千回・何万回さばくから、 薄い偏りが法則に化ける。
クオンツ運用も同じだ。これを定式化したのがファンダメンタル・ロー(運用の基本法則)―― 情報係数(IR)は、 予測の鋭さ(IC)と、独立な賭けの本数(breadth)の平方根の積で決まる:
IR = IC × √(銘柄数・賭けの本数)
IC(情報係数)= 予測と結果の相関で、いわば「シグナルの鋭さ」だ。ここで初心者が必ず誤解する。「IC=0.05? たった5%の相関? ゴミだ」と。 違う。IC=0.05 は、現実のマーケットでは十分に強いシグナルだ。なぜなら、それを低相関の賭けに何百本も分散すれば、 √の効果で IR(運用効率)はしっかり積み上がるからだ。胴元は一回の勝負に賭けない。薄い偏りを、独立に、数で稼ぐ。
逆に「IC=0.3 のすごいシグナルを見つけた」と興奮したら、まず頻度バイアスを疑え。我々自身、月次データを日次に引き伸ばして
検証した結果、月をまたぐ効果が偽の時系列構造を作り、ICが過大に出た失敗をしている(強すぎる優位性は、たいていデータの作り方が間違っている)。
マクロ系のシグナルで |IC| > 0.10 が出たら、本物の発見より先に「自分は過去をカンニングしていないか」を疑うのが、胴元の規律だ。
だから本物のエッジは「一つの必勝法」の形では現れない。弱いが本物のシグナルを、たくさん、賢く分散する形でしか現れない。 美しい一本のバックテスト曲線に惹かれるのはプレイヤーの感覚で、胴元はそれを警戒する。 ―― では、その分散と検定をくぐり抜けた本物の戦略でさえ、なぜある日ぱたりと効かなくなるのか? 次章で、優位性が「消える」のではなく「混雑で痩せ、レジームで蘇る」仕組みを、確率の言葉で読み解く。
我々のバックテストは、17銘柄 × 5時間足 × 16シグナルの1,360セルを総当たりで検証した上で、 n が小さいまぐれ(PF が高くてもサンプル1本のセル)を採らず、コスト控除・イン/アウトサンプルの区別を明記して公開している。 「美しい数字」ではなく「摩擦と試行回数を申告した数字」を、この章の目で確かめてほしい。
→ 1,360セル検証(in-sample/免責つき)を見る