EAの過去データでの検証の成績は、計算の作りで変わる。私が自分の検証を、MT5のテスターと1件ずつ突き合わせた手順と理由
FX聖杯研究所の所長です。50歳のシステムエンジニアで、「勝てそう」に見える自動売買の手法を、過去データで確かめて壊していく記録をつけています。
私は、売買ルールを過去データで確かめるとき、自分で書いた検証のプログラムを使っています。今日は、そのプログラムの数字を信じる前にやった作業を書きます。MT5(FXの取引ソフト)のテスターと、取引を1件ずつ突き合わせた話です。
この記事に出てくる数字は、すべて説明のための計算例です。 私自身の検証結果や成績ではありません。突き合わせた結果の数字(何件合ったか、どれだけずれたか)も書きません。
結論
テスターは、MT5に付いている、過去の値動きで売買を試す機能です。EA(FXの売買を自動で行うプログラム)の商品ページの「バックテスト」のタブに出る数字も、こうした取引ソフトの検証機能で出したものだと、私は読んでいます。
突き合わせて分かったことの考え方は、次の3つです。
- 同じ売買ルール・同じ期間でも、計算の作りが違えば成績は違う。 計算例では、1件の決済の値段の扱いだけで、損益が2倍になった
- だから、自分の検証の数字は、テスターと1件ずつ比べてから使う。 比べる項目と合格の線は、比べる前に決めた
- 商品ページでも、数字の出どころを先に確かめる。 「バックテスト」のタブの数字と、成績の欄の数字は、別のやり方で出た数字
なぜ突き合わせるのか
計算の作りの違いが、どれだけ損益を動かすか。計算例で見ます。
ドル円を149.800円で1万通貨(1万ドル分)買い、利確の線を150.000円に置いたとします。利確は、決めた線まで勝ったら自動で決済することです。
金曜の最後の値段は149.950円でした。ところが週明けの月曜、値段は150.200円から始まりました。週末のあいだに値段が飛び、利確の線を越えて始まったのです。
このとき、どの値段で決済したことにするかは、計算の作りで違います。
条件:ドル円・1万通貨・取引1回。取引コスト(買値と売値の差や手数料)は入れていません。説明のための計算例です。
計算Aは、利確の線の150.000円で決済したことにします。損益は+2,000円です。計算Bは、週明けの最初の値段の150.200円で決済したことにします。損益は+4,000円です。
同じ取引なのに、1件で2倍違います。こうした違いが何百回もの取引に積み重なれば、合計の成績は別物になります。どちらの扱いが正しいかは、この記事では書きません。大事なのは、自分の計算がどちらの扱いかを、知らないまま使わないことです。
確かめるためだけの、小さなEAを作った
突き合わせには、確かめるためだけの小さなEAを作りました。売買の判断ルールは、ほとんど持たせていません。
小さくしたのは、合わないときに原因をたどれるようにするためです。判断ルールが複雑だと、ずれたのが判断のせいか、値段の計算のせいか、分からなくなります。
このEAは、テスターの中でしか動かない作りにしました。うっかり本物の口座で動かしても、注文の前に止まります。過去の値動きで試すだけで、本物の注文は1件も出していません。
1件ずつ並べて比べ、合格の線を先に決める
手順は、下の図のとおりです。
テスターの取引の一覧と、自分の検証の取引の一覧を、1件ずつ横に並べます。比べた項目と、比べる前に決めた合格の線(取引の数とやり直しの決まりも含めた7行)は、次の表です。
損益には、手数料とスワップを含めました。スワップは、持ち高を翌日に持ち越したときに付く、2つの通貨の金利の差です。どちらも、入れ忘れると1件ずつの損益が合いません。
合格の線を比べる前に決めたのは、結果を見てから線を動かせないようにするためです。合わない取引が出たとき、線を広げて合格にしてしまえば、突き合わせた意味がなくなります。
合わない取引が出たら、原因を1つずつ探します。週明けに値段が飛んだときの決済の値段、手数料がいつ付くか、スワップが何曜日に何日分付くか、などです。
テスターに合わせるのは、物差しをそろえるため
原因が分かったら、自分の検証のプログラムをテスターに合わせて直しました。
テスターが本番と同じだから合わせた、のではありません。テスターにも、本番とは違う置き方があります。たとえば、買値と売値の差(スプレッド)をどう置くかです。
合わせたのは、物差しをそろえるためです。商品ページの「バックテスト」のタブの数字も、こうした機能で出たものだと読んでいるからです。物差しがそろっていれば、自分の数字と商品ページの数字を、同じ土俵で読めます。
本番とのずれは、別に測ります。買値と売値の差を時間帯ごとに測る作業は、その1つです。
最後に、同じ条件で3回やり直し、3回とも同じ結果になるかを確かめました。毎回違う結果が出るなら、どの数字を信じてよいか決められないからです。
GogoJungleの商品ページでは、ここを見る
ここからは、GogoJungleの商品ページで、この記事の考え方をどこで使うかの話です。項目の名前は、2026年9月26日・10月1日・10月19日に、売れ筋の商品ページ2件で確かめたものです。商品や時期によって、表示が違うことがあります。
次の順で見てください。
- 数字の前に、どのタブの数字かを確かめる。 商品ページには「フォワードテスト」と「バックテスト」のタブがあります。成績の欄に並ぶ数字は、出品後の計測(フォワード)の数字でした。過去データでの検証の数字は、「バックテスト」のタブにあります
- 「バックテスト」のタブでは、期間と品質を探す。 期間は2件とも載っていました。品質の値(%)は1件だけで、売れ筋でも載っているとは限りません
- 「フォワードテスト」のタブは、作った後の期間の成績として読む。 GogoJungleが、初期設定のままデモ口座で動かした成績です。過去データに合わせて作れない期間の数字です
同じ「収益」や「最大ドローダウン」でも、どのタブの、どのやり方で出た数字かで意味が変わります。これは、私が自分の検証とテスターを突き合わせたのと同じ問いです。
過去データでの検証の期間と品質の読み方は、前の記事に詳しく書きました。
期間と品質の記事「EAの過去データでの検証は「期間」と「品質」を見る。同じ100回の取引でもPFが2.33にも1.00にもなる計算例」:https://www.gogojungle.co.jp/finance/navi/articles/127333
最後に
今日の計算例では、同じ1件の取引が、決済の値段の扱いだけで+2,000円にも+4,000円にもなりました。私は自分の検証の数字を使う前に、テスターと1件ずつ突き合わせ、比べる前に決めた線で確かめました。
突き合わせのプログラムと、この記事の表と図はAIを使って作り、計算例の数字はすべてプログラムで確かめています。
必ず勝てる方法を約束することはしません。それでも私は、聖杯があると信じて探しています。私の言う聖杯は、取引コストを入れても、まだ見ていない期間でも崩れない売買ルールです。
聖杯を見分ける数字そのものが、どの計算で出たか分からなければ、本物か偽物かも決められません。次に商品ページを開いたら、数字を読む前に「どのタブの、どのやり方で出た数字か」を確かめてください。
数字の出どころを確かめられた分だけ、聖杯に1歩近づきます。
検証の作りのずれ(崩れ方の型の1つ)を含む、崩れ方5つの型の見分け方と、負け始めたときに止めるか続けるかを決める線の書き方は、有料記事(980円)に書いています。
有料記事「EAが負け始めたら、止めるか続けるか。数か月の成績では見分けにくい理由と、崩れ方5つの型・止める線の書き方」:https://www.gogojungle.co.jp/finance/navi/articles/128308
用語のまとめ
- EA:FXの売買を自動で行うプログラム
- MT5:FXの取引ソフト
- テスター:MT5に付いている、過去の値動きで売買を試す機能
- 利確:決めた線まで勝ったら自動で決済すること
- 損切り:決めた線まで負けたら自動で決済すること
- 1万通貨:取引の量。ドル円なら1万ドル分
- スワップ:持ち高を翌日に持ち越したときに付く、2つの通貨の金利の差
- 取引コスト:売買のたびにかかるお金。買値と売値の差(スプレッド)や手数料
- フォワード:出品後に計測した成績。過去データに合わせて作れない期間の数字
- 最大ドローダウン:資産が一番多かったときからの、目減りの一番大きい額
- 損益:利益と損失を合わせた額
- PF:総利益を総損失で割った数字。1.0で損益トントン
- 品質(%):過去データでの検証に使った値動きのデータが、どれだけ細かくそろっていたかを%で表した数字
※この記事は投資の助言ではありません。数字はすべて説明のための計算例です。