EAのすすめ⑦:バックテストとフォワードテストの違いについて思うこと、なぜ本番で負けるのかを考えてみる
皆さん、おはようございます。れんみぃです。
7つ目の記事です。前回(⑥)でEA選びの評価基準について書いたばかりなので、今回は続きとして「バックテストの数字をどこまで信用していいのか」をもう少し掘り下げたいと思います。
前回の記事はこちら。
https://www.gogojungle.co.jp/finance/navi/articles/117629
さて、EA界隈でよく聞く悩みがこれです。
「バックテストでは勝ってたのに、リアルで動かしたら全然ダメだった」
この現象、なぜ起きるのか。今回はそれを掘り下げていきたいと思います。
バックテストとは?
まず整理しておきましょう。
バックテストとは、過去の価格データを使ってEAがどれだけ稼げたかをシミュレーションすることです。
MT4/MT5のストラテジーテスターという機能を使えば、「このEAを2010年〜2025年の期間で動かしたら、こんな成績でした」という結果を数分で出すことができます。
開発段階では欠かせない作業ですし、EAを販売するときも「バックテスト結果」として掲載されることがほとんどです。
フォワードテストとは?
フォワードテストとは、実際の相場でEAを動かして成績を記録することです。
リアルタイムの相場に対してEAを稼働させるのが一般的です。バックテストと違い、実際の市場環境で動かすため、より現実に近い結果が得られます。
なぜ「バックテストでは勝てたのにリアルでは負ける」のか
ここが本題です。主な原因を挙げていきます。
① スプレッドの変動
バックテストでは、スプレッド(売値と買値の差)を固定値で設定することが多いです。しかし実際の相場では、経済指標発表時や流動性が低い時間帯にスプレッドが急拡大します。
スキャルピング系のEAは特にスプレッドの影響を受けやすく、バックテストとリアルで大きく乖離することがあります。
② スリッページ
注文を出した価格と、実際に約定した価格のズレのことです。
バックテストでは「指定した価格で必ず約定する」という前提で計算されていることがほとんどですが、実際の相場では思った価格で約定しないことがあります。
③ 約定拒否(リクオート)
注文を出したタイミングで価格が動いてしまい、注文が拒否されることがあります。
スキャルピング系EAや、指値注文を多用するEAでは、この影響がじわじわと効いてきます。
④ オーバーフィッティング
以前の記事(④)でも詳しく書きましたが、バックテストで「過去データに過剰適応したEA」は、未来の相場で通用しません。
バックテストで素晴らしい結果が出ているほど、むしろ疑ってかかる必要があります。詳しくはこちら。
https://www.gogojungle.co.jp/finance/navi/articles/83010
⑤ データ品質の問題
バックテストに使う価格データの品質が低いと、結果が正確に出ません。
MT4のデフォルトのヒストリカルデータは精度が低いことがあり、「99%品質」のデータを使わないとスキャルピング系EAは正確な検証ができないことがあります。
バックテストとフォワードテストの正しい使い方
では、どう使い分ければいいのか。
バックテスト:開発・スクリーニングの道具
EAのロジックが「そもそも長期的に機能するか」を確認するための最初のフィルターとして使います。ここで落第したEAはリアルでも機能しません。
フォワードテスト:本番前の最終確認
バックテストを通過したEAを、最低でも3〜6ヶ月はリアルタイムの相場で動かして確認します。ここで初めて「使えるEAかどうか」の判断ができます。
いきなりリアル口座で動かすのは、フォワードテストをすっ飛ばしているようなものです。たとえ少額でも、まずはデモ口座で動かす習慣をつけましょう。
ちなみに私が販売しているGTXは、2021年末からのリアルトレードデータをそのまま公開しています。バックテストだけでなくリアルの数字で判断してもらいたいので、あえて隠していません。参考にどうぞ。
GTXリアルトレードの実績 https://real-trade.tech/accounts/52392
まとめ
バックテストは「過去データでのシミュレーション」。現実とは乖離がある
スプレッド変動・スリッページ・約定拒否はバックテストで再現できない
フォワードテストでリアルタイムの相場での実績を必ず確認する
バックテスト → フォワードテスト → リアル口座の順で慎重に進める
「バックテストの数字を信用しすぎない」ことが、EA選びで騙されないための一番の防衛策です。
それでは、また次回!
れんみぃのEAリスト
https://www.gogojungle.co.jp/users/189446/products