EAをひと月ほどフォワードテストしたのでバックテストとの乖離を検証。フォワードテストとバックテストはスリッページやスプレッドの開きによって結果が大きくかわることがある。どこまで違うのか実際のログを比較して確認した。結論としては指標などがない日本時間であればそこまでバックテストと乖離しないである。ただし、大きく動いたタイミグで短期に取引するようなEAはその限りではない。スプレッドが開きそうなタイミングで取引するEAはバックテストの乖離がでる可能性が高いと筆者は考える。リアルトレードで何が起こるかわからないので、どのEAにしてもバックテストとフォワードテストとの付け合わせ確認はしておいた方がいいだろう。
本記事はFXの自動売買について解説していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。
目次
フォワードテストとバックテストの付け合わせ検証
フォワードテストの結果とバックテストの結果を比べ結果にどれほどの乖離が発生するか検証する。本番環境はOANDAの東京サーバーを使用。バックテストのXMはXMトレーディングのMT5からダウンロードしたいヒストリカルデータである。使用したEAは5分足と移動平均線を使った簡単な順張りロジックである。スプレッドが大きく開いた場合はエントリーも決済もしない仕組みを実装。OrderSendのスリッページ上限は10を指定しているがちゃんと効いているか正直わからない。
ケース1
そもそも5Mのバックテストだと秒がでない。このケースだと本番の方が成績が良い。気になるのが決済時間。このEAでは決済時間を0秒に設定しているにも関わらず45秒となっている。45秒もずれるってそうとうなもんだと思うが大丈夫なんだろうか。gogojungleのスプレッドグラフを確認したところちょうどこの時間にスプレッドが開いていたこどが確認できた。なのでスプレッドが落ち着くまで決済が遅れていたんだと思われる。まぁ今回いい方向にズレたのだが逆もあるので怖いな。
№ | 環境 | エントリー時間 | エントリー価格 | 決済時間 | 決済価格 | 損益 |
---|---|---|---|---|---|---|
ケース1 | フォワード(OANDA) | 2021.07.02 03:03:45 | 111.607 | 2021.07.02 03:18:45 | 111.56 | -470 |
buy | バック(OANDA) | 2021.07.02 03:03 | 111.607 | 2021.07.02 03:18 | 111.556 | -510 |
ID:8098 | バック(XM) | 2021.07.02 03:03 | 111.6 | 2021.07.02 03:18 | 111.549 | -510 |
ケース2
エントリー価格は比較的安定している。指標などの特別な時間でない限り滑ったりはしない気がする。決済は今回も良い方向にズレている。11秒のずれなら許容範囲だろうか。
№ | 環境 | エントリー時間 | エントリー価格 | 決済時間 | 決済価格 | 損益 |
---|---|---|---|---|---|---|
ケース2 | フォワード(OANDA) | 2021.07.02 11:05:07 | 111.541 | 2021.07.02 11:20:11 | 111.461 | 800 |
sell | バック(OANDA) | 2021.07.02 11:05 | 111.54 | 2021.07.02 11:20 | 111.466 | 740 |
ID:8098 | バック(XM) | 2021.07.02 11:05 | 111.532 | 2021.07.02 11:20 | 111.46 | 720 |
ケース3
ここもエントリーで滑ってはいない。決済タイミングがずれているがそこまで差異はない。ボラが低かったのかも。
№ | 環境 | エントリー時間 | エントリー価格 | 決済時間 | 決済価格 | 損益 |
---|---|---|---|---|---|---|
ケース3 | フォワード(OANDA) | 2021.07.01 02:32:33 | 111.14 | 2021.07.01 02:52:34 | 111.131 | -90 |
buy | バック(OANDA) | 2021.07.01 02:32 | 111.14 | 2021.07.01 02:52 | 111.131 | -90 |
ID:8153 | バック(XM) | 2021.07.01 02:32 | 111.133 | 2021.07.01 02:54 | 111.123 | -100 |
ケース4
こちらもスプレッドの影響で決済が遅れているようだがいい方向にズレた。
№ | 環境 | エントリー時間 | エントリー価格 | 決済時間 | 決済価格 | 損益 |
---|---|---|---|---|---|---|
ケース3 | フォワード(OANDA) | 2021.07.01 02:32:33 | 111.14 | 2021.07.01 04:32:43 | 111.04 | -1000 |
buy | バック(OANDA) | 2021.07.01 02:32 | 111.14 | 2021.07.01 04:32 | 111.037 | -1030 |
ID:8118 | バック(XM) | 2021.07.01 02:32 | 111.133 | 2021.07.01 04:32 | 111.037 | -960 |
フォーワードテスト結果考察
ヒストリカルデータの精度が高ければバックテスト結果は参考になりそう。
そこまで滑らない
長くFXをやっている人なら知っていると思うがスプレッドの狭い国内の業者は「けっこう滑る」。ネットで調べてみると不利な方向に滑るといった情報が色々と見つかる。今回短い間であるがフォワードテストをやった感じだとあまり滑らない。もっと悪い方向へ価格がシフトするかと思ったのだがそうでも無かった。ボラが異常に高い指標でもあれば話は別だが日本時間で特別な指標が無い限りそこまで滑らないようだ。ただしいつ大きく滑るかわからないので今後も注意したいと思う。
スプレッドはちょいちょい開く
OANDAの最低スプレッドは0.3pipsで特別な時間以外はそこまで広がらないと思っていたが、ちょいちょい広がる。過去のスプレッドを見ていると何もないところでピコッと上がったり。スプレッドが広がったらエントリーと決済を見送るロジックを実装しているので鬼スプを食らうことは無いと思うが、決済の遅延で悪い方向へ価格が動く可能性もある。今回の検証では良い方向に動いていたが逆もあるのでこちらも注意しておきたい。
バックテストとの乖離は少ない
今回OANDAとXMのヒストリカルデータでバックテストをとってみたがそこまで差異は無かった。ヒストリカルデータの精度が高ければフォワードでもいい結果がでるのではないだろうか?ただし、指標のようにスリッページやスプレッドが大きく影響するようなシーンはその限りではない。
まとめ
ネットで調べるとフォーワードテストの結果は悪くなるといった情報が多かったので心配していたが杞憂であった。エントリーは悪い方向にバンバン滑る覚悟をしていたがバックテストとほぼ同じ価格でエントリーできていた。ただし、決済は思ったより遅延している。これはスプレッドが開いたタイミング回避して決済しているのが原因と思われる。日本時間の何もない時間帯でもちょいちょいスプレッドが開くのでエントリーよりも決済が不安定になりそう。結論としては指標などの特殊な時間でなければバックテストに近い形でトレードできる可能性が高いということが分かった。
- 日本時間であれば価格は滑らない
- 何もない日本時間でもスプレッドが開くことがある
- ヒストリカルデータの精度が良ければフォワードテストとバックテスト乖離はすくない
フォワードテスト中にEAのバグで1万円飛ばしてしまった・・・。