コンテンツにスキップ

CSCV/PBO オーバーフィッティング検定レポート

レポート概要

日付: 2026-03-25 対象: ORATS 7年BT (2019-01 〜 2026-01) × 24シナリオ 結論: PBO = 15.4% (GOOD) — 戦略のパフォーマンスはオーバーフィッティングによる偶然ではなく、統計的に有意


CSCV/PBOとは何か

バックテストの「落とし穴」

バックテスト(BT)は過去のデータでトレード戦略をシミュレーションする手法です。しかし、過去データに「たまたま合う」パラメータを選んでしまうリスクがあります。これを オーバーフィッティング(過学習) と呼びます。

例えるなら、試験の過去問だけを丸暗記して本番に臨むようなものです。過去問では100点が取れても、本番では通用しない — これがオーバーフィッティングです。

CSCV (Combinatorially Symmetric Cross-Validation)

CSCVは「バックテスト結果がオーバーフィッティングかどうか」を定量的に判定する統計手法です。

手順:

  1. 月次リターンデータを16グループに分割する(各グループ約5ヶ月分)
  2. 16グループから8グループを選ぶ全組み合わせ(12,870通り)を列挙
  3. 各組み合わせで:
    • 選んだ8グループを IS(In-Sample=学習用) とする
    • 残り8グループを OOS(Out-of-Sample=検証用) とする
    • ISで最も成績が良い戦略を特定し、その戦略のOOSでの順位を記録
  4. 全12,870通りの結果を集計する
  全84ヶ月のデータ
  ┌──────────────────────────────────────┐
  │ G1 │ G2 │ G3 │ ... │ G15 │ G16     │  ← 16グループに分割
  └──────────────────────────────────────┘
         ↓ 12,870通りの分割を試行
  ┌─────────────┬─────────────┐
  │   IS (8グループ)  │  OOS (8グループ)  │
  │   学習用データ     │  検証用データ      │
  └─────────────┴─────────────┘
  ISでベストの戦略は、OOSでも上位か?

PBO (Probability of Backtest Overfitting)

PBOは「ISで最良と判定された戦略が、OOSで中央値(全戦略の真ん中)以下になる確率」です。

PBO 判定 意味
0〜5% EXCELLENT オーバーフィッティングのリスクが極めて低い
5〜15% VERY GOOD リスクは低い
15〜25% GOOD 許容範囲
25〜40% MODERATE 注意が必要
40%超 HIGH オーバーフィッティングの可能性が高い

PBOが低いほど、「BTで良い成績だった戦略は、未知の将来データでも良い成績を出す可能性が高い」と言えます。


テストの設計

対象シナリオ

24のパラメータ組み合わせを検証しました:

パラメータ 値の範囲 個数
DTE (満期日数) 10-45, 10-60 2
TP (利確ポイント) 0.35, 0.38, 0.41, 0.44 4
CR (最低クレジット比率) 0.30, 0.35, 0.40 3

合計: 2 × 4 × 3 = 24シナリオ

BT条件(全シナリオ共通)

項目
データソース ORATS (Options Research & Technology Services)
期間 2019-01-02 〜 2026-01-30 (7年間)
初期資本 $50,000
執行モデル MID (bid-ask中間値)
月次出金 30% (利益の30%を毎月引き出し)
乱数シード 0 (確定的再現)
ポジション上限 50

CSCV設定

項目
グループ数 16 (各5ヶ月)
組み合わせ数 12,870 (C(16,8))
評価指標 Sharpe比
月次リターン点数 84ヶ月/シナリオ

バックテスト結果

全24シナリオ一覧

DTE 10-45

TP CR Total Wealth Win Rate MaxDD
0.35 0.30 $22,169,508 78.0% 70.1%
0.35 0.35 $17,510,903 80.1% 26.8%
0.35 0.40 $7,475,557 81.8% 15.0%
0.38 0.30 $20,524,638 76.9% 75.2%
0.38 0.35 $17,090,248 78.9% 28.6%
0.38 0.40 $7,177,682 80.4% 17.8%
0.41 0.30 $23,469,316 76.2% 68.4%
0.41 0.35 $16,921,406 78.0% 31.2%
0.41 0.40 $7,472,122 79.8% 14.4%
0.44 0.30 $23,484,271 75.4% 68.6%
0.44 0.35 $16,349,641 76.9% 32.6%
0.44 0.40 $7,744,396 79.1% 14.5%

DTE 10-60

