200回試した後でも偶然でないと言える確率の話

リスク管理 · 1 min

EAの検証において、個別の手法やパラメータを追い込みすぎて「たまたま成績が良かっただけ」という状態に陥ることを防ぐため、統計的な裏付けを強化しました。具体的には、検証エンジンに「統計的誠実さ」を担保するための仕組みを組み込みました。

図: 検証ファネル。多数のアイデアがクリーンデータ・前進検証・日中M1・モンテカルロの関門で絞られ、採用はごく一部です。

図: 検証ファネル。多数のアイデアがクリーンデータ・前進検証・日中M1・モンテカルロの関門で絞られ、採用はごく一部です。

EAの検証において、個別の手法やパラメータを追い込みすぎて「たまたま成績が良かっただけ」という状態に陥ることを防ぐため、統計的な裏付けを強化しました。具体的には、検証エンジンに「統計的誠実さ」を担保するための仕組みを組み込みました。 今回導入したのは、ランダムなエントリータイミングと実際の運用成績を比較する標準化処理や、試行回数を考慮して「偶然の産物ではないか」を判定するDSR(Bailey & Lopez de Prado提唱の確率的シャープレシオ)、そして多重検定補正(多くのパターンを試すほど見かけ上の成績が良くなるバイアスを修正する手法)です。

全体成績は偶然ではないと裏付けられた

まず、現在運用している「Core v1.6.0(2015年〜2026年)」のポートフォリオ全体を、この新しい検定にかけてみました。 結果は、日次シャープレシオが0.0905(年率換算で約1.44)、PSR(確率的シャープレシオ)は1.000となりました。特に重要なのは、何パターンもの検証を重ねたという前提で計算したDSRの値です。試行回数を200回と多めに見積もっても、DSRは0.9865という数値で、統計的な有意水準である0.95をクリアしました。つまり、このポートフォリオが持つ優位性(エッジ)は、膨大な試行の末にたまたま見つかった「偶然の最大値」では説明がつかない、本物である可能性が高いと言えます。

個別のスリーブには過度な期待をしない

一方で、ポートフォリオを構成する個別のスリーブ(戦略のパーツ)を分析すると、少し違った景色が見えてきます。 これまで成績が良いと判断していた「gold」などのスリーブについても、多重検定による補正(FDR補正)をかけると、統計的な有意性を示す数値は非有意となりました。これは「各スリーブの参入タイミングによる利益の積み上げが、統計的に完璧に証明されているわけではない」という現実を突きつけています。以前から確認しているIS/OOS(学習データと未知データでの一貫性)という傍証はあるものの、個別スリーブの性能を過信してはいけないという教訓です。

今後の運用方針

今回の検証で、EAの強みが「個別のスリーブの精緻さ」ではなく、「無相関な戦略を組み合わせたポートフォリオ構造(リスク管理とテール=極端な相場変動の捕捉)」にあることが再確認できました。 今後は、個別スリーブの参入タイミングを細かく調整するような研究投資は控え、ポートフォリオ全体としての堅牢性を高める方向に注力します。具体的には、以下の3点を今後の道筋とします。

  • エグジットや資金管理ルールが本当に機能しているかを、ランダムタイミング対照の手法でさらに厳密に検証する。
  • 危機的な相場環境での防御能力(株価ショック時の挙動など)を重点的に検証する。
  • 新規スリーブの採用判定フローに、今回実装した「探索数を申告した上でのDSR判定」を必須条件として組み込む。 結論として、現在のCore本体の運用は統計的な裏付けが強化されたと判断し、継続します。統計的な「穴」を塞ぐことは、EA運用における登山でいう「滑落防止のロープを張る」ようなもの。今後もこの基準を標準として検証を進めていきます。

この検証のつながり

この検証は、過去の次の検証を踏まえています(前回ダメだった→今回こうした、別ロジックとの比較など)。

関連コード(再現用)

この検証は以下のスクリプトで再現できます(リポジトリ参照)。

  • btengine/stats.py