【EA開発ガイド】Part 5 バックテスト基礎 – Chapter 7 EAのバックテスト期間はどの程度が妥当なのか

EAを作っていてバックテストしていると純益や勝率が年ごとに大きく異なることがある。例えば勝率80%の年や30%の年のあるEA。ただし取引数が少ないことで偏りが発生している可能性もある。EAのバックテスト期間について筆者の考えをまとめる。

注意事項

本記事はFXに関連した内容について解説していますが内容を保証するものではありません。金銭にかかわる内容であるためご注意ください。参考にする場合は自己責任でお願いします。

注意事項

バックテストの期間や相場についての考察は筆者の個人的な見解で正しい保証はありませんのでご注意ください。

期間による偏り

いくつかバックテストをしていて筆者は年により傾向に偏りがあるのではと思い始めている。

Point

為替相場は年毎に偏りの波がある可能性が高い。

EAの成績が良い年と悪い年

以前参加していた為替の教室で聞いた話である。負けなしのプロトレーダーであっても年によって利益が伸ばせる時と伸ばせない時があるらしい。例えば順張りで利益が伸びる年や逆張りで伸びる年があるとか。1年だけ勝ったとしても波の頂点である可能性が高いので安心はできないのである。

ファンダメンタル

経済に大きな影響を与える場合も結果に影響がでるだろうか。リーマンショックなどのイベントは通常ない動きになる可能性が高い。そのためすべての年でよい成績を出すEAは難しいと思われる。

為替AIのアップデート

為替の動きは「巨額資金を持つ組織のAI」や「権力を持った資本家」の影響を強く受けていると筆者は考えている。EAを作っていて思うのだが「右肩上がりのEAはお金さえかければ簡単に作れる」はずである。しかもAIを使えば極限までチューニング可能。あとはインターバンクとの通信速度の勝負になるだろうか。この相場に影響を与える為替自動取引システムのアップデートがあれば相場の動きが顕著にかわると筆者は予想している。

最適なバックテスト期間

期間を長くするとどうしても勝率が落ち、勝率を上げると取引数が激減。このトレードオフの関係に悩まされる。

長期間で好成績は難しい

かなり頑張れば長期間で安定して利益をだせるEAを作れると思うが、前述の相場の偏りを考えると現実的ではない。相場には年単位での大きな偏りの波があり長期間で成績を上げようとすれば取引数が極端に少なくなる。長期間のバックテストによる最適化と取引数がトレードオフの関係にあり最適化するほど取引数が少なくなってしまう。

Point

バックテスト期間と取引数はトレードオフの関係にある。

最適化による取引数減少

EAを最適化していくと取引数が減少していく。取引数が少なくなることで試行回数が減少し大きな偏りを検知できなくなる可能性が高くなる。わかりやすく言うと取引数1,000回で勝率60%と取引数10回で90%であれば前者の方が優秀と筆者は考える。前者のEAの方が色々な相場に対応している可能性があり大きな偏りの波の影響を受けにくい。

Point

取引数(試行回数)が減ると大きなドローダウンを受ける可能性が高くなり安定性に欠ける。

取引数と期間

結論を言うと取引数と期間は長く多い方が望ましい。過去20年で毎年勝率7割を超えるEAは作れるかもしれないが取引数が極端に少なくなるだろう。取引数が少ないと安定性がなくなり本末転倒。

取引数 多い方が安定している。少ないと偏りによってマイナスになる可能性が出てくる。
取引期間 年毎にクセがあるので平均して成績を出すのは難しい。

過去と直近の優先度

バックテストのデータを見ていると年毎の波があるような気がする。ようするに相場のクセは急激に変わらない可能性が高いということ。例えば過去から現在に欠けて徐々に勝率が上がっていったり下がっていったりする。これを考えると古いデータよりも直近のデータの方が予測に使いやすいのではないだろうか。10年前のチャートと2年前のチャートであれば2年前を使った方がいい気がする。前述した為替システムのアップデートの話を考えると過去の為替チャートは「未熟な為替システム」が動かしている可能性が高い。

Point

古いデータと新しいデータであれば新しいデータでバックテストした方がよさそう。

リスク回避のために

結局のところトレードオフでどちらかに舵を切るしかない。

バックテストパターンマトリクス

テスト期間、勝率、取引数のパターンをまとめてみた。どれも一長一短なので微妙。パターンCは勝率、取引数ともに良いが、テスト期間が短いためハズレの年にヒットした場合大きなマイナスがでる可能性がある。一方A、Bはハズレ年に当たる可能性が少ない。

パターン テスト期間 勝率 取引数
A 長い 高い すごく少ない
B 長い 低い 少ない
C 短い 高い 多い
D 短い 低い すごく多い

リスク分散

結局のところひとつのEAだけで考えると偏りを食らう可能性が高いので運用するEAの増やしてリスク分散すればいい。例えばパターンDのEAを複数運用してその年に相対ドローダウンが高いEAは実践から外すとか。過去にいくら成績が良くてもフォワードテストであまりにも成績が悪いようなら実弾運用をあきらめた方がいい。それは年の偏りの波を食らっている可能性が高いからだ。

Point

複数のEAを運用でリスクを分散し顕著に成績に悪いEAは運用を中止する。

まとめ

自分で好きなようにプログラムが組めるので個人的にはAパターンの数を増やしていこうと思う。ごく限られた条件のエントリーポイントだが長期間で負けないメリットは大きい。問題の取引数はEAの大量生産でカバーできるはず。EA実装とバックテストを繰り返し続ければ何となく前に進む気がしている。

ポイント
  • 為替相場は年毎にクセ(偏り)がある可能性が高く長期間で勝てるEA作成は難しい
  • テスト期間が短いと年ごとの偏りの波にのまれる可能性が高くなる
  • テスト期間と勝率を上げると取引数が少なくなり安定感が落ちる可能性が高い

バックテスト期間は本当に悩みます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です