TP CR Total Wealth Win Rate MaxDD
0.35 0.30 $33,852,242 81.1% 55.1%
0.35 0.35 $31,299,738 82.7% 20.6%
0.35 0.40 $14,417,097 82.9% 19.1%
0.38 0.30 $32,767,752 79.9% 59.9%
0.38 0.35 $31,792,177 82.0% 20.4%
0.38 0.40 $15,187,792 82.3% 19.2%
0.41 0.30 $29,114,108 78.6% 71.3%
0.41 0.35 $31,338,822 80.8% 21.6%
0.41 0.40 $15,167,841 81.4% 20.5%
0.44 0.30 $31,191,513 78.0% 63.3%
0.44 0.35 $31,403,294 80.0% 22.3%
0.44 0.40 $15,719,289 80.8% 21.4%

CR=0.30の危険性

CR=0.30のシナリオはTW(総資産)は最大だが、MaxDDが55〜75%に達する。COVID暴落(2020年3月)で壊滅的な損失を被るため、実運用には不適切。


CSCV/PBO 結果

PBO = 15.4% (GOOD)

======================================================================
CSCV/PBO ANALYSIS RESULTS
======================================================================

  PBO (rank-based):  0.154 (15.4%)
  PBO (logit-based): 0.154 (15.4%)
  Verdict:           GOOD — acceptable overfitting risk

  Strategies:        24
  Combinations:      12,870
  Groups:            16 × 5 months
  Metric:            sharpe

「学習データの1位」は未知データでも通用するか?

学習用データ(IS)で最も成績が良かった戦略が、検証用データ(OOS)で24戦略中何位になったかの分布です。もし戦略が本物なら上位に集中し、オーバーフィッティングなら全順位に散らばります。

  Rank  1:    464 ( 3.6%) █
  Rank  2:    822 ( 6.4%) ███
  Rank  3:    789 ( 6.1%) ███
  Rank  4:    718 ( 5.6%) ██
  Rank  5:   2530 (19.7%) █████████
  Rank  6:    804 ( 6.2%) ███
  Rank  7:    893 ( 6.9%) ███
  Rank  8:   1051 ( 8.2%) ████
  Rank  9:   1165 ( 9.1%) ████
  Rank 10:    498 ( 3.9%) █
  Rank 11:    457 ( 3.6%) █
  Rank 12:    702 ( 5.5%) ██
  Rank 13-24:        少数 (<5%)

上位半分 (1〜12位) に入る確率: 84.7% — 学習データで選んだ戦略は、未知のデータでも84.7%の確率で上位半分に入る。偶然なら50%なので、明確に優位性がある。

どの戦略が「学習データで1位」に選ばれやすいか

12,870通りのデータ分割それぞれで「学習データ(IS)での1位」が決まります。 その1位が、未知データ(OOS)で24戦略中何位になるかを見ます。

戦略 学習データで1位になった割合 未知データでの平均順位 (24中)
DTE1045_TP035_CR040 33.8% 6.2位
DTE1060_TP035_CR040 33.4% 5.8位
DTE1060_TP041_CR040 9.9% 8.6位
DTE1060_TP035_CR035 5.0% 11.6位

CR=0.40(最も厳しいフィルタ)が「学習データでの1位」を独占。ただしCR=0.40はTW(総利益)が低め($7-15M)で、リスク回避的な構成。

読み方

「学習データで1位になった割合」が高く、「未知データでの平均順位」が低い(1位に近い)ほど、その戦略は信頼できる。DTE1060_TP035_CR040は「学習でも検証でも安定して上位」。


考察

1. PBO 15.4%の解釈

PBO = 15.4%は「GOOD(許容範囲)」です。これは:

  • 12,870通りのIS/OOS分割のうち、84.6%のケースでISベスト戦略がOOSでも中央値以上
  • 完全なランダム(オーバーフィッティング100%)なら PBO = 50%
  • 15.4%は偶然ではなく、戦略に実質的な優位性があることを示す

2. CR(最低クレジット比率)の役割

CR 特性 リスク
0.30 TW最大($22-34M) MaxDD 55-75%。COVID暴落で壊滅
0.35 TW高い($17-32M)、DD適正(20-32%) バランス最良
0.40 DD最小(14-21%) TW半減($7-16M)

CR=0.35がリスク・リターンの最適点。CSCV的にはCR=0.40がIS-bestだが、OOS平均ランク5.8-8.6は「突出して良い」わけではない。実運用ではCR=0.35のバランスが優れる。

3. DTE拡大の効果

DTE 10-60はDTE 10-45に対して:

  • TW: 1.5〜2倍(より多くのエントリー機会)
  • WR: +2-3pp(選択肢が増えることで質の高いトレードを選べる)
  • DD: CR=0.35で20-22%(DTE1045の27-33%より改善)

DTE拡大は明確に有利。

4. 25ヶ月PBOとの比較

期間 PBO 判定
25ヶ月 (2024-2026) 32% MODERATE
7年 (2019-2026) 15.4% GOOD

長期データでPBOが改善。これは戦略の優位性が短期の特殊環境ではなく、複数の市場局面(COVID暴落、2021-22上昇相場、2022ベア、2023-25回復)を通じて一貫していることを意味する。

