記事一覧

【FX自動化②】バックテストとAI審査の検証で分かったこと|「過去に強い」に騙されないために

FX自動売買の戦略を、AIと一緒に過去データで検証しています。過剰最適化を避けるために決めた採用基準、不合格になった手法、そして「AIの審査は本当に効いているのか」を確かめた正直な結果をまとめました。

異なる試料に模様を重ねて合うかを検証する手を描いたイラスト

はじめに

前回の記事では、AIと一緒に作ったFX自動売買の全体の流れを紹介しました。今回は、その中身をどう選んでいるか、つまり検証の話です。

自動売買で一番の落とし穴は、「過去のデータでは大儲けできたのに、実際に動かすと勝てない」ことです。この記事では、それを避けるために決めたルールと、実際の検証で分かったことを紹介します。

※現在もデモ口座で検証中です。数字は過去データでの結果で、将来の利益を保証するものではありません。

バックテストとは

バックテストは、「このルールで過去に売買していたら、どうなっていたか」をプログラムで再現することです。

たとえば「1時間足で移動平均線より上にあり、押し目でRSIが下がったら買う」というルールを、過去数年分のデータに当てはめます。勝率、損益、最大でどれだけ資金が減ったか(ドローダウン)などを計算します。

手作業なら何日もかかる計算ですが、Claude Code に頼むと、プログラムを書いて数分〜数十分で結果を出してくれます。

落とし穴:過剰最適化

図解:過剰最適化が起きるしくみ

バックテストには大きな落とし穴があります。設定を細かくいじるほど、過去のデータには合うようになることです。

移動平均線の期間や損切りの幅を何百通りも試せば、過去に「たまたま」よく当たった組み合わせが必ず見つかります。しかしそれは、過去の偶然に合わせただけかもしれません。これを過剰最適化(カーブフィッティング)と呼びます。

決めた採用基準

図解:データを前半と後半に分けて過剰最適化を避ける

そこで、AIと相談して次の基準を決めました。

  1. データを前半と後半に分ける:設定は前半(調整用)の成績だけで選ぶ。後半(検証用)は「通用するか」の確認だけに使い、後半を見て選び直さない
  2. 後半でもプラスで、周辺の設定でも安定していること:期間を少し変えただけで崩れる設定は採用しない
  3. 長期(6〜10年)でも通用すること:直近1〜2年だけ良い戦略は不採用
  4. 既存の戦略と値動きが似すぎていないこと:同じ日にまとめて負けるのを避けるため
  5. ウォークフォワード検証:「過去で調整→次の期間で試す」を何度も繰り返し、調整期間の成績がどれだけ本番期間でも再現されるかを見る

この基準は、AIが勝手に決めたのではありません。私が「長期で見て良いのは当然。それだけで判断しないで」と意見を出し、AIが検証方法に落とし込む、というやり取りを重ねて作ったものです。

不合格になった手法も多い

多くの候補をふるいにかけ、少数を次の検証へ分ける概念イラスト

基準を決めてから検証すると、有名な手法でも不合格になるものが多くありました。

  • 時間帯のブレイクアウト(ORB)や5分足のスキャルピング:直近では良く見えても、長期では通用しなかった
  • レンジ相場での逆張り:固定の設定でも、毎月こまめに調整し直す方法でも、全銘柄でマイナス〜トントン。「直近で好調な設定は、次の月には効かない」という結果でした
  • Claude が独自に設計したペア取引(2つの銘柄の比率が平均に戻る動きを狙う):これも不合格

一方、私が「チャートでこう見えたら入る」と説明したライン引きの手法を、AIがルールに落としてみたら合格した、というケースもありました。人の目の感覚をAIがプログラムにして、数年分のデータで確かめられるのは、この仕組みの面白いところです。

バックテストはどれだけ「甘い」のか

バックテストは、実際の取引より成績が良く出がちです。スプレッドの広がりや、注文が思った価格で通らない(すべる)ことが十分に再現されないからです。

そこで、1本1本の値動き(ティックデータ)を使って再現し直す検証もAIに頼みました。その結果、短期のスキャルピングでは、スプレッドのコストに負けて期待値がマイナスになる銘柄がはっきり分かりました。

「AIの審査」は本当に効いているのか

この仕組みでは、戦略が出した候補を ChatGPT などのAIに審査させていました。「AIが良さそうと言った取引だけ入れば、成績が良くなるはず」という考えです。

これを確かめるため、過去のシグナル56件をAIにもう一度審査させ、実際の結果と比べる検証をしました。結果は次のとおりです。

  • AIが却下した取引のほうが、むしろ成績が良いものを外していた
  • AIの「確信度」と実際の結果の関係は、ほぼゼロ
  • 件数が少ないので結論は出せないが、AI審査に効果がある証拠はまだない

正直、意外な結果でした。AIはニュースや経済指標の予定までは知らず、渡されたチャートの数字だけで判断しているので、戦略のルール以上のことは見抜けていないのかもしれません。

そこで今は、AIは判断を記録するだけにして、発注は止めない形に変えています。件数がたまったら、AIが承認した取引と却下した取引のその後を比べ、効果がなければ審査をやめる(API代も節約になる)予定です。

ここまでやってみて

  • 検証は「良い結果を探す」ためではなく、「だめなものを早く捨てる」ためにやる、と考えるようになりました
  • AIは、頼めば何百通りの組み合わせでも試してくれます。だからこそ、選び方のルールを先に決めることが大事でした
  • 「AIを入れれば賢くなる」とは限りません。入れたら、効いているかを数字で確かめる必要があります

次の記事では、AIが知らない「ニュース」を補うために作った、為替ニュースの自動収集の仕組みを紹介します。

※この記事は個人の検証記録で、投資の助言や売買の推奨ではありません。

コメント

まだコメントはありません