Backtest Integrity Lab
小売プラットフォームはバックテストのSharpeまたは純利益を表示して終わりです。機関投資家はraw backtestを決して信頼しません — 結果が選択バイアスの補正と試行した設定数に対して耐えるかどうかを尋ねます。Backtest Integrity LabはそのチェックをcMindにもたらします。これは決定論的な数学(AIなし、外部呼び出しなし)なので、判定は再現可能であり、すべての数字は説明可能です。
cBots → Integrity(/quant/integrity)で開いてください。
計算内容
リターン系列(またはエクイティ/バランス曲線)と、それに到達するために試行したパラメータセット数が与えられると、アナライザーは以下をレポートします:
- Sharpe比率 — 期間別および年率化(時間の平方根)。
- Probabilistic Sharpe Ratio(PSR) — トレード記録の長さ、スキューネス、クルトーシスを考慮して、実際のSharpeがベンチマークを上回る確信度(Bailey & López de Prado、2012)。短い、または分布の裾が厚いレコードはそれを低下させます。
- Deflated Sharpe Ratio(DSR) — デフレートされたベンチマークに対して測定されたPSR:帰無仮説下でN個のランダムな試行の最善から期待されるSharpe(False Strategy Theorem)。試行した設定が多いほど、ハードルが高くなります — これがオーバーフィッティングをキャッチします。
- t統計量 平均リターンの。Harvey、Liu & Zhuに従うと、本物のエッジはt ≥ 3.0をクリアすべきです。教科書的な2.0ではなく。
- リターンのスキューネス / クルトーシス。これはPSR/DSR補正に含まれます。
判定
| 判定 | 意味 | ルール |
|---|---|---|
| Robust | エッジは実行した試行に耐えます。 | DSR ≥ 95% かつ PSR ≥ 95% かつ |t| ≥ 3.0 |
| Fragile | 統計的には存在していますが、説得力は不十分です — これだけでスケールアップしないでください。 | 両者の間 |
| Overfit | 実際のエッジではなく、選択バイアスの副産物の可能性が高いです。 | DSR < 90% |
すべての結果には平易な英語の根拠が付属しているため、「なぜ」は決して隠されません。
Probability of Backtest Overfitting(試行全体で)
試行のカウントを与えるのは良いことです;試行したすべての設定の実際のアウトオブサンプル系列を与えるのはさらに良いです。オプションの試行グリッドに貼り付けてください(行ごとに1つの系列)。cMindはCombinatorially-Symmetric Cross-Validation(Bailey、Borwein、López de Prado & Zhu、2015)を実行します:観測値をグループに分割し、半分をインサンプルとして選択するあらゆる方法について、インサンプル最良の設定をピックアップして、その勝者が下半分でアウトオブサンプルに落ちるかどうかをチェックします。Probability of Backtest Overfitting(PBO)は、勝者が一般化に失敗した分割の割合です。PBOが0に近いということは、最良の設定が本当に最良であることを意味します;PBOが0.5以上ということは、選択プロセスがノイズをピックアップしていることを意味します — 勝者がどれほど優れて見えたかに関わらず、判定はOverfitになります。
POST /api/quant/pbo
{ "trials": [[...], [...], ...] }
ネイティブcTrader Consoleオプティマイザーが登場するとき、cMindはその完全な試行サーフェスをここに自動的に供給します。
Trials — 重要な数字
Trialsはこのバックテストに到達する前にテストしたパラメータセット数です。1つの戦略をテストするのと10,000個をテストして最良のものを保持するのは、大きく異なります:後者は偶然により高いインサンプルSharpeを製造します。正直な試行カウントを与えることは重点全体です — デフレーションを上げ、「素晴らしい」バックテストをOverfitに移動させることができます。ネイティブcTrader Consoleオプティマイザーが登場するとき、cMindはスウィープの実際のグリッドサイズを自動的に与えます。
入力
- 周期的リターン — 期間ごとに1つの数字(例:
0.01= +1%)。少なくとも2つ。フィールドは入力時に検証されます:有効な数字をカウントし、数字ではないトークンにフラグを立て、少なくとも2つのクリーンな値が存在する場合にのみ分析を有効にします(試行グリッドは4つ以上の数字の2つのシリーズの準備ができるとオーバーフィッティングを評価を有効にします)。 - エクイティ / バランス曲線 — cMindは連続する単純なリターンをあなたのために導出します。
- バックテスト実行から直接 — コピー貼り付けなし。すべての完了したバックテストは、Backtestリスト行とそのインスタンス詳細ビューでシールドCheck backtest integrityアイコンを公開します;1回クリックすると、そのラン保存されたエクイティ曲線でLabを実行し、判定をダイアログに表示します。アイコンは、バックテストが完了してレポートを作成するまで無効化されるため、決してデッドコントロールではありません。内部ではこれは
POST /api/quant/integrity/backtest/{instanceId}で、保存されたレポートのエクイティ曲線を読み込みます。
API
POST /api/quant/integrity
{ "returns": [0.006, 0.004, 0.006, ...], "trials": 250 }
判定、すべてのメトリクス、および根拠を返します。POST /api/quant/integrity/backtest/{id}は、あなたが所有する完了したバックテストで同じ分析を実行します。
信頼できる理由
統計は、ドメインコア(Core.Quant)の純粋関数で、ゼロインフラストラクチャ依存関係があります — ネットワークの不具合で停止することはできず、公開されたフォーミュラに対するゴールデンベクトル単体テストでピン留めされています。法線CDF/逆は閉形式の近似(Abramowitz-Stegun / Acklam)であるため、同じ入力は常に同じ判定を生成します。