5. 推奨構成

CSCV結果とBT結果を総合すると:

パラメータ 推奨値 根拠
DTE 10-60 TW 2倍、DD改善
CR 0.35 リスク・リターン最適。CR=0.30はDD危険、CR=0.40はTW半減
TP 0.35-0.38 ISベスト頻度最大、OOSランク安定

Monte Carlo シミュレーション

Monte Carloとは

CSCV/PBOが「この戦略はオーバーフィッティングしていないか?」を検証するのに対し、Monte Carloシミュレーションは「この戦略で最悪どれくらい負ける可能性があるか?」を推定します。

手法: ブロックブートストラップ

  1. 7年間のバックテストから日次リターン(1,808日分)を抽出
  2. 日次リターンを「21日(約1ヶ月)のブロック」に切り分ける
  3. このブロックをランダムに並べ替えて、架空の7年間を合成
  4. これを10,000回繰り返し、各回のMaxDD(最大下落率)を記録
  5. 10,000回の結果から「95%のケースではDD何%以内か」「99%では?」を統計的に推定
  元の日次リターン (1,808日)
  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┐
  │B1│B2│B3│B4│B5│B6│...│B85│B86│  ← 21日ブロックに分割
  └──┴──┴──┴──┴──┴──┴──┴──┴──┘
         ↓ ランダムに並べ替え (×10,000回)
  ┌──┬──┬──┬──┬──┬──┬──┬──┬──┐
  │B42│B7│B85│B3│B61│B12│...│B55│B29│  ← 架空の7年間 #1
  └──┴──┴──┴──┴──┴──┴──┴──┴──┘
         ↓ equity curve再構築 → MaxDD算出
         ↓ ×10,000回 → MaxDD分布を得る

なぜブロック単位か?

日次リターンには短期的な相関(数日連続の下落など)がある。1日ずつバラバラにシャッフルするとこの相関が壊れてしまい、現実より楽観的な結果になる。21日ブロックで並べ替えることで、短期的な連続性を保持したまま順序をランダム化する。

テスト条件

項目
対象シナリオ DTE1045_TP035_CR035
BT期間 2019-01-02 〜 2026-01-30 (1,808日)
初期資本 $50,000
シミュレーション回数 10,000
ブロックサイズ 21日(約1ヶ月)
月次出金率 30%
破産判定 equity < $1,500 (初期資本の3%)

結果

破産確率

0.00% (0 / 10,000) — 10,000回のシミュレーションで1度も破産しなかった。

MaxDD(最大下落率)分布

MaxDDは「ピークから最大何%下がるか」を表す。数値が小さいほど安全。

パーセンタイル MaxDD 解釈
中央値 (50th) 24.7% 半分のケースはこれ以下
75th 28.4% 4回に3回はこれ以下
90th 33.0% 10回に9回はこれ以下
95th 35.8% 20回に19回はこれ以下
99th 42.1% 100回に99回はこれ以下
最悪 61.4% 10,000回中の最悪ケース

解釈

95%の確率でMaxDDは35.8%以内に収まる。つまり\(50,000で始めた場合、ピークからの最大下落は\)17,900が95%上限。99%でも\(21,050。破産(\)1,500以下)には一度も到達しない。

最終Equity分布

7年後にいくら持っているかの分布(30%月次出金後の残額):

パーセンタイル 最終Equity 解釈
最悪5% (p5) $682,405 最悪でも13.6倍
中央値 $2,063,593 典型的には41倍
最良5% (p95) $6,790,938 好調なら136倍
最大 $36,765,785 最良ケース

最低到達Equity

シミュレーション期間中で最もequityが低くなった瞬間の値:

パーセンタイル 最低Equity 解釈
平均 $48,299 平均的には初期資本付近が底
5th $42,408 初期資本の85%
1st $38,462 初期資本の77%
最悪 $27,014 初期資本の54%(10,000回中1回)

日次 vs 月次の精度比較

同じシナリオで日次データ(1,808点)と月次データ(84点)でMCを実施した結果の比較:

指標 日次 (1,808点) 月次 (84点) 差分
破産確率 0.00% 0.00%
MaxDD 中央値 24.7% 18.8% +5.9pp
MaxDD 95th 35.8% 28.4% +7.4pp
MaxDD 99th 42.1% 34.8% +7.3pp
最終Equity中央値 $2.06M $2.05M ≈同等

日次データの方がMaxDDが7-8pp高い。これは月次データでは月内の変動が平均化されてしまうため。日次データの方が現実に近い保守的な推定値となる。

資本別Monte Carlo(正確版)

