最終更新: 2026年6月
バックテストのスプレッド設定を「0」のまま動かしている開発者がいる。あるいは「とりあえず2にしておく」という根拠のない設定も多い。これは、バックテストの信頼性を根本から損なう問題だ。
スプレッドはEAの損益に直接影響する。1pipのスプレッドで1日10回取引するEAなら、年間で約2,500pip(1万取引 × 1pip)がスプレッドコストとして消える計算になる。バックテストでスプレッドを0に設定すれば、その2,500pipが丸ごと「架空の利益」に化ける。
本記事では、MT4/MT5のストラテジーテスターにおけるスプレッド設定の正しい決め方を、技術的・統計的な観点から解説する。
MT4ストラテジーテスターのスプレッド設定の仕組み
直接回答: MT4のスプレッド設定はpip単位ではなくpoint単位で入力します。5桁表示ブローカー(EURUSD等)では1pip=10pointのため、平均スプレッドの1.5〜2倍の値をpoint換算して入力するのが実務上の推奨です。
単位は「point」であり「pip」ではない
MT4のストラテジーテスターでスプレッドを入力するフィールドの単位は「point(ポイント)」だ。5桁表示ブローカー(EURUSD等)では 1pip = 10 point になる。
ここを誤解しているケースが非常に多い。
- EURUSD の平均スプレッド = 0.3pip → ストラテジーテスターには 3 と入力
- USDJPY の平均スプレッド = 0.5pip → ストラテジーテスターには 5 と入力
- GBPUSD の平均スプレッド = 0.8pip → ストラテジーテスターには 8 と入力
4桁表示ブローカーを使う場合は 1pip = 1 point なので、そのままの数値を入力する。自分のMT4が5桁か4桁かは EURUSD の価格表示桁数で確認できる。
この誤解をしたまま「EURUSD スプレッド 0.3 → バックテストに0.3と入力」すると、実際より33倍も低いスプレッドでテストしていることになります。当然バックテスト成績は架空の好成績になります。
スプレッドの単位誤解によるバックテスト失敗は非常によくある問題です。私が初めてEAを設計したとき、EURUSDのバックテストでPF3.2という好成績が出て喜んでいましたが、スプレッド設定が0.3(point)になっていたことを後から気づきました。正しく3(point)に設定し直すとPFは1.6に落ちました。それでも悪くない数値でしたが、「架空の成績」を信頼して実稼働させていたら、実際の結果との乖離に困惑していたはずです。
「現在のスプレッド」と「固定スプレッド」の切り替え
ストラテジーテスターの設定画面で「スプレッド」フィールドに数値を直接入力すると、バックテスト全期間を通じてその固定スプレッドが適用される。
「現在のスプレッド」を使うオプションもあるが、バックテストを実行する時点のスプレッドが適用されるだけで、過去のスプレッド変動は反映されない。固定値で設定する方が再現性が高い。
適切なスプレッド値の決め方
ステップ1: ブローカーの実際のスプレッドを調べる
自分が使っているブローカーの「平均スプレッド」を確認する。確認方法は2つある。
方法A: myfxbookのSpread Comparison myfxbook.com の「Tools → Spreads」(Forex Broker Spread Comparison)でブローカー名・通貨ペアを選択すると、平均スプレッドが表示される。
方法B: MT4の「市場情報」ウィンドウ MT4上で「表示 → 通貨ペアリスト」を右クリック → 「スプレッドの列を表示」で、現在のスプレッドをリアルタイムで確認できる。
方法Aのmyfxbookは複数ブローカーの平均スプレッドを比較できるため特に有用です。ブローカーを検討している段階でも、スプレッドの透明性を確認するために活用できます。
複数の時間帯でスプレッドを確認することも重要です。東京時間(8:00〜17:00)・ロンドン時間(16:00〜25:00)・NY時間(21:00〜6:00)でスプレッドが異なります。特にロンドン時間のオープン直後やNY時間の終了後はスプレッドが広がる傾向があります。EA稼働時間帯の平均スプレッドを把握することが、現実的なバックテスト設定の前提になります。
ステップ2: 平均スプレッドに安全マージンを加える
平均スプレッドをそのままバックテスト設定値にすると、以下の要因が無視される。
- ニュース時のスプレッド拡大: 重要指標発表前後はスプレッドが数倍に広がる
- 東京早朝(深夜)のスプレッド拡大: 流動性が低い時間帯
- スリッページ: 注文が約定するまでの価格ずれ
筆者の実務では平均スプレッド × 1.5〜2.0倍をバックテスト設定値に使う。
| 通貨ペア | 典型的な平均スプレッド | バックテスト設定値(×1.5倍) | point換算 | |---|---|---|---| | EURUSD | 0.3 pip | 0.45 pip ≒ 0.5 pip | 5 | | USDJPY | 0.5 pip | 0.75 pip ≒ 0.8 pip | 8 | | GBPUSD | 0.8 pip | 1.2 pip | 12 | | AUDUSD | 0.5 pip | 0.75 pip | 8 | | EURUSD(スキャルピングEA)| 0.3 pip | 0.6 pip | 6 |
スキャルピングEA(1取引あたりの利幅が小さいEA)は特にスプレッドの影響が大きい。バックテストではやや厳しめのスプレッドで検証することを推奨する。
ニュース時のスプレッドについては注意が必要です。米国雇用統計や米国FOMC発表時には、通常の5〜10倍に広がるケースもあります。スキャルピング系EAでニュース時を除外するフィルターを設定しない場合は、「悲観シナリオ」のスプレッドでバックテストすることが重要になります。
ステップ3: 複数のスプレッド値でバックテストを実施する
単一のスプレッド値だけでなく、「楽観的・中立的・悲観的」の3シナリオでバックテストを実行する。
| シナリオ | スプレッド設定 | 目的 | |---|---|---| | 楽観シナリオ | 平均スプレッド | EAの理論最大性能を確認 | | 中立シナリオ | 平均 × 1.5倍 | 現実的な期待値の確認 | | 悲観シナリオ | 平均 × 2〜3倍 | ストレステスト(市場変動時の耐性確認) |
悲観シナリオでもプロフィットファクター1.3以上を維持するEAは、スプレッド変動に対してロバスト(頑健)と判断できる。
3シナリオのバックテストを実施することで、EAの「スプレッド感度」を把握できます。楽観シナリオではPF2.0を超えるが悲観シナリオではPF1.0を下回るEAは、スプレッドへの依存度が高く実運用リスクが高いと評価できます。逆に悲観シナリオでもPF1.5以上を維持するEAは、スプレッド変動に強いロバストなEAと評価できます。
3シナリオのバックテストを実施するときは、結果をスプレッドシートに記録しておくことを推奨します。楽観・中立・悲観でPFがどのように変化するかを視覚的に確認できると、スプレッド感度の評価が容易になります。また、EAを改修した際の前後比較にも活用できます。
スプレッド設定ミスがもたらす具体的な影響
数値で示す。
EURUSD・スキャルピングEA(1取引あたり平均利幅5pip)の例:
| バックテスト設定 | 年間取引500回のスプレッドコスト | 結果のPF | |---|---|---| | スプレッド0(ゼロ設定) | 0 pip | 2.5(架空の優秀EA) | | スプレッド3(0.3pip・実際値) | 150 pip(500×0.3) | 1.8 | | スプレッド6(0.6pip・安全マージン込み)| 300 pip | 1.4 | | スプレッド10(1.0pip・悲観シナリオ) | 500 pip | 1.1(ほぼ損益分岐点) |
同じEAでもスプレッド設定次第でPF2.5と1.1の差が生まれる。「バックテストPF3.0のEAが実運用でボロボロ」という現象の主要因の一つがこれだ。
この表が示すように、スキャルピング系EAはスプレッドに対して特に敏感です。1回あたりの利幅が5pipしかないEAにとって、スプレッドが1pipに広がれば利益の20%が消える計算になります。スキャルピングEAを設計・評価する際は、スプレッドの設定を最も厳格に確認してください。
この影響をポジションサイズで見ると更に明確になります。0.1ロット(EURUSD 10,000通貨)で年間500回取引するEAの場合、スプレッドが0.3pip(3point)と1.0pip(10point)では年間コスト差が350pip × 0.1ロット × 10ドル/pip = 350ドルになります。これはEAの年間利益の大きな割合を占める可能性があります。ロット数が増えるほど、スプレッドの影響は比例的に大きくなります。
通貨ペア別スプレッドの特性
通貨ペアによってスプレッドの特性が大きく異なります。EA設計時には通貨ペアのスプレッド特性を事前に把握することが重要です。
流動性が高い通貨ペア(スプレッドが小さい):
- EURUSD、USDJPY、GBPUSD、AUDUSD、USDCAD
これらは平均スプレッドが0.3〜1.0pip程度で安定しているが、重要指標発表時には依然として大きく広がる。
流動性がやや低い通貨ペア(スプレッドが大きい):
- EURGBP、NZDUSD、USDCHF
平均スプレッドが1〜3pip程度になりやすく、バックテストでのスプレッド設定をより大きく取る必要がある。
クロス円ペア(流動性が時間帯に依存):
- GBPJPY、EURJPY、AUDJPY
東京時間は比較的スプレッドが安定しているが、欧州〜NY時間のセッション切り替えや、ロンドン時間のオープン直後にスプレッドが拡大しやすい。
クロス円ペアでEAを動かす場合は、時間帯によるスプレッド変動を考慮したバックテストが特に重要です。EAに時間帯フィルターを組み込み、スプレッドが広がりやすい時間帯を取引対象外にする設計も有効です。ただし時間帯フィルターの追加はパラメーター数を増やすため、過剰最適化リスクにも注意が必要です。
Tick Data Suiteを使った可変スプレッドバックテスト
MT4の標準ストラテジーテスターは固定スプレッドしか設定できない。より現実に近いバックテストをしたい場合は、Tick Data Suite(外部ツール・有料)を使うと可変スプレッドの設定が可能だ。
Tick Data Suiteは実際のティックデータを使用し、時間帯別・ニュース時のスプレッド変動も再現できる。本格的にEAを開発・評価するなら導入価値は高い。
MT5を使っている場合は「リアルティックデータ」を使ったバックテストが可能で、実際のスプレッド変動も反映されます。MT4よりMT5の方がより現実に近いバックテストができる点で、スプレッド検証の観点からもMT5への移行を検討する価値があります。MT4とMT5の違いについてはMT4とMT5の違いを初心者向けに解説を参照してください。
Claudeと会話しながらインジケータが作れるhedgrow-fxでは、スプレッドを含むバックテスト条件の設定についてもAIと議論できるため、EA設計の壁打ちとして活用できる。
Tick Data Suiteの具体的な設定手順として、Dukascopyなどのティックデータプロバイダーからデータをダウンロードし、MT4のヒストリカルデータとして取り込む作業が必要です。設定は複雑ですが、一度設定が完了すれば時間帯別スプレッドを含むより現実的なバックテストが可能になります。スキャルピング系EAを本格的に開発する場合は、この投資(時間・費用)は十分に見合うものです。
EA購入時のスプレッド設定確認
市販のEAを購入する際も、ベンダーが提示するバックテストレポートのスプレッド設定を確認することが重要です。
確認すべき項目:
- バックテストレポートの「Testing environment」セクションの「Spread」値
- スプレッドが実際のブローカー水準に近い値が設定されているか
- 楽観・中立・悲観の複数シナリオのレポートが提供されているか
スプレッド設定が「Current(現在のスプレッド)」または0に近い値の場合は、スプレッドを過小に評価している可能性があります。このようなレポートしか提供されないベンダーのEAは慎重に判断してください。
EA購入前の重要な確認として「バックテストのスプレッド設定」は必ずチェックすべき項目です。ベンダーが「優秀なバックテスト成績」をアピールする際、スプレッド設定が不適切であれば、その成績は現実と乖離した数値である可能性があります。スプレッドの透明性が確認できないEAは、技術的な信頼性も低い可能性があります。
内部リンク:関連記事
- EAバックテスト全ティック設定の意味と精度 — バックテストモデルの選択がスプレッド設定と合わせて重要な理由
- EAフォワードテストのやり方と過剰最適化防止 — バックテスト後のフォワードテスト設計方法
- MT4とMT5の違いを初心者向けに解説 — MT5のリアルティックデータでのバックテスト優位性
まとめ
スプレッド設定はEAバックテストの信頼性を左右する重要な設定項目です。
- MT4のスプレッドはpip単位ではなくpoint単位で入力する(5桁表示では1pip=10point)
- 平均スプレッドの1.5〜2倍を安全マージンとして設定する
- 楽観・中立・悲観の3シナリオでバックテストし、スプレッド感度を確認する
- 悲観シナリオでPF1.3以上を維持するEAがロバストと判断できる
- スキャルピング系EAはスプレッドへの影響が特に大きいため、より厳格な設定が必要
- EA購入時はベンダーのバックテストレポートのスプレッド設定を必ず確認する
免責事項: バックテストの結果は過去データへの検証であり、将来の利益を保証しません。FX取引には元本割れリスクがあります。
よくある質問(FAQ)
Q: バックテストのスプレッドを0にしてはいけないのはなぜですか? A: スプレッドは取引のたびに発生するコストです。0に設定したバックテストはコストを全て無視した架空の結果であり、実運用の参考になりません。必ず実際のスプレッドに近い値を設定してください。
Q: ブローカーのスプレッドは変動するのですか?固定ではないのですか? A: ほとんどのブローカーは変動スプレッドを採用しています。「原則固定」と表示していても、ニュース時・東京時間早朝などに大きく広がります。バックテストでは平均スプレッドの1.5〜2倍を設定して安全マージンを持たせることを推奨します。
Q: MT5のバックテストでも同じスプレッド設定が必要ですか? A: はい。MT5も同様にpoint単位でスプレッドを設定します。MT5では「全ティック」データを使えばより精度の高い検証が可能ですが、スプレッドの設定方針は共通です。
Q: 複数通貨ペアを同時バックテストする場合はどうすればいいですか? A: 各通貨ペアに適したスプレッド値を個別に設定する必要があります。MT5のマルチ通貨バックテスト機能では、通貨ペアごとにスプレッドを設定できます。
Q: EAベンダーのバックテストレポートのスプレッド設定を確認するにはどうすればいいですか? A: バックテストレポートの「Testing environment」セクションに「Spread」値が記載されています。ここが「Current(現在のスプレッド)」または0に近い値の場合は、スプレッドを甘く見積もっている可能性があります。
Q: スキャルピングEAと長期EAではスプレッド設定を変えるべきですか? A: はい。スキャルピングEAは1取引あたりの利幅が小さいため、スプレッドの影響が相対的に大きいです。スキャルピングEAには平均スプレッドの2倍以上を設定したストレステストが特に重要です。長期EAは1取引あたりの利幅が大きいため、スプレッドの影響は相対的に小さくなります。
Q: スプレッドの他にバックテストで考慮すべきコストはありますか? A: スリッページが主要なものです。特に大口注文や流動性が低い時間帯の取引では、スリッページが数pip発生することがあります。MT4/MT5のバックテストではスリッページを個別に設定できます。スプレッドと合わせてスリッページも現実的な値を設定することが重要です。
Q: Tick Data Suiteは必ず導入すべきですか? A: スキャルピング系EAを本格的に開発する場合は導入価値があります。スイング系・長期EAの場合は固定スプレッドでのバックテストでも十分な場合が多いです。まず固定スプレッドの3シナリオテストを実施し、それでも実運用との乖離が大きい場合にTick Data Suiteの導入を検討する順序が合理的です。
著者情報: 金融工学専攻・アルゴリズム取引研究者(EA開発歴8年)
