良いEAと悪いEAの見分け方(フォワードテスト編①)
概要
この記事では,良いEAと悪いEAの見分け方をフォワードテストの観点から解説します。
バックテストだけでは信用できない理由も解説します。
EAに興味あり&開発未経験(初心者)の方へ向けた記事となります。
フォワードテストって何?
フォワードテストとはデモ口座などを利用し,実際の相場でEAを動かしてみるテストです。ここでバックテストとの乖離が大きい場合にはEAの修正が必要となります。
また,人からEAを譲り受けた/購入した場合にはフォワードテストを回してから実取引に移ることをお勧めします。
EAの良し悪しはバックテストで見分けるんじゃないの?
前回の記事(良いEAと悪いEAの見分け方(バックテスト編) - Sasahiko’s diary)では,バックテストを見るときは3つのポイント(使用モデル,スプレッド,最大ドローダウン)に注目と記載しています。確かにバックテストで上記3点を記載していないものは信じてはいけません。ただ,「記載している=本当に信用してよい」とは限らないのです。
なんでバックテストを鵜呑みにしてはいけないの?
バックテストとフォワードテストは決定的に違う部分が3つ(以上)あります。
1.相場はEA処理を待ってくれない
2.スプレッドは変動する
3.悪意を持てばバックテストは改ざんできる
では,3つのポイントを1つ1つ見ていきましょう。
1.相場はEA処理を待ってくれない
EAによっては複雑な処理が必要なものがあり,その場合はどうしても計算に時間がかかってしまいます。例えば,「売買条件が複雑なもの」や「機械学習を利用したもの」などは計算に時間がかかりがちです。
→計算が終わって,「では,100円で買いましょう」という結果が出たときには,既に101円まで上がっている可能性があるということです。
(バックテストなら計算が終わるのを待ってくれます。)
2.スプレッドは変動する
バックテストにおいてスプレッドは固定値であり,自身で設定することができます。
ただ実際の相場では,スプレッドは変動します。
こちらも例を挙げるとわかりやすいでしょう。
例えば,平均スプレッド20pipの通貨があるとします。バックテストではスプレッド20pipsで検証し,十分な利益を上げていたとします。ただ,実際の相場はスプレッド40pipsくらい大きいときもあり,スプレッドが大きいときには結構な損失を出すようなEAだったらいかがでしょうか。
こちらもフォワードテストを回してみないことにはわかりませんね。
(開発者側はスプレッドによる取引制限が必要だと思います。)
3.悪意を持てばバックテストは改ざんできる
3つ目にして,最重要・最悪質なものを紹介します。
前回の記事にあるように,バックテストの結果を見るときには注目すべきポイントがあります。ただ,悪質なバックテスト結果の改ざんが可能であることは知っておきましょう。プログラムとしてはそんな大げさなものではありません。損失が出た部分の取引をなかったことにしてしまえばよいのでしょう。こちらも例を挙げると簡単にわかります。
例えば,あるEAでは2021年7月9日に大きな損失を出したとします。
→プログラム中で7月9日には取引をしない設定にしてしまえば,必然的にその損失はなかったことになります。(プログラム的には2文ほど書けば,10分とかからずに実装できます。)
以上のように,バックテスト結果を鵜呑みにすることは危険なことがわかります。
まとめ
EAの良し悪しはバックテストを鵜呑みにせず,フォワードテストもチェックすること
バックテストは参考になるが,あくまで参考程度にとどめること
(なぜなら,バックテストは容易に改ざんできるから)
twitter : 笹彦 fx自動売買EA開発者 (@trader_brothers) | Twitter
Instagram : https://www.instagram.com/fxtrader_sasahiko/