失敗ログ

PFは良かったのにフォワードで止めたEAの失敗ログ

バックテストではPFが良かったのにフォワードで止めたEAの原因を知りたい

Read this for 壊れた条件を、次の検証に使う。

失敗ログは反省文ではなく、過剰最適化や運用停止の条件を先に見つけるための材料です。

Category 失敗ログ

PF

バックテストでPF1.8、最大DD5%以内、取引回数十分。数字上は「いける」と判断したEAが、なぜフォワードで2ヶ月で停止に至ったのか。

PFは良かったのにリアルで崩れたEAは、バックテストでは見えなかった落とし穴にハマっていることがあります。スプレッド変動、過剰最適化、利益の偏り。

この記事は、私自身が見落としていた落とし穴と、次に活かすための失敗ログです。同じミスを繰り返さないために、何を確認すべきかを見つけてください。

結論:フォワードでEAを止めた3つの理由

検証に時間をかけたEAをフォワードで止めるのは辛い判断です。しかし、以下の3つの理由が明確になったため、早期撤退を決めました。

  1. スプレッド変動をバックテストに反映できていなかった 固定スプレッドでテストしていたため、早朝や指標時のスプレッド拡大がPFを大幅に悪化させました。
  2. パラメータを過剰に最適化していた ボリンジャーバンドやRSIの期間を0.1刻みで最適化し、バックテストのPFを最大化していました。フォワードでは全く機能しませんでした。
  3. 取引回数の「質」を見ていなかった 月間取引回数は十分でしたが、利益の80%以上が特定の数日間に集中。それ以外の日はほぼ損益ゼロか微損でした。

EA概要

この失敗ログの対象となったEAの概要は以下の通りです。

何が壊れたか:バックテストで見えなかった落とし穴

壊れた点1: スプレッドの罠

バックテストはスプレッド固定0.5pipsで実行していました。しかし、実際の運用ではスプレッドが常に一定ではありません。

フォワードで確認したところ、以下のような状況でした。

このEAはM15で動いており、早朝にもエントリーしていました。結果として、早朝の取引はほぼすべてスプレッド負けとなり、PFを大きく押し下げていました。

固定スプレッドでのバックテストがリアルで崩れる理由は、こちらの記事で詳しく解説しています。

壊れた点2: 過剰最適化の罠

バックテストで以下のパラメータを最適化していました。

これらのパラメータを標準値に戻すと、PFが1.82から1.15にまで下がりました。つまり、バックテストのPFの大部分が「特定の期間に最適化されすぎたパラメータ」に依存していたのです。

過剰最適化は、バックテストでは良い数字が出ても、フォワードで機能しない典型的な原因です。過剰最適化のチェックリストも参考にしてください。

壊れた点3: 利益の偏り

月間利益の内訳を詳細に確認したところ、このEAの構造的な問題が見えてきました。

つまり、このEAは「月に数日だけ機能するEA」であり、その数日が来なければ損失が積み上がる設計だったのです。PFが高いからといって、必ずしも安定した利益が得られるわけではありません。PFの数字だけでは見えないリスクもあります。PFは高ければよい数字ではないことを改めて痛感しました。

なぜ止めたか:期待値とリスクの判断

フォワード2ヶ月間の結果は以下の通りです。

バックテストのPF 1.82とフォワードのPF 0.72〜0.85の乖離は、あまりにも大きすぎました。

「もう少し回せば改善するかもしれない」という期待もありましたが、以下の理由で止める判断をしました。

検証にかけた時間は無駄ではありません。この失敗から学ぶことで、次のEA開発や選定の精度を高めることができます。

次に何を見るか:失敗から学んだ確認項目

この失敗から学んだ、EAの検証で必ず確認すべき項目は以下の通りです。

  1. バックテストは必ず「Every tick based on real ticks」モードで実行する 固定スプレッドでのテストは初期スクリーニングだけに使い、リアルなスプレッド変動を反映したテストを重視します。
  2. パラメータを標準値に戻してもPFが1.2以上あるか確認する 標準値でダメなEAは、最適化で盛っているだけの可能性が高いです。過剰最適化を避けるための重要な指標となります。
  3. 月別・日別の利益分布を確認する 利益が特定の日に集中していないか、安定して収益を上げられる構造かを見極めます。
  4. 早朝・指標時のトレードを分離して成績を確認する これらの時間帯だけで損失が出ているEAは、時間帯フィルターの導入を検討するなど、戦略の見直しが必要です。
  5. フォワードは最低3ヶ月、できれば6ヶ月で判断する 2ヶ月は短いですが、バックテストとの乖離が明確なら早めに止める判断も重要です。期待値が低いEAに資金と時間を使い続けるのは得策ではありません。期待値とスリッページ耐性も考慮に入れるべきです。

自分の検証スタンス:失敗をログに残す意味

失敗したEAを「失敗」で終わらせるのではなく、「何を見落としたか」を記録として残す。これは、同じミスを繰り返さないための重要なプロセスです。

このEAの検証に使った時間は約40時間。その時間自体は取り返せませんが、この失敗ログが次のEA開発や選定で同じ落とし穴を避けられるなら、十分に意味があると考えています。

関連して読む

PFは高ければよい数字ではない

プロフィットファクター(PF)の真の意味と、数字の裏に隠されたリスクを解説します。

過剰最適化チェックリスト

バックテストの数字を過信しないための、EAの過剰最適化を見抜くチェックリスト。

スプレッド固定バックテストがリアルで崩れる理由

固定スプレッドでのバックテストが、実際の運用でなぜ機能しないのかを深掘りします。

期待値とスリッページ耐性

EAの長期的な優位性を測る期待値と、リアルな約定環境で重要なスリッページ耐性について。

本記事は個人の検証失敗の記録であり、投資助言ではありません。EAの検証方法は個人の判断で行ってください。バックテスト結果は将来の成績を保証するものではありません。

Failure log 壊れた条件を、次の検証に使う。

失敗ログは反省文ではなく、過剰最適化や運用停止の条件を先に見つけるための材料です。

免責

本記事は個人の検証メモであり、投資助言ではありません。バックテスト結果は将来の成績を保証しません。海外FXや自動売買には、法規制・レバレッジ・スプレッド拡大・約定遅延・スリッページなどのリスクがあります。条件は変わるため、最新情報は各公式ページで確認してください。