運用開始を検討していたEAで20年間以上のバックテストをしたらエライことになった。過去10年で平均PF(プロフィットファクター)が1.3以上あったものがいきなり0.5以下に。はじめはEAの問題かと思ったが収益グラフを見るとどうも怪しい。チャート画面でインポートしたヒストリカルデータを確認したところマイナスの年のロウソク足が普通ではないことに気づいた。調べてみると2008年以降のデータが怪しいことが分かった。確証はないが今回使用した2008年以前のデータはバックテストで使えないと判断した。このデータを使う限りは2009年が最長のバックテスト期間と筆者は考える。結論を言うと20年以上の長い期間のバックテストは有効だと思うが信頼できるヒストリカルデータがあることが前提となる。
本記事はFXの自動売買に使用されるプログラムについて解説していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。
本記事ではMT4を使用する。
FXDD – MetaTrader
・Version: 4.00 build 1322
・8Feb 2021
MetaEditor
・Version 5.00 build 2375
・7 Jan 2021
ヒストリカルデータ
・XMTrading MT5からダウンロード
バックテストの期間
長い期間で好成績を出せればいいが現実は難しい。
妥当な期間
いくつかのEAをテストしていて10年以上の長期間で高いPF(プロフィットファクター)を出すのが難しいと思えてきた。PFを上げるために条件を増やすと取引数が激減してしまうため使いづらい。取引数が極端に少なくなると偏りが出た時に年単位でマイナスをくらう可能性が高くなる。長期間のバックテストは有効だが高いPFや多い取引数とのバランスが難しくなってくるトレードオフの状態。
【EA開発ガイド】Part 5 バックテスト基礎 – Chapter 7 EAのバックテスト期間はどの程度が妥当なのか
バックテストの期間を長くするとPFが下がる。
カーブフィッティングによる長期間バックテストでのパラメータ調整
長期間バックテストでの好成績は難しいがパラメータ調整(カーブフィッティング)することで多少良くすることができる。PFが1.1以上あるEAであればパラメータ調整で1.3くらいまで上げることもできる(場合にもよるが)。長期間テストとカーブフィッティングを使えば期待値の高い調整が可能ではないだろうか。
【EA開発ガイド】Part 5 バックテスト基礎 – Chapter 8 カーブフィッティングの妥当性を検証する
パラメーター調整でPFが上がる。
テストのコスト
単純な順張りEAであるがモデルに「全ティック」を使って過去10年間テストすると16時間くらいかかってしまう。PC3台を使ってバックテストを流し続けているがひとつの条件テストするのに二日ほどかかってしまう。長いテスト期間は小回りが効かないのでいい条件を探すチャンスが減ってしまうかもしれない。
長期間のバックテストは時間がかかり多くの条件を検証できない。
過去20年間のバックテスト
比較的PFの高いEAで過去20年間のバックテストを実施した。あまり性能の良いPCではなかったので二日以上かかった。
過去チャートはXMのMT5からダウンロード
過去データはMT5からダウンロードしたものを使用した。
【EA開発ガイド】Part 5 バックテスト基礎 – Chapter 3 MT5のチャートをMT4にインポートする
以前ごとうびEAで過去チャートを確認したらサマータイムがちょっと怪しかったことがある。この時点で過去データが怪しい気はしていた。
【EA開発ガイド】Part 2 EA開発実践 – Chapter 6 サーマータイムとヒストリカルデータ
テスト結果
結果は2008年以降がマイナスと予想外の結果となった。2001年はPFが0.5以下とひどい結果。
後半持ち直しているので全体のPFは0.91。期間が長いので損益は、10万通貨で「-5,333,700円」であった。これだと、売り買い逆にしたら良いのかと思ってしまう。
2007年から下げ止まって2009年からプラスに転じている。
チャートの確認
プラスに転換する2009年のチャート。ぱっと見特に問題はなさそう。
PFが1以下の2008年のチャートこちらもそこまでおかしい感じではないがヒゲの出方がちょっと気になる。
2007年あたりからさらにチャートが怪しくなってくる。十字やヒゲの長いロウソクが多く通常のチャートと違い違和感あり。
2004年に至ってはヒゲが異常。
一番成績の悪い2001年も同様。ヒストリカルデータが非常に怪しいことがわかる。
テスト結果考察
結論を言うと今回使った2009年以前のヒストリカルデータが怪しい。
V字グラフ
EAやチャートの傾向を考えても収益グラフがV字になるのは非常に考えにくい。チャートの傾向が2009年を境にここまで変わるとは考え難い。
ヒストリカルデータの問題
2007年以降のインポートしたチャートを確認すると非常に怪しい。2001年などヒゲが多すぎて正確なデータとは到底思えない。10年以上前のヒストリカルデータの信頼性がどれほどなのか非常に疑わしい。
バックテストの範囲
チャートの見た目で判断すると2008年以前のヒストリカルデータは怪しいので検証で使いたくない。2009年あたりからチャートの見た目が良くなる(普段見るロウソク足になる)のでバックテストは2009年からのデータを使った方がいい。2009年は境なので2010年が無難だろうか。このヒストリカルデータを使う限りは2010年からのバックテストが有効と考えられる。
まとめ
試しに2000年からバックテストをしたらマイナスになって面を食らってしまった。過去10年で平均PFが1.3以上のEAだったのでマイナスになることはないと思っていたらグラフがいきなり右肩下がり。マイナス決済が結果にどんどん溜まっていく。EAの大幅見直しが必要かと思ったがこのグラフはおかしい。過去チャートを確認するとヒゲが異常にある怪しいロウソク足であった。この状況から考えるとEAよりもヒストリカルデータに問題がある可能性が高い。チャート画面で確認すると2008年以降のロウソク足の見た目が非常に怪しい。古いヒストリカルデータを使用してバックテストをする場合はチャートでロウソク足の見た目が大丈夫か確認した方がよさそうだ。長期間のバックテストはある程度意味があると思うが信頼できるヒストリカルデータが無いと難しいだろう。
- 2000年からバックテストをしたら収益グラフがV字になった
- 2009年以前のヒストリカルデータが非常にあやしい
- このデータ(XMTrading MT5)を使うなら2010年以降が無難
古いヒストリカルデータはサマータイム切替も怪しいので要注意です。