はじめはEAのフォワードテストなどバックテストで好成績なら必要ないだろと思っていたが考えが甘かった。本番環境やリアル口座で思いもよらないトラブルがあり損失が発生。プログラムの設定ミスとバグで約2万円近い損失を出してしまった。ある程度成績が安定するまでEAは低ロットで運用しましょう。
本記事はFXの自動売買について紹介していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。
フォーワードテストで発生した問題
筆者がEAのフォワードテストで体験した内容を紹介する。
スプレッド拡大
流動性の高い時間帯に取引するEAのフォワードテストをしていたところどうも成績が悪い。バックテストではPFが2を超えるレベルであったがフォーワードテストでは0.5以下となり大きな損失を出してしまった。ログで売買記録を確認したところ決済タイミングに大きなズレが。売買の瞬間をリアルタイムで確認してみるとスプレッドが許容範囲を超えて決済タイミングが遅延。遅延が良い結果になることもあるが今回はすべて悪い方に転がってしまった。スプレッド拡大をどこまで許容するかにもよるがバックテストの結果と乖離する原因になるようだ。
本番環境の問題
筆者は、リアル口座の本番環境とデモ口座の開発環境は別にしている。運用方法としてはエンタープライズシステムっぽいだろうか(職業病かも)。リアル口座でEAを運用していたところいきなり問題発生。いくつかのEAで「決済が実行されていない」のだ。気付いて慌てて決済したのだがここででもマイナス。逆行していてストップまではいかなかったものの大きなマイナスを出してしまった。原因は決済を管理するシステムのバグが原因。複数のシステムを同時に起動したところマジックナンバーの管理がお互いに干渉して決済できなくなっていたようだ。
パラメーター設定ミス
バグ等があったので本番環境に修正したEAをリリースしてテストしたところ問題発生。いつもよりも損失が大きい!!と焦って確認したらパラメータで設定していたロット数が多すぎ。0.1ロッ(1万通貨)が1.0ロット(10万通貨)になっていた。リアル口座でEAを稼働させる時はパラメータ確認も必須。このあとEAごとのチェックリストを作ってリリース時チェックをするようにした(SEの職業病)。
フォワードテストは必要
バックテストで好成績のEAなら実弾でガンガン行けばいい。なんて思っていたが甘かった。いや、甘々であった。結局のところバグと設定ミスで2万円近く飛ばすこととなる。このミスが無ければプラスだったのに・・・。
フォワードテストは低ロットで
いくらバックテストの成績が良かったとしても「低ロット」でしばらく運用した方がいい。思いもよらないトラブルが起きる可能性があり安定稼働するまではロットを抑える。
検証期間は1月以上か
本番口座での最大ドローダウンなどを確認するためにも期間一カ月以上か100取引くらいはした方がいい。本番でロットを上げるにはある程度安定してからが吉。
乖離がすごい
とにかくバックテストと大きく乖離することがあるので「確実にイケるっ!!」となるまでは低ロットで検証した方がいい。フォーワードテストなしでロットを上げるなどお金をドブに捨てるようなものである。
【EA開発ガイド】Part 9 フォワードテスト検証 – 2021年7月18日 本番環境ではバックテストと大きく乖離することがあるため少額でのテストが吉
まとめ
ひつ月フィワードテストしてバックテスト結果と乖離が出ていなければ「Go」でよいと思う。ただし、年単位の波がありロットを上げたタイミングでマイナスになる可能性もあるので悩ましいところ。何にせよフォワードテストは低ロットが基本である。
- バックテストと本番環境は別物と考えた方がよい
- EAの環境構築ミスで損害がでることがある
- フォワードテストは意味があるので安定稼働まで十分に検証するのが吉
ロットを上げるのは安定稼働してからでも遅くはありません。