コレクション/12 部/合計 480 分

Backtesting Without Fooling Yourself

A step-by-step path from what your backtest really optimizes to proving an edge survives overfitting, multiple testing, and live execution. Read top to bottom - each part builds on the last.

01

目的関数設計:最適化する指標が、密かにあなたの戦略を選んでいる

「最良の」戦略を探すには、まず「最良」を定義しなければならない - - そしてそのスカラーが密かに勝者を選んでいる。既知のエッジを仕込んだ合成データ(600シード、T=2000、閾値80通り)において、素朴な1トレードあたりシャープレシオは宝くじを王座に据える:56%のシードでエクスポージャー5%未満の勝者を選び、57%で退化する - - 最も極端なシードでは、8回のトレードがインサンプルでシャープレシオ21.09を記録し、アウトオブサンプルでは0.13まで崩壊する。誠実な修復はほとんど退屈なものだ:タイムライン全体で測定すればよく、これは決して退化しない(アウトオブサンプル1.71)。トレード数(conf_k)による縮小とエクスポージャーの下限は1トレードあたりの指標を事後的に補修できるが、完全に修復してもフルタイムラインのシャープレシオに追いつくだけで(1.70 対 1.71)、決してそれを上回ることはない。バックテストの中のグッドハートの法則、制御された既知の正解とともに。

02

マルチタイムフレーム・バックテストにおける先読み排除の証明:未来を揺さぶり、過去がそれを見ていないことを証明する

マルチタイムフレーム・バックテストは、最終終値がまだ存在しない形成中の上位足バーを通じて未来を漏らす。コードレビューだけで確信は得られない - テストするしかない。私たちはライブボットの確定足(closed-bar)ルールを正確に再現し、未来シフト・プローブによって漏れがないことを証明する:未来のすべてのバーを揺さぶり、過去のすべてのシグナルとトレードがビット単位で不変であることを確認する。25/25の整合性チェックに合格し、そのプローブには実効性がある。

03

先読みバイアス:1本のバーのミスが純粋なノイズからSharpe 15を作り出す仕組み

バックテストを静かに水増しする微妙な先読みリーケージを対象にした、制御実験による検証。本物のエッジがゼロでも、同一バー約定は純粋なノイズから年率Sharpe +14.8を作り出す。1バー分のインジケーター先読みでも+4.8。リーケージの分類、実測された規模、そして損失を出す前に各リーケージを検出する方法。

04

ウォークフォワード最適化:唯一の誠実な戦略テスト

単一のトレイン/テスト分割がオーバーフィッティングから保護しない理由、ウォークフォワード最適化がパラメータの堅牢性を体系的に検証する方法、そして21パラメータでPnL@ML +3342%の戦略がWFOなしでは時限爆弾である理由。

05

プラトー分析:堅牢な最適解とオーバーフィッティングを見分ける方法

最適な戦略パラメータを見つけることは仕事の半分に過ぎない理由。安定したプラトーと脆弱なピークを視覚的・定量的に見分ける方法、そしてOptunaの等高線プロットが最適化された戦略を本番投入する前に必須のステップである理由。

06

マルチシンボルバリデーション:全ペアで戦略をテストする

ETHUSDTで最適化された戦略がアルトコインで失敗する理由。ペアグループ(ブルーチップ、ラージキャップ、草コイン)にわたる適切なテスト方法と、クロスシンボル堅牢性スコアの十分な基準値。

07

モンテカルロ・ブートストラップ:10行のコードでバックテストの信頼区間を得る方法

バックテストの単一点推定がなぜ危険な錯覚なのか。モンテカルロ・ブートストラップが2秒の計算でPnLとMaxDDの95%信頼区間を提供する方法、そしてこれが本番環境で戦略を稼働させる前に必須のステップである理由。

08

バックテスト過学習の確率:あなたのサーチはコイン投げに勝ったか?

