カスタム銘柄でバックテストする方法と落とし穴
MT5の「カスタム銘柄」を使うと、ブローカーが用意していない期間や外部から入手したティックデータでもバックテストができます。長い期間で検証したいときや、複数のデータソースで結果を比べたいときに役立つ機能です。
ただ、先に結論を書いておきます。カスタム銘柄で壊れやすいのはティックデータそのものより「銘柄仕様」のほうです。 digits、契約サイズ、ティックバリュー、スワップのどれか1つでも実際に運用するブローカーとずれていれば、データがどれだけ正確でもバックテストの数字は別物になります。しかも多くの場合、エラーは出ません。もっともらしい数字が出てくるだけです。
カスタム銘柄の仕組み
カスタム銘柄は、「価格データ」と「銘柄仕様」を利用者が自分で用意する仮想の銘柄です。
- 価格データ: ティック(Bid/Ask/時刻)か1分足をCSVなどから取り込む
- 銘柄仕様: 小数点以下の桁数、契約サイズ、ティックサイズ、証拠金の計算方法、スワップ、取引時間など
ストラテジーテスターは、取り込んだ価格をこの仕様に当てはめて損益や証拠金を計算します。ですから価格が正しくても、仕様の側が間違っていれば損益の計算全体がずれます。私たちが通常の銘柄よりカスタム銘柄を警戒しているのは、この「仕様を自分で決められてしまう」点があるからです。
📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック
登録するとすぐに、サイトの MT5 インジケーター13本をコンパイル済みファイル(.ex5)・ソースコード・使い方ガイドにまとめた登録者限定パックのダウンロードリンクが届きます。続けて、FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツなどを全8通(最初の5日間は毎日1通、その後は登録7・14・30日後)でお届けします。MQL5 Market 版(ローンチ価格・販売数に応じて段階的に値上げ)の値上げ前のお知らせも届きます。当サイトのEAは提携ブローカーのリアル口座があれば無料です。
※ プライバシーは厳守。配信解除はいつでも可能です。
作成と取り込みの基本手順
- 気配値表示で右クリック →「銘柄」を開き、「カスタム銘柄を作成」を選ぶ
- 「コピー元」に、実際に運用するブローカーの同じ銘柄を指定する(ここが一番重要です)
- 銘柄名を付ける(元の銘柄と区別できる名前にします)
- 「ティック」タブでティックのCSVを、または「バー」タブで1分足を取り込む
- 取り込んだ後、チャートを開いて欠損や異常な値がないか目で確認する
- テスターでカスタム銘柄を選び、「リアルティックに基づいたすべてのティック」で実行する
MT5の基本操作がまだの方は、先に MT5セットアップ で環境を整えておくと作業が楽になります。
同期漏れで結果が壊れる項目
コピー元を指定していても、取り込むデータの形式とかみ合っていなかったり、作成後にブローカー側の仕様が変わっていたりすれば、ずれは起きます。私たちが実際に確認している項目をまとめました。
| 項目 | ずれたときに起きること | 確認方法 |
|---|---|---|
| digits(小数点以下の桁数) | ポイント単位で指定するSL/TPの距離が桁違いになる | 取り込むデータの桁数と、ブローカーの銘柄仕様を並べて比べる |
| 契約サイズ | 1ロットあたりの損益が桁違いになる(ゴールドは特に要注意) | 1ロットで1ポイント動いたときの損益を手で計算して照合する |
| ティックサイズ・ティックバリュー | 損益の計算そのものがずれる | 仕様画面の値をブローカーの銘柄と比べる |
| 証拠金の計算方法・レバレッジ | 証拠金不足で止まるはずの局面を通り抜けてしまう | 証拠金の計算方式が一致しているか確認する |
| スワップ(値・方式・3倍デー) | 保有期間の長いEAで累計損益が大きくずれる | スワップの方式、ロング/ショートの値、3倍デーの曜日を確認する |
| 取引時間・タイムゾーン | 時間帯フィルターや日足の区切りがずれる | データのGMTオフセットとサーバー時間を合わせる |
| Bid/Askの有無 | Bidしかないデータではスプレッドがゼロ扱いになる場合がある | 取り込んだティックにAskが入っているか確認する |
digits:一番気付きにくい
たとえば5桁表示のブローカー向けに作ったEAを、3桁のデータで作ったカスタム銘柄で動かすと、「30ポイントのSL」の実際の価格幅は100倍になります。EAはエラーを出さずに動き続けるので、出てくる成績はまったく別の戦略のものです。
契約サイズ:ゴールドで事故が起きやすい
XAUUSDの1ロットが何オンスかはブローカーによって違います。コピー元を使わずに手で作ると、ここが既定値のまま残ることがあります。損益が桁違いになるので、ロット計算やドローダウンの評価が根本から崩れます。
スワップ:長期保有のEAほど効く
平均保有時間が数十時間あるトレンドフォロー型のEAでは、スワップの累計が損益に無視できない影響を与えます。ただしカスタム銘柄のスワップは固定値なので、過去にスワップ水準が変わってきたことは再現できません。私たちもここを正確に再現する方法は持っていません。結果には幅を持たせて読むべきところです。
限界と注意
カスタム銘柄で仕様をきちんと合わせても、次の点は残ります。
- 約定の再現はできない: スリッページ、約定拒否、指標発表時の急なスプレッド拡大は、データに入っていなければテストに反映されません。
- 外部データの品質は確かめきれない: 外部ティックの欠損やフィルタリングの有無を、私たちが完全に把握できるわけではありません。データソースを変えると成績が変わることは普通にあります。
- ブローカーとの価格差: 外部データの価格が、実際に運用するブローカーの配信価格と一致する保証はありません。スキャルピングなど値幅の小さいEAほど影響を受けます。
- 良い結果が出るほど疑う: 仕様のずれは、成績を良く見せる方向に働くこともあります。期待以上の数字が出たときこそ、仕様を確認し直してください。
結局のところ、カスタム銘柄は「検証の幅を広げる道具」であって、ブローカーのデータでの検証の代わりにはなりません。私たちは、ブローカーの実データとカスタム銘柄の両方で結果の向きが同じになるかを見るようにしています。
EAごとの検証条件は 実測ランキング の各ページで公開しています。検証の考え方については EA・MT5ノウハウ にもまとめています。
まとめ
- カスタム銘柄で壊れやすいのはデータより銘柄仕様
- 作成時は必ず運用するブローカーの同じ銘柄をコピー元にする
- digits、契約サイズ、ティックバリュー、スワップ、タイムゾーンは毎回照合する
- 1ロット・1ポイントあたりの損益を手で計算して確かめるのが手っ取り早い
- スワップの推移、約定、スリッページは再現できない
- 良すぎる結果が出たら、まず仕様のずれを疑う
関連記事
📧 無料メール講座(全8通)+登録者限定 MT5 インジケーター13本パック
登録するとすぐに、サイトの MT5 インジケーター13本をコンパイル済みファイル(.ex5)・ソースコード・使い方ガイドにまとめた登録者限定パックのダウンロードリンクが届きます。続けて、FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツなどを全8通(最初の5日間は毎日1通、その後は登録7・14・30日後)でお届けします。MQL5 Market 版(ローンチ価格・販売数に応じて段階的に値上げ)の値上げ前のお知らせも届きます。当サイトのEAは提携ブローカーのリアル口座があれば無料です。
※ プライバシーは厳守。配信解除はいつでも可能です。