スポンサーリンク

EAのバックテストとフォワードテストはどちらが重要か?

はじめに

MetaTrader(MT4/MT5)の自動売買のEA(エキスパート・アドバイザー)を開発する際に、開発したEAのパフォーマンスを評価するテストには、「バックテスト」と「フォワードテスト」の2種類があります。

  • バックテストとは、過去の一定期間の取引レート(ヒストリカルデータ)を使って、EAを稼動させてシミュレーションをすることをいいます。一方
  • フォワードテストとは、実際の取引レートを使って、EAを稼働させてテストすることをいいます。使う口座には、リアル口座(本番口座)とデモ口座の2種類があります。

良好なバックテストの結果を宣伝する市販EAを買ってみて、いざ実運用すると、下記のようになることがありますよね。

上の例は極端ですが、多くのEAは、最適化をすることで多かれ少なかれ「過剰最適化(カーブフィッティング)」になりがちです。

EAを評価する際に、バックテストの結果に注目することが多いと思いますが、私は;

フォワードテストの方が、バックテストよりもはるかに重要

と思っています。
この記事では、なぜフォワードテストの方が、バックテストよりも重要であるかをまとめておきたいと思います。

フォワードテストの方が、バックテストよりもなぜ重要か

バックテストでは、スプレッド、スリッページ、約定力などが固定あるいは完全であることを前提にしていますが、フォワードテストでは、これらの変動による影響を受けます。また、サーバー時刻の24時をまたぐスプレッドの拡大を考慮していないと、バックテストの結果が良くなることがあります。これらの点で、フォワードテストで結果が悪くなるのは、当然です。

しかし、最も重要な点は、「バックテストは過去の相場を使っている」ことです。

EAのバックテストとして、過去10年間などの長い期間のテストをしているEAを見かけます。確かにフォワードテストで10年間やるのは不可能ですが、長すぎるバックテストにはあまり意味がないと思います。

今年(2020年)だけをとっても、コロナショックの乱高下からその後の相場は、100年に1回くらいしか来ない相場であれば、バックテストしてもあまり意味がないですよね。

また、あと数日で米国の大統領選挙があります(2020年9月26日現在)。最近の相場は大統領選の結果待ちでボラティリティが下がっていますが、次の大統領が決まればまた新しい相場が始まるでしょう。
相場に普遍的に働く基本的なことは別にして、EAのパフォーマンスに影響する多くの要素が過去と未来の相場では異なるはずです。

したがって、バックテストの結果を参考にした上で、フォワードテストを精緻にやって、その中で細かくロジックやパラメータを調整していく運用の方が現実的ではないかと思っています。

なお、過去のチャートの検証は重要です。過去検証を軽視しているわけではありません。

 

タイトルとURLをコピーしました