MT4のストラテジーテスターが、もっともらしい数字を出してしまう2つの条件 ── PFより先に見る4行
n/a モデリング品質(壊れた結果) | 114 不整合チャートエラー | 4行 PFより先に見るレポートの行 |
MT4/MT5のインジケーターを作って、GogoJungleで販売している lab.aiueo です。
少し間が空きました。今日から、また続きを書いていきます。
MT4のストラテジーテスターは、EAを過去の相場で動かして、成績を出してくれる道具です。
ただ、条件によっては、壊れた数字をそれらしい顔で出します。エラーで止まってはくれません。
今日は、私が実際に踏んだ2つと、それぞれをレポートのどこで見分けるかを書きます。
1つ目:1分足が無い期間を「全ティック」で回した
何が起きたか
検証のために作ったEAを、ユーロドルの4時間足で、約13年分回しました。テストの方式は、いちばん細かい「全ティック」にしました。
出てきた数字は、PF0.71でした。
数字だけ見れば、「負けるEA」という結果です。ところが、レポートの上のほうには、こう出ていました。
- モデリング品質:n/a
- 不整合チャートエラー:114
この結果は、壊れていました。
なぜ壊れるのか
「全ティック」は、1分足をもとに、足の中の値動きを細かく作って動かす方式です。
ところが、私のMT4に入っていたユーロドルの1分足は、2026年4月以降の分だけでした。4時間足は2009年12月からあるのに、1分足は、テスト期間のほとんどにありませんでした。
1分足が無い期間は、足の中の値動きを作る材料がありません。それでもテスターは止まらず、最後まで回して、数字を出します。
見分け方
- レポートの「モデリング品質」が n/a になっていないか
- 「不整合チャートエラー」が0か
- テスト期間の最初から、1分足がそろっているか(「ツール」→「ヒストリーセンター」で確かめられます)
確定した足で判断するEAなら、「始値のみ」で回す
このEAは、足が確定したときにだけ判断します。足の途中の値動きは、判断に使いません。
こういうEAなら、テストの方式は「始値のみ」で足ります。足が確定するたびに1回動けばよいからです。1分足が無くても、4時間足さえあれば回せます。
「始値のみ」で回ったかどうかは、レポートの「モデルティック数」で分かります。私の環境では、テストした足の本数の、およそ2倍になっていました。
ただし、「始値のみ」では、足の中で損切りと利食いのどちらに先に触れたかまでは、細かく作られません。損切りと利食いが近く、同じ足の中で両方に届くようなEAでは、数字が実際とずれることがあります。
2つ目:スプレッドに0を入れたのに、0で回っていなかった
何が起きたか
コストを抜きにした「素の実力」を見るために、スプレッドを0にして回しました。2019年のEAを回し直した回で書いた、「まずスプレッド0で回す」です。
ところが、レポートの上のほうの「スプレッド」の行には、「現在値 (10)」と出ていました。0ではなく、そのときの口座のスプレッド(10ポイント)で回っていたのです。
見分け方
レポートの「スプレッド」の行が、設定したつもりの値と同じかを見ます。ここに出ている値が、実際に使われた値です。
0で回せないときは、2つの値から延ばす
スプレッドの欄の一覧にある値(たとえば2と10)で、2回回します。
スプレッドのコストは、スプレッドの大きさにほぼ比例して増えます。2回の結果を直線で結んで0まで延ばせば、スプレッド0のときの結果を見積もれます。
例を挙げます(数字は説明のためのものです)。
- スプレッド2で、純損益が+800ドル
- スプレッド10で、純損益が0ドル
- 8ポイント増えて800ドル減ったので、1ポイントあたり100ドル
- スプレッド0なら、+800ドルに2ポイント分の200ドルを足して、+1,000ドルくらい
このとき、2回で取引の回数が大きく違っていないかも確かめます。回数が違えば、直線では延ばせません。
PFより先に、レポートの上の4行を見る
2つとも、答えはレポートの上のほうに書いてありました。
- モデリング品質
- 不整合チャートエラー
- モデルティック数
- スプレッド
今は、PFや純損益を見る前に、この4行を見るようにしています。
テスターの数字が、テストの方式しだいで変わることは、2019年に作ったEAを回し直した回でも書きました。
検証の数字は、別の方法で出した数字と突き合わせるまで信じない、という話は、下記に書いています。こちらは、テスターではなく、私の検証スクリプトのほうが間違っていた話です。
作る側として、決めていること
- 確定した足で判断するEAは、「始値のみ」で回す
- 「全ティック」で回すときは、テスト期間の1分足がそろっているかを先に確かめる
- PFより先に、レポートの上の4行を見る
- スプレッド0の結果が要るときは、2つの値で回して延ばす
- テスターの数字は、別の方法で出した数字と突き合わせる
本記事は、私自身の検証の記録です。ストラテジーテスターの動きは、MT4のビルドや業者のデータによって異なることがあります。特定のEAや売買手法を勧めるものではなく、バックテストの結果は将来の成績を示すものではありません。投資判断はご自身の責任で行ってください。
最後まで読んでいただき、ありがとうございました。