バックテスト基礎

バックテスト期間を「短く」済ませてはいけない理由

EAのバックテストを「直近1年」だけで済ませると、特定の相場環境でしか勝てない弱いEAを見逃してしまう。トレンド、レンジ、急変。すべてを含んだ長期間テストが必要な理由を整理する。

「直近1年間のバックテストで右肩上がりです!」

市販EAの販売ページや、SNSでのEA紹介でよく見かける文句だ。
1年間も勝ち続けているなら、すごいEAに思える。

でも、私は「1年だけのバックテスト」は一切信用しない。
自分でEAを開発する時も、最低で3年、通常は5年〜10年の期間でバックテストを回す。

なぜ期間を短くしてはいけないのか。
それは、「相場の顔」は年によって全く違うからだ。

1年間だけ通用したロジックが、次の1年も通用するとは限らない。

1年間のバックテストは「その年に特化したEA」

相場には周期やトレンドがある。

たとえば、歴史的な円安トレンドが続いた年。
この年のデータだけでEAを作ると、「とにかく下がったら買う(押し目買い)」や「ナンピンして耐える」ロジックが強く見えるの成績を叩き出す。

「よし、PF3.0の強く見えるEAができたぞ」と喜んで翌年にリアル稼働させる。
すると翌年、相場環境がガラリと変わり、長期間のレンジ相場や、逆方向(円高)への強いトレンドが始まる。

押し目買いしか知らないEAは、ひたすら逆張りをして口座を吹き飛ばす。

1年や2年という短い期間のバックテストは、「その特定の相場環境に対する過剰最適化」になりやすいのだ。

必要なのは「春夏秋冬」を経験させること

優れたEAとは、特定の環境で爆発的に勝つEAではなく、「どんな環境が来ても致命傷を負わず、得意な環境が来た時にしっかり利益を残すEA」だ。

そのためには、バックテストの期間内に相場の「春夏秋冬」が全て含まれていなければならない。

これらすべてを経験(テスト)させて、それでも最終的に口座残高がプラスに残っているか。
途中で発生したドローダウン(資産の落ち込み)は、自分のメンタルや資金管理で耐えられる範囲内か。

それを確認するために、5年〜10年という長い期間が必要になる。

ティックデータ(データの質)の問題

長期間のバックテストをする時に壁になるのが「データの質」だ。

MT4やMT5に標準で入っている過去データは、穴だらけだったり、スプレッドの変動が記録されていなかったりする。この粗いデータでテストしても結果は信頼できない。

真剣にEAを検証する人は、「TDS(Tick Data Suite)」などの外部ツールを使い、過去の全ティック(1回の価格変動ごとのデータ)と変動スプレッドを再現した「モデリング品質99.9%」の環境でテストを行う。

「質の高いデータ」で「長期間」テストする。
これが、EAの本当の実力を丸裸にする唯一の方法だ。

この記事のメモ

バックテストの期間を短くするのは、怖いからだ。

「せっかく最近の相場で勝てるロジックを見つけたのに、5年前のデータでテストしたらボロボロになるかもしれない」
その現実を見たくないから、期間を短く切り取って「勝てる部分だけ」を見て油断しやすいしようとする。

でも、過去の厳しい相場から目を背けて作ったEAは、未来の厳しい相場で必ず自分に牙を剥く。

「このEAは、リーマンショックの時どう動いたのか」
「コロナショックのボラティリティに耐えられたのか」

歴史の洗礼を浴びせること。それが、自分の資金を守る盾になる。

チェックリスト

FAQ

Q: 期間を長くしすぎると、現在と市場構造が変わっていて意味がないのでは?
その懸念は一理あります。たとえば20年前のデータは、アルゴリズム取引が普及した現在の相場と構造が違う可能性があります。そのため、過去5〜10年程度(直近の市場構造を反映しつつ、様々な環境を含む期間)をテストの主戦場にするのが現実的です。

Q: 1年間のテストで勝率90%のEAと、10年間のテストで勝率55%のEA、どちらを選びますか?
間違いなく後者です。1年間の高勝率は、単に「その年がナンピンに優しい相場だった」などの環境要因にすぎない可能性が高いからです。10年間生き残った実績(ロバスト性)のほうが遥かに価値があります。

免責

本記事は個人の検証メモであり、投資助言ではありません。長期間のバックテストで良好な成績が出たEAであっても、未来の相場で同様の成績を保証するものではありません。