同じEA、同じ1年。データが違うだけで成績が変わった

スポンサーリンク
成績スコア=収支÷最大ドローダウン(バックテスト・過去データ)。詳細スコアは記事の最後にあります。

どうもこんにちは。戦術トレードラボのラボ長です。

第9話では、結果を隠したチャートで判断する「目隠しテスト」で、見送ったトレードの方が勝っていた話を書きました。
自分の目を疑いながらも、数字を見る前に言った「形の好み」は、ちゃんと効いていた。

今回は、そのあとの話です。

同じルール、同じ通貨、同じ1年。
違うのは、読ませたヒストリカルデータ(過去の値動きの記録)だけ。
それなのに、バックテスト(過去データ)のエントリーは22回から14回に減り、成績は大きく変わりました。

兼業トレーダーの私が、AIエージェントのClaude Codeと一緒に、自分の手法をMT4のEAにしている連載です。
EA自作やFX自動売買で、バックテストの数字を見て一喜一憂している方には、ぜひ知っておいてほしい話です。


スポンサーリンク

「EAでまだ試してないのか!」

第8話で天井・底の形に切り替えてから、私とAIは、たくさんの検証を回してきました。
何年分ものデータで、いくつもの通貨ペアで。前回の目隠しテストも、そのひとつです。

前回の最後に少し書いたとおり、それらの数字はすべて、MT4のEAではなく、AIが検証用に作った計算プログラム(シミュレーター)で出したものでした。

シミュレーターは速いので、ルールを少し変えては何年分も回す、を何度でもくり返せます。
開発の途中では、とても便利な道具です。

それが分かったとき、私の口から出たのがこの一言でした。

「EAでまだ試してないのか!ならそっち先かー」

言われてみれば当たり前なんですが、実際の相場で動くのは、シミュレーターではなくMT4のEAです。
シミュレーターの成績がどれだけ良くても、EAにして同じように動かなければ、意味がありません。

EAにする、という作業

AIが、シミュレーターのルールをMT4のEAに書き直しました。

EAの仕事は、シミュレーターと同じ判断をすることだけではありません。
シミュレーターでは要らなかった仕事が、いくつも増えます。

  • 実際に注文を出し、スプレッドを払って入る
  • 注文が通らなかったときに、やり直す
  • MT4を再起動しても、持っているポジションを見失わない

そのうえで、MT4のストラテジーテスター(MT4に付いているバックテストの機能)で、ポンドドルの1年を動かしました。

22回のはずが、14回

シミュレーターでは、同じポンドドルの同じ1年で、エントリーは22回ありました。
ところが、EAのバックテストでは14回。
(どちらもバックテスト・過去データ)

8回、どこへ行ったのか。

調べてもらうと、原因はEAの作り方でもシミュレーターのルールでもなく、読ませているデータにありました。

  • EAのバックテストは、MT4に入っている証券会社のデータで動く
  • シミュレーターは、それまで検証に使ってきた別のデータで動いていた

同じポンドドルの1時間足でも、この2つは、ある時期から中身が違っていたんです。

  • 片方のデータには、月曜の最初の1本がない
  • 両方にある約4万本の足のうち、481本で安値が1pip以上ずれている

ほかに確かめた2つの通貨ペアでは、2つのデータはまったく同じでした。
違っていたのは、たまたま最初に試したポンドドルだけ。

同じデータなら、14件すべて一致

そこで、シミュレーターにもMT4と同じ証券会社のデータを読ませて、もう一度比べてもらいました。

結果は――14件すべて、同じ足で入っていました。

ポンドドル・同じ1年(証券会社のデータ)エントリー成績
シミュレーター14回+0.9(損切り約1回分のプラス)
MT4のEA14回+0.8(+17,916円)

(バックテスト・過去データ。+0.9などの数字は、1回の損切りで失う額を「1」として数えた値です。EAは資金100万円・1回1万通貨)

入った値段のずれは、2pips以内。
シミュレーターは計算上の値段で入り、EAは実際にスプレッドを払って入るので、その分の小さな差です。
1件ごとの成績の差も小さく、いちばん大きくずれた1件も「EAのほうが少し多く利益を取っていた」という違いでした。

これでようやく、シミュレーターの数字を、EAの数字として話せるようになりました。

AIは、EAのテスト結果とシミュレーターを1件ずつ突き合わせる道具も作ってくれました。
このあと、EAに手を入れるたびに、この突き合わせをしてから次に進むのが決まりになります。

その途中で見つかった、シミュレーターのバグ

EAに書き直している途中で、もうひとつ見つかったものがありました。

シミュレーター側のバグです。

底の形のときだけ、底の位置になる足を、「安値がいちばん低い足」ではなく「高値がいちばん低い足」で選んでいたんです。
高値と安値の取り違え。書いてしまえば、それだけのことです。

第5話では、確認用のチャートを描く側にバグがありました。
今回は、答え合わせの基準にしていたシミュレーターの側に。
またしても、検証する側でした。笑

直したあと、それまでの6年・4通貨の合計は、約4%下がりました(バックテスト・過去データ)。
通貨ごと・年ごとに見ても、数字が少しずつ下がっただけで、それまでの結論はどれも変わりませんでした。

シミュレーターだけで検証を続けていたら、見つからなかったかもしれないバグです。
EAにするという「別の道」を通したことで、基準のほうの間違いが表に出てきました。

同じルール、同じ1年。データが違うだけで

ここで、最初の「22回と14回」に戻ります。