デフレーテッド・シャープレシオは勝利した戦略の値段を付ける。PBOはその戦略を選んだサーチの値段を付ける。Combinatorially Symmetric Cross-Validationは1000x200のパフォーマンス行列に対してC(16,8) = 12,870通りの訓練/テスト分割を実行し、こう問う:インサンプルの勝者はアウトオブサンプルで下位半分に落ちるか?ほとんどの人が見逃す落とし穴 - - PBOの帰無仮説は1ではなく0.5だ。200個のゼロエッジ戦略において、インサンプルの最良年率シャープレシオ1.98はアウトオブサンプルで0.06まで崩壊し、PBO = 0.476:コイン投げであり、完全な過学習だ。本物のエッジ(年率シャープレシオ2.38)を仕込むとPBOは0.001まで下がり、インサンプルの3.73はアウトオブサンプルの2.34まで生き残る。純粋なランダムウォーク上の移動平均グリッドにもアウトオブサンプルのスキルはない - - 60個の行列にわたって平均したPBOは0.463で、統計的に帰無仮説と区別がつかない - - そして1つの代表的な行列では、その蜃気楼が鮮やかに現れる:最良インサンプルシャープレシオ2.33は、アウトオブサンプルの中央値-0.22まで崩壊し、PBO 0.573、63%の確率で損失となる。

09

デフレーテッド・シャープレシオ:バックテストの「勝者」のうち、多重検定を生き延びるのは何割か?

パラメータサーチは幸運を製造する機械である。純粋なノイズ - - 真のエッジがゼロの戦略1,000個 - - の上で、最良の年率シャープレシオは平均1.63に達し、素朴な有意性検定は100%の確率で「発見」を宣言する。私たちは制御された既知の正解を構築し、デフレーテッド・シャープレシオ、Harvey-Liuヘアカット、Whiteのリアリティチェックが誠実さを取り戻すことを示す:偽発見は1.000から0.001-0.057まで下がり、ノイズ天井を超える本物のエッジは検出力~1で維持される - - そして生のDSRが過剰にデフレートし、判定を1つではなく有効試行数推定量の帯全体で読む必要がある、現実の落とし穴(相関したグリッド)が1つある。

10

バックテストとライブの一致性:なぜあなたのボットはバックテストと異なる取引をするのか

バックテストとライブトレーディングの乖離に関する完全な分類体系:スリッページや部分約定からコードベースの非同期化まで。一致性を達成するためのアーキテクチャパターン、共有コアモジュールのPython例、本番環境向けモニタリングチェックリスト。

11

誠実なネガティブ結果:数万回のバックテスト、主要5銘柄、頑健なエッジはゼロ

サーチと過学習をめぐる一連の記事の締めくくり - - そしてそれはネガティブな結果、すなわち正しい結果で終わる。ETHUSDT単一銘柄のデュアルタイムフレームサーチは、アウトオブサンプルで+16.35%、手つかずのホールドアウトで+2.62%に値する設定を見つけた。だが約37,000回の試行を考慮したデフレーテッド・シャープレシオは、それを0.00までデフレートした。主要5銘柄(ETH/BTC/SOL/BNB/XRP、各約118万本の1分足)に対してアウトオブサンプルの中央値で選抜する銘柄横断のパスが、とどめを刺す:デュアルはDSR 0.24 / PBO 0.264、トリプルはDSR 0.14 / PBO 0.327 - - どちらもゲートに不合格。チャンピオンが利益を出すのは5銘柄中1つで、残りはマイナス。反過学習の装置はこのためにある:ノイズの最良をアルファとして出荷するのを止めるために。

12

カスケード戦略:優先実行とフォールバック補完

「幻想なきバックテスト」シリーズの完結編。N個の戦略×M個のペアからオーケストレーターを構築する方法、優先順位とフォールバック補完によるカスケードモードの実装、dual_sizeの選択、そして戦略ポートフォリオのPnLを単純合算ではバックテストできない理由。