バックテストで最も成績がよいパラメータを選ぶほど、本番で失望しやすくなる逆説があります。データへ合わせる自由度が高いからです。Probability of Backtest Overfitting(PBO)は、訓練側で勝者になった戦略が、対応する検証側では中央値未満へ落ちる確率を推定します。
一回の学習・検証分割が危険な理由
2018〜2022年を学習、2023〜2025年を検証にすると、その境界に偶然有利な相場があるかもしれません。境界を何度も動かして都合のよい結果を報告すれば、検証期間自体を最適化しています。PBOでよく使われる組合せ対称交差検証(CSCV)は、時系列を複数ブロックへ分け、半分を学習、残り半分を検証とする組合せを広く調べます。

計算の流れ
- 同じ売買アイデアから生まれた候補戦略の期間別成績行列を作る
- 時系列を偶数個の連続ブロックへ分ける
- ブロックの半分を学習側として候補を順位付けする
- 学習側1位の候補を、残りの検証側で順位付けする
- 検証順位が中央値未満になった組合せの割合を求める
たとえば20候補、8ブロックで70通りの半分分割を調べ、学習勝者が検証側の下位半分へ42回落ちたなら、単純なPBO推定は42÷70=60%です。高いほど選択手順が不安定だと解釈します。
順位をロジットへ変換する理由
元の方法では検証側順位を0〜1へ正規化し、logit=log(順位比率÷(1−順位比率))へ変換します。0未満なら中央値より悪いことを示します。この分布を見ると「少しだけ下位」なのか「ほぼ最下位へ崩れる」のかも区別できます。PBOの一つの割合だけでなく、ロジット分布と性能劣化率を併記します。
架空の比較
移動平均の短期5〜30日、長期40〜200日、損切り0.5〜3ATRを総当たりした戦略Aと、事前に3候補だけ決めた戦略Bを比較します。Aの最高シャープが2.1、Bが1.2でも、AのPBOが70%、Bが15%なら、Aは選択の偶然へ強く依存している疑いがあります。Aの中央値や近傍パラメータが弱いなら、最高点を採るより頑健な台地を探すべきです。

時系列での重要な注意
保有期間がブロック境界をまたぐと、学習側と検証側で同じ価格情報を共有します。5日先リターンを目的変数にするなら、境界周辺をパージし、必要に応じてエンバーゴ期間を置きます。銘柄横断戦略では同じ日の市場ショックを別標本と数えないよう、日付単位で分割します。
また候補戦略は最終的に残したものだけでなく、研究中に試した没案を含めます。後から似た候補を削除してPBOを下げると評価が歪みます。候補生成ルールを先に固定し、コードのコミットや実験IDで全履歴を残します。
PBOが低くても安心できない
- 市場制度が変われば過去の安定性は続かない
- 約定不能な価格なら検証全体が無効
- 候補がすべて同じ欠陥を持てば相対順位では発見できない
- 短い標本ではブロック数を増やしても独立情報は増えない
- PBO閾値自体を結果に合わせない
実務の採否ルール
たとえばPBO25%以下、未知期間の費用後期待値が正、最大DD15%以下、近傍パラメータの7割が利益、という条件を事前登録します。不合格なら最良候補だけを救済せず、仮説を作り直して新しい検証として扱います。実運用後も月次で期待値、滑り、選択時順位を追い、想定レンジを外れたら建玉縮小か停止を行います。
PBOの価値は、魅力的な資産曲線へ「何通り試してこれを選んだのか」という問いを突き付けることです。高成績を証明する指標ではなく、選択プロセスの壊れやすさを可視化する指標として使います。
行列を作る段階が最重要
行は時系列ブロック、列は候補戦略、セルはそのブロックの費用後成績とします。候補ごとに取引日が違う場合、都合のよい稼働日だけで比較せず、現金日はゼロリターンとして口座ベースへ揃えます。シャープ比、平均R、GPRなど順位指標は事前に一つ決め、分割ごとに有利な指標へ切り替えません。
8ブロックなら半分を選ぶ組合せは70通りですが、学習と検証を反転した組は対称です。計算数が多くても元データが8独立観測になるわけではありません。PBOの小数点を精密さと誤解せず、ブロック長4週・8週・12週で感度を見ます。結果が10%から65%へ動くなら「不安定」が重要な結論です。
性能劣化率も見る
学習側トップのシャープが2.0、検証側0.4なら80%劣化です。別の分割で1.2から0.9なら25%です。検証順位が上位でも全候補がマイナスなら採用できません。PBO、検証側絶対成績、学習からの劣化率を三点セットにし、相対評価だけの盲点を防ぎます。
選択数と資金量の関係
1,000候補から1位だけを全額採用する方法は選択誤差が大きくなります。近傍パラメータで同じ経済仮説を持つ候補を束ね、上位一群を等ウェイトにする方法も検証できます。ただし似た戦略を束ねても共通の欠陥は分散できません。銘柄、期間、執行方法を変えた外部検証が必要です。
資産1,000万円でPBOが低い戦略でも、いきなり全額運用しません。最初の3カ月は想定数量の25%、実現滑りとシグナル一致率が許容範囲なら50%へ上げる段階導入にします。研究値との差が統計的に説明できないほど広がれば、残りを投入せず停止します。
再研究のルール
本番不振を見て同じ期間で閾値を調整すると、実運用データまで学習へ取り込んだことになります。研究終了日を固定し、それ以降を新しい完全未知期間として保管します。変更する場合は戦略バージョンを上げ、旧版の損益を新ルールへ混ぜません。PBOを下げること自体を最適化目標にせず、仮説、実行可能性、費用、容量を先に確認します。
実務で残す記録
最高成績の戦略ほど本番で負ける?PBOでバックテスト過剰適合を測るを実運用へ使うときは、計算日、入力期間、費用前後の値、採用した閾値、発注数量、見送り理由を保存します。数値が悪化した後に定義を変えず、変更時は旧版と新版を別系列にします。単独指標で売買方向を決めるのではなく、損失上限、流動性、アウトサンプル成績と組み合わせることで、再現可能な判断手順になります。

コメント