疑似フォワードテストは失敗となりました。フォワード期間に入ってすぐに機能しなくなったことを考えてもカーブフィッティングしていたのは間違いないと思います。
今回はカーブフィッティングしてしまった原因を考察します。
Table of Contents
少ない取引回数
一つの通貨ペアにつき取引回数が15年間で50回程度となっており、日足ベースとはいえ少なすぎました。通貨ペアをバスケットにすることで少ない取引回数がカバーできると考えていましたが、誤りでした。
50回の取引で作られた戦略はいくつ集めてもカーブフィッティングしたEAを複数稼働させるのと同意です。
大きすぎる損益
1回のトレードによる損益が大きい場合、あるトレードでは300pipsの獲得となったり、500pipsの損失となったりします。これは標準誤差が大きくなっているものと考えることができるらしいです。標準誤差が大きく、取引回数も少ない状態ではバックテストの信頼性は非常に低くなります。
シグナル評価の失敗
シグナル評価を事前に行いましたが、ポジションは1ポジションのみで反対売買のシグナルが出た場合にはドテンしていました。
1ポジション持ったあとに、既に持っているポジションと同種のシグナル条件が成立してもポジションを持たないということは、どのタイミングからEAを稼働するかによって性能が大きく変わることを意味します。シグナル条件が成立したときは必ずポジションを持たないと正しく評価できません。
また反対売買のシグナルが出た時点でドテンしていましたが、これもシグナル評価を歪ませていたと思います。特にClosetimeが長いパラメータ選定をしていましたのでドテンシステムに近い動作をしているケースも多くあったものと推察できます。最適化によってドテンシステムの成績をよくしても再現性は低いものと思っています。
まとめ
- 取引回数を増やすために、1回の取引時間が長くなりすぎないようにルールを考える。
- 損益が大きすぎないルール。取引時間が短くなるだけでも効果はあると思います。
- 検証時のポジションの持ち方の変更。シグナルをできるだけ受け入れるようにポジション制限をなくして検証する。