記事「バックテスト過剰適合を防ぐ統合検証パイプライン ― V-in-V・CPCV・CSCVによる堅牢な戦略検証」についてのディスカッション

 

新しい記事「バックテスト過剰適合を防ぐ統合検証パイプライン ― V-in-V・CPCV・CSCVによる堅牢な戦略検証」はパブリッシュされました:

金融時系列データに対して標準的なウォークフォワード法やk分割交差検証が、なぜ実際以上に良好な結果を示してしまうのかを解説します。そのうえで、この問題を解決するための実践的な手法を紹介します。V-in-V (Validation-within-Validation)は、データを厳密に分割し、アンカー型ウォークフォワードによる検証を実施します。CPCV (Combinatorially Purged Cross-Validation)は、情報漏洩を防ぐために-パージとエンバーゴを適用し、複数の検証パスの結果を統合して評価します。さらにCSCV (Combinatorially Symmetric Cross-Validation)は、バックテスト過剰適合確率(PBO, Probability of Backtest Overfitting)を定量的に測定します。これらを組み合わせることで、異なる市場レジームに対する戦略の頑健性と、戦略選択の信頼性を整合的な評価フレームワークで評価できるようになります。

アルゴリズムトレーダーであれば、誰もが一度は「出来すぎている」と感じるバックテスト結果に遭遇したことがあるでしょう。エクイティカーブは右肩上がりの美しい階段を描き、シャープレシオは驚異的です。ドローダウンは浅く、しかも短期間で回復しています。

ところが、その戦略を実運用に移した途端に機能しなくなります。こういったケースは決して珍しくありません。

この現象は、定量分析の分野ではあまりにも頻繁に見られるため、独自の呼び名まで付けられています。その元凶は、ほとんどの場合、何らかの形の過剰適合です。つまり、アルゴリズムが将来にも通用する市場構造を学習したのではなく、特定の過去データに含まれる偶然のノイズを学習してしまったのです。しかし、過剰適合は単一の現象ではありません。複数の異なる経路で発生し、それぞれに異なる対策が必要です。そのため、最も一般的な「学習データとテストデータを単純に分割する方法」だけを採用していても、他の種類の過剰適合には無防備なままになります。

本記事では、アルゴリズム売買戦略の開発において過剰適合を防ぐための、最も厳密な手法として知られるTimothy Mastersが提唱したV-in-V (Validation-within-Validation)、Marcos López de Pradoが開発したCPCV (Combinatorially Purged Cross-Validation)、 BaileyとLópez de Pradoが提案したCSCV (Combinatorially Symmetric Cross-Validation)の3つを紹介します。これらはそれぞれ異なる失敗要因に対処するための手法です。そして3つを組み合わせることで、定量分析における代表的な統計的自己欺瞞を包括的に防ぐことができます。


作者: Patrick Murimi Njoroge

 
この記事の技術的な深みは称賛に値するものの――特にCPCVやパージ/エンバーゴに焦点を当てている点は評価できる――、ほとんどの小口トレーダーが陥ってしまう重大な「実装上のギャップ」が存在する。 手動で実装される「統合検証パイプライン」の根本的な問題は、 リサーチャーの過学習という 新たな層を生み出してしまう点にある 。 トレーダーがデータパーティション、パージウィンドウ、エンバーゴ期間の設定を担当する場合、しばしば(無意識のうちに)「検証済み」の結果が好ましいものに見えるまで、これらのパラメータを微調整してしまいます。これは、より高い抽象化レベルにおける過学習に他なりません。さらに、これらの複雑な統計手法をMQL5で直接実装することは、エラーが発生しやすいものです。 パージロジックにおけるたった一つのミスや、アンカー付きウォークフォワードウィンドウのわずかな重複でさえ、壊滅的なデータリークを引き起こし、誤った安心感を与えてしまう可能性があります。 機関投資家の世界では 、「手動パイプライン」から の自動テストスタジオ へと移行しつつあります。 その目的は、単にパイプラインを持つことではなく、検証プロセスから人的要素を完全に排除した、標準化され、実戦で実証済みの環境を構築することにあります。その自動化と標準化がなければ、たとえ最も「統一された」パイプラインであっても、単なるp-ハッキングのためのツールに過ぎません。
 

ああ、私の意見は遅れてしまいましたね。ウォーレン・ギディングスさんがすでに的確な指摘をされています。;-)

具体的には、この記事では非常に重要なメタ最適化が裏で省略されている点について触れておきたい。すなわち、インサンプル・ウィンドウとフォワード・ステップサイズの調整だ。ウォークフォワードは、ローリングやアンカーによる制限だけでなく、クラスター・ウォークフォワードによる最適化も存在するからだ。

したがって、記事で説明されたすべての手法は、「いわば」サイズに関するIS/OOSの組み合わせという別の直交次元で再適用し、テスト期間で検証されるべきです。

 
素晴らしい仕事ですね!ありがとうございます!
 
Warren Giddings 移行しつつ あります。 目標は単にパイプラインを持つことではなく、検証プロセスから人的要素を完全に排除した、標準化され、実戦で実証済みの環境を構築することにあります。その自動化と標準化がなければ、たとえ最も「統一された」パイプラインであっても、単なるp-ハッキングのためのツールに過ぎません。
ウォーレンさん、

ご意見をいただきありがとうございます。ご指摘いただいたすべての点に全面的に同意します。そして、そのような自動化されたパイプラインの構築こそが、私の連載記事

MetaTrader 5 機械学習ブループリント』シリーズの核心です。この記事は、私がここで取り上げたような過学習についてこれまであまり考えたことがなかった読者の方々に、新たな気づきを与えることを意図したものです。そのため、実際に『MLブループリント』シリーズの他の記事とは別個のものとして作成しました。

 
Stanislav Korotky #:

あ、私の感想は遅れてしまいましたね。ウォーレン・ギディングスさんがすでに的確な指摘をしていましたから。;-)

具体的には、この記事では非常に重要なメタ最適化が裏で省略されている点について触れておきたいと思います。それは、インサンプル・ウィンドウとフォワード・ステップサイズの調整です。ウォークフォワードには、ローリングやアンカーによる制限だけでなく、クラスター・ウォークフォワードによる最適化もあるからです。

したがって、記事で説明されたすべての手法は、「いわば」サイズに関するIS/OOSの組み合わせという別の直交次元で再適用し、テスト期間で検証されるべきです。

スタニスラフさん、

まったくその通りです。ウォーレンにも話した通り、この記事は過学習を軽減するために活用できる概念の紹介を目的としています。これらの概念については、私の『MetaTrader 5 機械学習・ブループリント』シリーズ でより詳しく取り上げる予定です。
 
Vasiliy Sokolov #:
素晴らしい仕事ですね!ありがとうございます!
どういたしまして!お時間を割いて読んでくださり、ありがとうございます。