EAバックテストの限界とは?
直接的な答え
EAバックテストとは、過去の市場データを使ってエキスパートアドバイザー(EA)を実行し、過去にどのような成績だった可能性があるかを推定するプロセスです。主な限界は不確実性です。過去にうまくいったことが後で失敗するのは、将来の価格、流動性、ボラティリティ、そして取引上の摩擦が異なり得ること、またテストのセットアップが実際の執行を反映していない可能性があることが理由です。
メカニクスと、何が前提として扱われるか
バックテストでは通常、(1) EAのルール、(2) 過去の価格データ、(3) 取引がどのように約定されるかについての一連のモデリング前提、の3つを用います。前提には、スプレッドや手数料がどう振る舞うか、表示されている価格で約定されるのか、それとも遅延の後に約定されるのか、そしてスリッページがどのように扱われるか、といった内容が含まれます。EAのロジックが安定していても、テストはテスト環境がどれだけ現実的かに左右されます。
考え方としては、「安定したメカニクス」と「変動する条件」を分けて捉えると役立ちます:
- 安定したメカニクス:EAの意思決定ルールと、注文生成ロジック。
- 変動する条件:市場レジーム、流動性、ビッド・アスクスプレッド、執行スピード、そして実際に発生する取引コスト。
バックテストが変動する条件をあまりに理想的に扱う(たとえば、チャートに表示されているのと同じスプレッドを使う、あるいはスリッページを無視する)場合、EAが実際の制約のもとで取引するときに起きることと、シミュレーション結果が体系的に異なる可能性があります。
失敗し得る理由の証拠または例
過去のバーを使ったバックテストで強いリターンが示されているとします。ライブ取引では、少なくとも次の3つのカテゴリの違いが現れることがあります:
- データの違い: 過去のフィードは、ティックごとに存在した正確な価格の経路を表していないかもしれません。
- 執行の違い: スリッページ、部分約定、またはレイテンシーにより、約定はより不利になる可能性があります。
- 環境の違い: EAが依存しているボラティリティやトレンドの条件が、その後変化するかもしれません。
「間違った」コーディングがなくても、これらの違いによって、取引のタイミングや、エントリー/イグジットの順序が変わり得ます。これは、注文配置や市場のミクロ構造に敏感な戦略にとって非常に重要です。
限界とリスク
主な失敗パターンには次のようなものがあります:
- 過去への過剰適合: EAは過去のパターンに最適化されているように見える一方で、将来の市場は異なるダイナミクスに従うことがあります。
- 先読みバイアスと隠れた前提のリーク: テスト設定が偶然にも、EAが当時持っていなかったはずの情報を使ってしまう可能性があります。
- サバイバーシップ(生存者)バイアスと選択バイアス: 有利に見えた期間を選んでテストしている場合、結果は一般化できないかもしれません。
- コストと執行の過小評価: 手数料、スプレッド、スリッページの小さな違いでも、特に頻繁に取引する戦略では、収益性に大きく影響する可能性があります。
重要な限界は、「過去の関係性」と「将来の結果」の不一致です。過去のパフォーマンスは多くの一時的な条件を反映している可能性がありますが、それらの条件が継続する証拠にはなりません。
検証、または次の質問
バックテストがあなたに何を伝え、何を伝えられないのかを独立して確かめるには、テストセットアップが現実的な取引制約に合っているかに注目してください。具体的には、データ品質、スプレッドと手数料の扱い、そしてスリッページや注文約定のタイミングがどのようにモデル化されているかです。EAのパフォーマンスが非常に特定的な前提に大きく依存しているなら、そのバックテストは証拠としての有用性が低くなります。
良い次の質問は次のようになります:「どの入力と執行前提が取引結果を最も変えるのか、そしてそれらの前提を妥当な範囲で変えたときに結果はどれほど敏感なのか?」です。
DOCUMENT END