ポンドドル・同じ1年エントリー成績
別のデータ22回+5.2(損切り約5回分のプラス)
証券会社のデータ14回+0.9(損切り1回分にも届かない)

(どちらもシミュレーター、バックテスト・過去データ。数字は、1回の損切りで失う額を「1」として数えた値)

ルールは同じ。通貨も期間も同じ。
違うのは、データの中身が、ほんの少し違うことだけです。

それだけで、エントリーは8回減り、成績は5分の1以下になりました。

なぜ、こんなことが起きるのか。

私の手法は、高値と安値の切り上げ・切り下げで相場を見ています。
その高値や安値が1〜2pips違うだけで、「ここが高値(安値)になる・ならない」「抜けた・抜けていない」の判定が、ひっくり返ることがあります。
足が1本あるか、ないかでも同じです。

ひとつ判定がひっくり返れば、そのあとの流れも変わる。
バックテスト(過去データ)で1年に20回前後しか入らないルールでは、その数回の違いが、1年の成績をまるごと変えてしまいます。

1通貨の1年は、これくらい壊れやすい

AIは、記録にこう書きました。

1つの通貨の1年は、これくらい壊れやすい。数字を語るなら、6年・複数の通貨で。実際の相場では、また別の1年の結果が出ると思っておくこと。

第4話では、データの精度(品質36%と90%)で成績が大きく変わる話を書きました。
MT4を久しぶりに使って、ヒストリカルデータの精度のことをすっかり忘れていた、という反省つきで。笑
今回は、精度ではなくどこのデータかで変わる話です。

私はもともと、トレードの件数がある程度多くないと、どんなデータも信頼できないと考えています。
今回の22回と14回は、その考えを別の角度から裏づけるものでした。
件数が少ないと、たまたまの勝ち負けだけでなく、データのほんの少しの違いにも、成績が振り回されるんです。

この1年のポンドドルでいえば、証券会社のデータの数字も、別のデータの数字も、どちらかが「正しい」わけではありません。
どちらも、本当にあった値動きの記録です。

そして、EAが実際の相場で動き出せば、そこに流れてくるのは、そのどちらでもないこれからの値動きです。

だから、1通貨・1年の数字で判断しない。
長い期間と、いくつもの通貨で確かめた数字を、判断の土台にする。
そう決めて、いよいよEAを実際の相場で動かす準備に入りました。

今回わかったこと

EAを自作している方に向けて、今回の学びをまとめます。

  1. シミュレーターの数字は、EAにするまで「EAの成績」ではない
    開発中は速い検証の道具が便利ですが、最後は必ずMT4のEAにして、同じデータで同じ場所に入るかを1件ずつ突き合わせます。
  2. バックテストの結果は、データが変われば変わる
    同じ期間・同じルールでも、どこのデータで回したかで、エントリーの回数から変わります。数字を比べるときは、データが同じかを先に確かめる。
  3. 1通貨・1年の数字は、それだけで信用しない
    回数の少ないルールほど、1〜2pipsの違いや足1本の有無で、1年の成績が変わります。長い期間と複数の通貨で見ます。
  4. 答え合わせの基準も、疑う対象
    同じルールを別の道具で作り直して突き合わせると、どちらかのバグが見つかることがあります。私たちの場合は、EAに書き直す途中で、基準にしていたシミュレーターの側にバグが見つかりました。
  5. 実際の相場は、また別のデータ
    バックテストとまったく同じ結果にはならない、という前提で見るのが大事です。

データの確かめ方も含めたチェック項目はバックテストで騙されないためのチェックリストに、1年の当たりに乗らない考え方は過剰最適化(カーブフィッティング)とは?にまとめています。

次回は、ついにEAが実際の相場で動き出します。
バックテストでもシミュレーターでもない、これからの値動きの中で、EAは何をしたのか。
連載の、ひと区切りの回です。

このころのEAの詳細スコア

第10話で出てきたEAのバックテスト(過去データ)の成績です。ポンドドル、初期資金100万円。

ポンドドルMT4のEA
(ポンドドル)2025.05〜2026.05
簡易モデル
収支+1.8万円
成績スコア0.34
最大DD5.2万円
(5.0%)
PF1.19
勝率—
ペイオフレシオ—
最大連敗—
取引回数14回
(月1.1)
上位3回を除く収支—
t値—

※成績スコア=収支÷最大ドローダウン(DD、一番へこんだ分の何倍稼げたか)。PF=総利益÷総損失。ペイオフレシオ=平均利益÷平均損失。
※t値は、平均の利益がゼロからどれだけ離れているかの目安。2以上で「偶然とは言いにくい」とされます。
※品質=MT4のモデリング品質。簡易モデルは、ローソク足の中の値動きを大まかに再現する方法です。
※このEAは1回のエントリーを分けて決済するので、取引回数はエントリーの数です。1回ごとの数字(勝率・連敗など)は出していません。
※過去データでの結果で、将来の成績を保証するものではありません。


関連: ラボ長のEA開発ストーリー / バックテストと検証 / Claude CodeでEAを作る
連載: 第1話 / 第2話 / 第3話 / 第4話 / 第5話 / 第6話 / 第7話 / 第8話 / 第9話
あわせて読みたい: ドローダウンから必要資金を考える

※本ブログの成績はすべて私個人の記録であり、将来の利益を保証するものではありません。バックテストの結果は過去のデータによるものです。投資は自己責任でお願いします。

コメント