ウォークフォワードテスト:EA を正直に検証する方法
要約 — 最適化済みのバックテスト 1 本は、トレードの世界で最も簡単に作れてしまう数値です。インサンプルで最適化し、オプティマイザーが見ていないデータで検証するウォークフォワードテストの手順、結果の読み方、そしてそれでも分からないことを解説します。
ウォークフォワードテスト:EA を正直に検証する方法
1 回のバックテストが答えるのは 1 つの問いだけです。この設定そのものが、この履歴そのものの上でどう動いたか、という問いです。これは有用ですが、同時にトレードの世界で最も簡単に作れてしまう数値でもあります。嘘をつくことによってではなく、最適化によってです。同じ 5 年間に対して十分な数のパラメーターの組み合わせを走らせれば、そのうちのどれかは見事な成績に見えます。その見事さの正体はしばしばカーブフィッティングであり、設定が相場について何かを学んだのではなく、過去を暗記しただけなのです。
ウォークフォワードテストは、これに対する標準的な防御策です。考え方は単純で、履歴の一部で最適化し、オプティマイザーが一度も見ていない部分で検証するというものです。EA がチューニングに使ったデータでしか機能しないのであれば、それはライブ口座ではなくテスターの段階で判明します。
ウォークフォワードテストの進め方
- 履歴を分割する。 たとえば 5 年分のデータを用意します。これを、最適化に使うインサンプル期間と、伏せておくアウトオブサンプル期間に分けます。よくある分割は 70/30、あるいはインサンプル 12 か月のあとにアウトオブサンプル 3 か月を続けるローリングウィンドウです。
- インサンプルだけで最適化する。 パラメーターのスイープ(ストップ幅、セッションフィルター、ATR 乗数など、その EA が公開しているもの)を、厳密にインサンプル期間だけで実行します。設定は最高利益の 1 点ではなく、頑健性で選びましょう。近隣の値も良好に機能するパラメーターのほうが、孤立したスパイクより優れています。
- アウトオブサンプルには触れずにテストする。 選んだ設定を、伏せておいた期間にちょうど 1 回だけ適用します。再チューニングも、二度見もなし。この結果だけが、フォワードでの成績についての唯一正直な推定値です。
- ウィンドウをずらす(任意だが、そのほうが良い)。 両方のウィンドウを前方にスライドさせて繰り返します。アウトオブサンプルの区間をつなぎ合わせれば「ウォークフォワード資産曲線」が得られます。これは、実運用で再最適化を続けていたら何が起きていたかのシミュレーションです。
結果の読み方
- アウトオブサンプルがインサンプルとおおむね一致する(たとえばプロフィットファクターの差が 20〜30 パーセント以内):エッジは本物らしいと判断できます。デモテストに進みましょう。
- アウトオブサンプルはかなり弱いが、それでもプラス: 通常のことです。実運用の成績はほぼ常にインサンプルより悪くなります。見栄えの良い数値ではなく、アウトオブサンプルの数値からリスクサイズを決めてください。
- アウトオブサンプルがマイナスに反転する: インサンプルの結果はカーブフィットでした。伏せた期間がプラスに転じるまで再最適化して「直す」のはやめましょう。再実行のたびに情報が漏れ、アウトオブサンプルのデータは静かにインサンプルのデータへと変わっていきます。その設定は棚上げにするか、ロジックを考え直してください。
この最後の罠は強調しておく価値があります。アウトオブサンプル期間は一度きりの資源です。のぞき見て、調整し、ループで再テストするのであれば、それは手順を増やしただけでデータセット全体に対して最適化しているのと同じであり、ウォークフォワードという看板は単なる飾りになります。
ウォークフォワードにできないこと
正直な但し書きをひとつ。ウォークフォワードテストはカーブフィッティングのリスクを減らしますが、マーケットリスクをなくすものではありません。きれいなウォークフォワードを通過した戦略でも、相場のレジームが変わったり(通貨ペッグの崩壊、ボラティリティの消失、セッションの流動性の移動)、ブローカーのスプレッドやスリッページがテスターの前提と異なったり、単純にエッジが減衰したりすれば、実運用では失敗し得ます。過去の成績は、たとえ正直に計測された過去の成績であっても、将来の成果を保証しません。ウォークフォワードが教えてくれるのは、エッジが空想ではなかったということだけであり、そのエッジが永続することまでは教えてくれません。
だからこそ当社は、負けたものも含め、すべての戦略について 5 年分のフルの結果をプルーフページで公開しており、ストアにはフルバックテストが最低基準をクリアした EA だけを掲載しています。検証手法が意味を持つのは、失敗が見える場所に残っているときだけです。テストを走らせるプラットフォームをまだ比較検討中であれば、MT5 のマルチスレッドテスターは MT4 よりもパラメータースイープが劇的に高速です。プラットフォーム比較の解説と、具体的な手順については MT4 バックテスト実践ガイドをご覧ください。
そのまま真似できる最小ワークフロー
- オプティマイザーに触れる前に、直近 12 か月をアウトオブサンプルとして確保する。
- 古いほうのデータだけで最適化する。パラメーターはピークではなく、安定した台地から選ぶ。
- 伏せた期間は 1 回だけ走らせる。意見を形成する前に結果を書き留める。
- 通用するようであれば、デモで 4〜8 週間フォワードテストし、約定をテスターと比較する。
- 実運用のリスクサイズはアウトオブサンプルのドローダウンから決め、さらにマージンを足す。実運用のほうが悪くなるからです。
FAQ
-
q: アウトオブサンプル期間には、どれくらいのデータが必要ですか?
-
a: 意味のあるトレード数が得られるだけの量です。目安としては、最低 30 トレード、かつ全履歴の 20〜30 パーセント以上。トレードが 8 回しかないアウトオブサンプル期間は、良い意味でも悪い意味でも何も証明しません。
-
q: アウトオブサンプルの結果がインサンプルより悪いのですが、テストは失敗ですか?
-
a: 必ずしもそうではありません。ある程度の劣化は想定内であり、正常です。失敗のサインは、プラスからマイナスへの反転、あるいはインサンプルが示唆した水準をはるかに超えるドローダウンです。伏せた期間は、最適化済みのカーブと一致するかどうかではなく、生き残れるかどうかで判断してください。
-
q: EA のコードを変更したあとに、ウォークフォワードをやり直せますか?
-
a: 本質的なロジックの変更(新しいフィルター、異なるイグジット)であれば、新たなテストを行う根拠になります。できればアウトオブサンプルの分割も新しくしましょう。パラメーターを少しずつ動かしながら同じ伏せ期間を繰り返しテストするのは、新しいテストではありません。裏口から漏れ出した最適化です。
リスク開示: レバレッジを用いた FX および CFD 取引には高い損失リスクがあり、預託金を超える損失が生じる可能性があります。バックテストとウォークフォワードテストはシミュレーションであり、将来の成果を保証するものではありません。本記事の内容は投資助言ではありません。実際の資金を投じる前に、必ずデモ口座で検証してください。