トレード戦略の過剰最適化:見抜き方と避けるための実践法
トレード戦略の過剰最適化(カーブフィッティング)を解説。パラメーター過多、データスヌーピング、インサンプルとアウトオブサンプル、ウォークフォワード、頑健性チェック、危険信号まで。
チャート上では見事に見えるのに実運用でがっかりする戦略を作る、最も確実な方法のひとつが過剰最適化です。検証ツールが手軽で速くなるほど、この罠にはまりやすくなります。この記事では、過剰最適化とは何か、なぜ起こるのか、そして本物のエッジとノイズを見分けるのに役立つチェックを解説します。
過剰最適化とは
過剰最適化(トレードの世界ではカーブフィッティングとも呼ばれます)とは、戦略が繰り返し現れるパターンではなく、過去データのノイズを学習してしまうことです。その結果、作成に使ったデータでは素晴らしい成績を出し、新しいデータでは振るいません。
価格データには少しの「シグナル」と大量のランダムなノイズが含まれています。どの過去期間にも一度きりの出来事があります。中央銀行のサプライズ発表があった日、異例のボラティリティが続いた週、特に長いトレンドなどです。まさにそうした出来事を利用するよう調整された戦略は、後から見れば完璧に見えますが、それらの出来事が同じ形で繰り返されることはありません。
パラメーターが多すぎる
戦略のパラメーターはどれも調整できる「つまみ」です。移動平均の期間、ストップ幅、開始時刻、インジケーターのしきい値など。パラメーターが2つなら過去に合わせ込むのは難しいですが、10個もあればほぼどんなデータ系列でも「説明」できてしまいます。
仮の例です。37本の移動平均、23ティックのストップ、エントリーは09:47から11:12の間のみ、しかもRSIが41未満のときだけ、という戦略があるとします。どの数字も過去の結果が最も良かったから選ばれたものです。肝心の問いは、なぜ35や40ではなく37なのか、です。「それが一番うまくいったから」以外にまともな答えがなければ、それは警告サインです。
経験則:パラメーターが少なく、検証のトレード数が多いほど、結果は信頼できます。
データスヌーピング
個々の戦略のパラメーターが少なくても、同じデータで多くのアイデアを試せば問題は再発します。100通りのバリエーションを試せば、純粋な偶然でいくつかは素晴らしく見えるでしょう。これをデータドレッジング、またはデータスヌーピングと呼びます。
意図せず入り込むこともあります。アイデアを試し、うまくいかず、少し変えて再検証し、それを繰り返す。50回も繰り返せば、自動最適化を一度も走らせていなくても、データはすでに戦略に「漏れ込んで」います。試したバリエーションの数を記録しておきましょう。その数は結果とほぼ同じくらい重要です。
インサンプルとアウトオブサンプル
過剰最適化に対する基本の道具は、データを分けることです。
- インサンプル:戦略の開発と調整に使うデータ。
- アウトオブサンプル:取っておき、開発中は一切触れないデータ。
戦略を「凍結」して初めて、アウトオブサンプルのデータで動かします。成績が崩れたら、過剰最適化の可能性が高いでしょう。重要なのは、そこから戻って戦略を変え、同じデータで再検証したら、それはもう本当のアウトオブサンプルではないという点です。
ウォークフォワードテスト
ウォークフォワードはこの考え方を発展させたものです。過去データを連続した期間に区切り、各ステップで1つの期間で調整し次の期間で検証し、両方の期間を前にずらして繰り返します。
- 1年目で調整し、続く四半期で検証する。
- 前にずらし、新しい期間で調整して、その次の四半期で検証する。
- すべての検証期間をつなげて1本の曲線にする。
つなげた曲線は、ときどき再調整しながら未知の未来を取引するという現実的な状況を模擬しています。全期間で最適化した結果よりかなり悪く見えるなら、それは重要な情報です。
頑健性チェック
データの分割以外にも、誰でもできる簡単なチェックがいくつかあります。
- パラメーターの近傍:各パラメーターを少し上下に動かしてみる。頑健な戦略は広い範囲で似た結果を示します。1つの値でしか機能せず「隣」の値が負けるなら、たまたまの山を見つけただけです。
- 関連市場:NQで機能するなら、ESではどうか。同じである必要はありませんが、完全に崩れるなら疑問が残ります。
- 異なる時間足:時間足を少し変えただけで、勝てる戦略が負ける戦略に変わるべきではありません。
- 異なる期間:年ごとに分けて確認する。利益がある短い期間だけから来ていないか。
- 厳しめのコスト:スリッページを増やし、手数料を上げる。本物のエッジならそれに耐えるはずです。詳しくはバックテストと実運用の違いをご覧ください。
- ベストトレードを除く:最も利益の大きい5つのトレードを取り除く。利益がすべて消えるなら、その戦略は運に頼っています。
戦略が過剰最適化されているサイン
- 苦しい時期がほとんどない、ほぼ完璧に滑らかな資産曲線。
- 妙に細かい値を持つ多数のパラメーター。
- パラメーター数に比べてトレード数が少ない。
- ごく狭い設定範囲でしか良い成績が出ない。
- 過去データを少し追加するたびに結果が大きく変わる。
- 過去の特定の損失を「修正」するために特別なルールが追加されている。
- インサンプルとアウトオブサンプルの差が大きい。
まとめ
- 過剰最適化とはパターンではなくノイズを学ぶことであり、素晴らしく見えるのは後から振り返ったときだけです。
- パラメーターを少なく、トレード数を多くすることが基本的な防御です。
- アウトオブサンプルのデータを確保し、戦略を凍結するまで触れないこと。
- ウォークフォワードとパラメーター近傍のチェックは、たまたまの山を暴きます。
- すべてのチェックを通過した戦略でも、フォワードテストと慎重なポジションサイジングが必要です。
どんな検証も将来の成功は保証しないため、検証の後の段階も同じくらい重要です。WeCoreでは、戦略やアラートを自動リスクルール付きのシミュレーションモードで動かせるので、ライブ口座をリスクにさらす前に新しいデータでの挙動を確認できます。全体的な入門はアルゴリズム取引とはをご覧ください。