簡易版($50Kのequity curveをスケーリング)ではMaxDD%が全資本で同一になってしまう。正確版では各初期資本でBTを実行し直し、capital scalingの違いを反映した日次equity curveでMCを実施。

  • シナリオ: DTE1045_TP035_CR035(CSCV検定と同一)
  • BT期間: 2019-01-02 〜 2026-01-30(7年間、1,808取引日
  • 条件: det/seed0/MID/30%月次出金、workers=12

BT結果(資本別)

全数値は30%月次出金込み。Total Wealth = 最終Equity残高 + 出金済み総額。

初期資本 Total Wealth 最終Equity 出金済み総額 MaxDD WR Trades
$50,000 $17,510,903 (350x) $11,860,032 $5,650,871 (113x) 26.8% 80.1% 3,274
$32,000 $14,755,625 (461x) $10,056,662 $4,698,963 (147x) 26.8% 80.1% 3,274
$13,000 $7,271,884 (559x) $5,020,215 $2,251,669 (173x) 25.9% 80.2% 3,249

括弧内は初期資本に対する倍率

\(13Kは倍率では最大(559x)だが、絶対額では\)50Kの42%。capital scalingの式 min(30 × equity/base, 50) により、初期のmax_positionsが小さく($13K→約12ポジション)、複利効果の立ち上がりが遅い。Trades数が25少ないのは、ポジション枠不足でエントリーを見送ったケースがあるため。

MC結果比較(10,000シミュレーション)

全数値は30%月次出金込みのEquity残高(出金済み分は含まない)。

MaxDD分布:

パーセンタイル $50K $32K $13K 解釈
中央値 24.7% 24.7% 25.9% 半分のケースはこれ以下
75th 28.4% 28.5% 30.0% 4回に3回はこれ以下
90th 33.0% 33.2% 34.5% 10回に9回はこれ以下
95th 35.8% 35.9% 37.1% 20回に19回はこれ以下
99th 42.1% 42.1% 44.4% 100回に99回はこれ以下
最悪 61.4% 62.1% 62.9% 10,000回中の最悪ケース
破産確率 0% 0% 0% 10,000回中の破産回数

最終Equity分布(7年後の残高、30%出金後):

パーセンタイル $50K 倍率 $32K 倍率 $13K 倍率 解釈
最悪 $181,827 4x $122,530 4x $38,715 3x 10,000回中の最悪
最悪5% $682,405 14x $524,996 16x $230,467 18x 悲観シナリオ
25th $1,292,955 26x $1,005,230 31x $462,788 36x やや不調
中央値 $2,063,593 41x $1,618,690 51x $744,432 57x 典型的なケース
75th $3,358,305 67x $2,600,776 81x $1,209,971 93x やや好調
最良5% $6,790,938 136x $5,219,271 163x $2,418,102 186x 楽観シナリオ
最大 $36,765,785 735x $26,176,681 818x $11,395,704 877x 10,000回中の最良

倍率の逆転現象

$13Kは絶対額では最小だが、倍率では最大(中央値57x vs $50Kの41x)。小資本ほど初期の1ドルあたりの複利効果が大きい。ただしこれは同じリターン分布を仮定した場合であり、実際にはcapital scalingの制約でリターンが劣後する。

最低到達Equity(シミュレーション期間中の底値):

パーセンタイル $50K $32K $13K 解釈
平均 $48,299 $30,907 $12,503 平均的な底値
5th $42,408 $27,171 $10,808 悲観的な底値
1st $38,462 $24,590 $9,866 かなり悪いケース
最悪 $27,014 $16,599 $6,520 10,000回中の最悪

$13KのMaxDDリスク

\(13Kは\)50K/\(32Kに比べてMaxDDが**1.2〜2.3pp高い**。capital scalingの立ち上がりが遅く、初期に少数ポジションに集中するため、特定銘柄の急落がポートフォリオ全体に大きく影響する。最悪ケースの底値\)6,520は初期資本の50%で、心理的にかなり厳しい。ただし破産確率は依然として0%。

結論

  • \(50Kと\)32KはほぼMC結果で変わらない(MaxDD差0.1pp以内)。\(32Kで始めても\)50Kと同等のリスクプロファイル
  • $13Kは1-2pp MaxDDが高いが、破産確率0%で実運用に耐える
  • いずれの資本でも95th MaxDD < 38%、99th < 45%で堅牢
  • 中央値で初期資本の41〜57倍(30%出金後の残高のみ。出金分を含めると実質リターンはさらに大きい)

未検証事項・今後の課題

  1. Polygonデータでのクロス検証 — ORATSとは異なるデータソース(Polygon bid/ask)で同一パラメータのBTを行い、データソース依存性を確認。quotes enrichment完了後に実施予定

参考文献

  • Bailey, D.H., Borwein, J.M., López de Prado, M., & Zhu, Q.J. (2017). The Probability of Backtest Overfitting. Journal of Computational Finance.
  • CSCV手法の原論文。本レポートの実装はこの論文の手法に基づく。