本文へスキップ
検証・バックテスト

MT4/MT5バックテストのやり方|つまずきポイント別の完全手順

MT4とMT5のバックテスト手順を番号付きで解説。モデリング品質が上がらない、スプレッドが現実と違う、手数料が入っていないなど、結果を歪める7つのつまずきを設定画面ベースで潰します。

執筆: Redington 公開: 最終更新:

PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。

この記事の目次
  1. 結論:手順より「条件設定」で結果が変わる
  2. バックテストの前に決めておく3つのこと
    1. 1. どの業者・どの口座タイプを想定するか
    2. 2. 固定ロットか複利か
    3. 3. 何を確認したいのか
  3. MT4でバックテストを実行する手順
    1. MT4のヒストリーが勝手に上書きされる問題
  4. MT5でバックテストを実行する手順
    1. MT5の「実ティック」の3つの限界
  5. MT4とMT5のテスターの違い
  6. つまずき1:モデリング品質が上がらない
  7. つまずき2:スプレッドが現実と違う
  8. つまずき3:手数料とスワップが入っていない
  9. つまずき4:期間の選び方が恣意的になっている
  10. つまずき5:結果が表示されない・エラーで止まる
  11. レポートのどこを見るか
  12. 必ず追加で回す4本のテスト
  13. 最適化を回す前に知っておくこと
  14. 検証条件の記録テンプレート
  15. よくある失敗
  16. まとめ

MT4・MT5のバックテストは、ボタンの位置さえ覚えれば5分で実行できます。しかし「実行できること」と「結果が信用できること」は別の話です。ヒストリカルデータの質、スプレッド、手数料、スワップ、モデルの選択。このうち1つを間違えるだけで、損益の符号が反転することすらあります。この記事では実行手順を番号付きで示したうえで、結果を歪める代表的なつまずきを設定画面ベースで潰していきます。

結論:手順より「条件設定」で結果が変わる

✅ 結論

バックテストの信頼性を決めるのは、①ティックデータの質、②スプレッドと手数料の設定、③テスト期間の選び方、の3点です。MetaQuotesの公式記事では、同一EA・同一期間でティック生成モードを変えただけで純損益が「+169.46 → −466.81 → −97.24」と反転した実測が示されています(出典: MQL5 Articles 2612、2026年9月24日確認)。モードを書いていないバックテスト結果は、そもそも解釈できません。

以下、MT4とMT5それぞれの手順を分けて書きます。MT4とMT5ではテスターの仕組み自体が違うため、同じ画面だと思って操作すると必ずどこかで詰まります。両者の違いは MT4とMT5の違い でも整理しています。

バックテストの前に決めておく3つのこと

1. どの業者・どの口座タイプを想定するか

バックテストは「どこかの架空の業者」での成績ではありません。スプレッド・手数料・ストップレベル・サーバー時間(GMTオフセット)は業者と口座タイプで変わります。RAW/ECN口座を想定するなら往復手数料を必ず入れます。スタンダード口座を想定するなら手数料はゼロでスプレッドを広く取ります。ここを決めずに始めると、あとで全部やり直しになります。

2. 固定ロットか複利か

検証は必ず固定ロット(0.01など)で行います。 複利設定のバックテストは、終盤の少数トレードが結果を支配し、資産曲線が指数関数的に見えます。他のEAと比較することも、期待値を推定することもできません。複利の扱いは 複利運用シミュレーター で感覚をつかんでおくと、バックテストの数字の読み方が変わります。

3. 何を確認したいのか

「勝てるかどうか」ではなく、「どの相場でどう負けるか」を見るためにテストします。最大ドローダウン、連敗数、月次のばらつき。この3つを取りに行く意識で条件を組みます。

MT4でバックテストを実行する手順

ℹ️ 補足

メニュー名・項目名はターミナルのビルドや言語設定によって表記が異なる場合があります。見当たらない項目がある場合は、公式ドキュメント(MT4 Help - Strategy Testing Setup、2026年9月24日確認)を参照してください。

  1. EAを正しい場所に置く。 「ファイル」→「データフォルダを開く」で開いたフォルダの MQL4\Experts\ に .ex4(または .mq4)を置きます。置いたらMT4を再起動するか、ナビゲーター上で右クリック→「更新」を実行します。
  2. ヒストリカルデータを用意する。 「ツール」→「ヒストリーセンター」(F2)で対象通貨ペアの「1分足 (M1)」を選び、ダウンロードします。標準のサーバーデータは期間が短く、品質も業者依存です。本格的に検証するならこの段階で Tickstoryでのティックデータ取得 に切り替えます。
  3. バー数の上限を外す。 「ツール」→「オプション」→「チャート」タブで「ヒストリー内の最大バー数」「チャートの最大バー数」を十分大きな値(例: 99999999)にします。ここが小さいと古いデータが切り捨てられ、モデリング品質が上がりません。
  4. テスターを開く。 「表示」→「ストラテジーテスター」(Ctrl+R)でウィンドウ下部にテスターが開きます。
  5. エキスパートアドバイザを選ぶ。 左上のドロップダウンから対象EAを選択します。一覧に出ない場合は手順1のコンパイル・更新が未完了です。
  6. 通貨ペアと時間足を選ぶ。 EAの推奨時間足に合わせます。推奨が不明なEAは、まずEAの説明書を確認してください。推測で回しても意味のある結果は出ません。
  7. モデルを「全ティック」にする。 「コントロールポイント」「始値のみ」は粗い見積もり用です。公式ヘルプでも、コントロールポイント方式は「バー内で取引するEAの効率を粗く見積もることを意図している」と説明されています。
  8. 期間を指定する。 「日付の使用」にチェックを入れ、開始日・終了日を入力します。期間の決め方は バックテストの期間は何年必要か を参照してください。
  9. スプレッドを設定する。 「スプレッド」欄に数値を入れます。デフォルトは現在のスプレッドです。実運用の平均値以上を入れてください。
  10. エキスパート設定を開く。 「エキスパート設定」ボタン →「テスト設定」タブで初期証拠金と売買方向(Long & Short など)を指定し、「パラメーター入力」タブでEAのパラメータを設定します。
  11. 「スタート」を押す。 完了後、「結果」「グラフ」「レポート」タブで内容を確認します。
  12. レポート上部のモデリング品質を必ず確認する。 ここが90.00%未満なら、手順2〜3のデータ準備が不完全です。

MT4のヒストリーが勝手に上書きされる問題

MT4を起動したまま、あるいは対象ペアのチャートを開いたままにしていると、サーバーから取得したデータで .hst が上書きされ、せっかく準備した高品質データが失われて品質が90%(あるいはそれ以下)に戻ることがあります。TickstoryやTick Data Suiteはこれを防ぐ設定を持っています。

MT5でバックテストを実行する手順

  1. EAを配置する。 「ファイル」→「データフォルダを開く」→ MQL5\Experts\ に .ex5(または .mq5)を置き、ナビゲーターを更新します。
  2. テスターを開く。 「表示」→「ストラテジーテスター」(Ctrl+R)。
  3. 「設定」タブでエキスパートを選ぶ。
  4. 銘柄と時間足を指定する。 MT5は銘柄名の末尾に接尾辞(EURUSD.m など)が付く業者があります。実際に使う口座の銘柄名を選んでください。
  5. 期間を指定する。 「日付」欄でプリセット(直近1年など)か「期間を指定」を選びます。
  6. モデル(ティック生成モード)を選ぶ。 標準では「Every tick based on real ticks(実ティックに基づく全ティック)」を選びます。5つのモードの違いは MT5のリアルティックと疑似ティック で詳しく解説しています。
  7. 預入金とレバレッジを設定する。 MT5は初期証拠金と口座レバレッジをテスター側で指定します。レバレッジを実口座と揃えないと、証拠金維持率の推移が現実と合いません。
  8. 遅延(Delay)を設定する。 MT5には注文の遅延をシミュレートする設定があります。「遅延なし」は理想条件です。本番想定なら数十〜数百ミリ秒のプリセット、またはランダム遅延を選びます。ただしランダム遅延は「始値のみ」モードでは使えません。
  9. 「スタート」を押す。 初回は実ティックのダウンロードに長時間かかることがあります。
  10. 「バックテスト」「結果」「グラフ」タブを確認する。 MT5は残高ベースと有効証拠金ベースのドローダウンを別々に出力します。**見るべきはEquity Drawdown(有効証拠金ベース)**です。

MT5の「実ティック」の3つの限界

⚠️ 注意

「Every tick based on real ticks」は最も現実に近いモードですが、万能ではありません。①業者が配信したティックなので業者ごとに結果が変わる、②業者が保持している期間しか遡れない、③実ティックが存在しない区間は自動的に生成ティックにフォールバックするため「実ティック」と表示されていても全期間が実ティックとは限らない、という3点を理解しておいてください(出典: MT5 Help - Real and Generated Ticks、2026年9月24日確認)。

MT4とMT5のテスターの違い

項目

MT4

MT5

ティックの扱い

実ティック非対応。M1 OHLCから補間で生成

「実ティックに基づく全ティック」モードあり

モデリング品質の上限

標準で90.00%(M1データが全期間揃っている場合)

パーセント表示はなく、モード選択で示す

スプレッド

標準は固定値。可変にはTDS等の外部ツールが必要

テスターでは常に変動として扱われ、ヒストリカルデータから取得される

手数料

標準テスターに入力欄なし

口座設定から反映される

並列実行

単一スレッド

テストエージェントによる並列実行、MQL5 Cloud Network対応

複数通貨同時テスト

不可

可能

フォワード期間の自動分割

なし

最適化時に1/2・1/3・1/4・カスタムで指定可

出典: MT4 Help - Strategy Testing Setup / MT5 Help - Testing Features (2026年9月24日確認)

つまずき1:モデリング品質が上がらない

表示される値

何が起きているか

対処

25%前後

M1チャートをテスト対象にしている。M1より下位の時間足データが存在しないため、これ以上は上がらない

異常ではない。M1で検証する必要があるなら実ティックデータを用意する

50〜89%

対象期間のM1データに欠損がある

ヒストリーセンターで再ダウンロード、またはTickstory等で取得

90.00%

MT4標準での上限。M1データが揃っている状態

ここが標準ゴール。それ以上を求めるなら外部ツール

99.0 / 99.9%

実ティックを埋め込んだ.fxtを使っている

数値自体はデータ品質を保証しない(後述)

詳細は モデリング品質90%と99.9%の違い で解説しています。

つまずき2:スプレッドが現実と違う

MT4の標準テスターは固定スプレッドしか使えません。ここで実運用より狭い値を入れると、コストを構造的に過小評価します。

具体的な影響度で考えてみます。EURUSDで平均スプレッドを0.5pips過小評価している場合、年間1,000トレードのEAでは「1,000回 × 0.5pips」で年間500pips分の誤差になります。1ロット運用なら1pipsあたり約1,000円として、年間約50万円の誤差です。これは多くのEAの年間利益そのものと同じオーダーです。

💡 ポイント

スプレッドは「平均値で1回」ではなく、「平均値・1.5倍・2倍」の3本を必ず回してください。2倍で損益が反転するEAは、指標時やロールオーバー時に同じことが実運用で起きます。これが最も費用対効果の高いストレステストです。

可変スプレッドの再現方法は 可変スプレッドでバックテストする方法 にまとめています。

つまずき3:手数料とスワップが入っていない

手数料:RAW/ECN系口座はスプレッドが狭い代わりに往復手数料が発生します。換算式は「往復手数料 ÷ 1pipsの価値」です。

往復手数料(1ロット)

pips換算(1pip=$10の通貨ペア)

$2.0

0.2 pips

$4.0

0.4 pips

$6.0

0.6 pips

$10.0

1.0 pips

「RAW口座 0.1pips + 往復$6」は実質0.7pips、「スタンダード口座 1.5pips 手数料無料」より安い、という比較を必ず実質コストで行ってください。

スワップ:MT4のバックテストは、テスト実行時点のスワップ値を全期間に適用します。過去の金利環境は反映されません。数日〜数週間ポジションを保有するEAでは、数年分のバックテストでスワップが数百pips分も効いてしまいます。日をまたがないEAなら無視できますが、スイング系・ナンピン系では必ず影響を分離して評価してください。

つまずき4:期間の選び方が恣意的になっている

「直近3年で右肩上がり」は、そのロジックが機能した期間だけを切り出した結果かもしれません。最低限、以下の局面を含む期間でテストします。

  1. 2020年3月(コロナショック。スプレッドが数十pips拡大した業者がある)
  2. 2022年(急速な円安と各国の利上げ。トレンドが一方向に伸びた)
  3. 2024年8月(円キャリー取引の巻き戻し。短期間に大きな窓が開いた)

さらに、開始年を1年ずつずらした複数期間で回し、どの切り出し方でもプラスかを確認します。特定の年だけで稼いでいるなら再現性はありません。

つまずき5:結果が表示されない・エラーで止まる

症状

主な原因

対処

グラフも結果も空

対象期間に1度も取引条件を満たしていない

「エキスパート」タブのログを確認。期間・時間足・パラメータを見直す

「TestGenerator: no history data」

対象期間のM1データが存在しない

ヒストリーセンターで再取得、または期間を短くする

EAがテスターに表示されない

配置場所の誤り、未コンパイル

MQL4\Experts\/MQL5\Experts\を再確認し、ナビゲーターを更新

途中で止まる

メモリ不足、バー数上限

バー数設定とメモリを確認。期間を分割して実行

個別のエラーは バックテストのエラー対処 でも扱っています。

レポートのどこを見るか

バックテストが通ったら、次は読み方です。優先順位は以下の通りです。

  1. 有効証拠金ベースの最大ドローダウン(Equity Drawdown Maximal)。 残高ベースだけを見ると、ナンピン・マーチンゲール系EAの含み損が一切見えません。含み損は有効証拠金にしか現れません。
  2. 取引回数。 最低100回、実用的には300回以上。年間10トレードで5年のデータは統計的に無意味です。
  3. プロフィットファクター。 1.0がトントン。実運用の目安は1.2〜1.5以上ですが、3.0を超えるなら過剰最適化を疑います。
  4. 期待利得(1トレードあたり平均損益)。 これがスプレッド+手数料より十分大きいか。小さいEAはコストが少し変わるだけで破綻します。
  5. 最大連敗数と月次損益。 月次でプラス月が何割か、最悪月がいくらか、連続マイナス月の最長は何ヶ月か。

指標の数値を入れて自動で判定させたい場合は EA成績指標チェッカー が使えます。必要資金の逆算は 必要資金・許容DD計算機 へ。

指標の読み方は プロフィットファクターの目安 、 最大ドローダウンの目安 、 リカバリーファクター にそれぞれまとめています。

必ず追加で回す4本のテスト

1回のバックテストで判断してはいけません。最低限、次の4本を追加します。

  1. スプレッド2倍テスト。 コスト耐性を見る。
  2. 期間分割テスト。 全期間を前半・中盤・後半に切り、すべてでプラスかを見る。
  3. 近縁通貨ペアテスト。 EURUSD専用EAならGBPUSD・USDCHFでも回す。大勝ちしなくてよいので、「損益トントン」程度なら汎化しています。全部で大負けするなら、そのEAはEURUSDのノイズに合わせ込まれています。
  4. ウォークフォワード分析。 最適化を伴うなら必須です。手順は ウォークフォワード分析のやり方 にあります。

最適化を回す前に知っておくこと

テスターには最適化機能があり、パラメータを総当たりや遺伝的アルゴリズムで探索できます。ただし、ここが最も自分を騙しやすい場所です。

MT5の最適化モードは3種類です。「Slow complete algorithm(低速な完全アルゴリズム)」は全組み合わせを総当たりし、「Fast genetic based algorithm(高速な遺伝的アルゴリズム)」は遺伝的アルゴリズムで探索、「All symbols selected in Market Watch」は同一パラメータを複数銘柄で横断テストします(出典: MT5 Help - Strategy Optimization 、2026年9月24日確認)。

最適化を行う場合の最低限のルールは3つです。

  1. 全期間をIS(最適化用)とOOS(検証用)に分ける。 MT5なら「フォワード」欄で1/2・1/3・1/4・カスタムを指定できます。標準はIS : OOS = 2 : 1(1/3)です。
  2. OOSは必ず時系列上でISより後にする。 ランダム分割は先読みになるため使えません。
  3. OOSの結果を見てパラメータを変えたら、そのOOSはもうOOSではない。 これが最も多い自己欺瞞です。やり直すなら新しい期間を切ります。

判定の目安は「OOSのPFがISのPFの70%以上を保っているか」。OOSでPFが1.0を割るなら、そのパラメータはカーブフィッティングだと考えてください。詳しい判定基準は カーブフィッティングとは にまとめています。

なお、MQL5 Cloud Networkを使って大規模な総当たり最適化を投げると課金が発生します。公式の課金式は Money = Price × PR × Time(PRはエージェントの性能指標)で、PR=100のエージェントで1時間あたり$0.08、加えて転送トラフィック1MBあたり$0.00002です(出典: MT5 Help - MQL5 Cloud Network 、2026年9月24日確認)。そもそも数万パスの総当たりは過剰最適化の温床なので、パラメータ範囲を絞るほうが本質的な対策になります。

検証条件の記録テンプレート

バックテストは、条件を記録していなければ再現も比較もできません。毎回この6項目を残す習慣をつけてください。他人のバックテストを評価するときも、この6項目が書かれているかどうかが最初のフィルタになります。

記録項目

記入例

プラットフォームとビルド

MT5 build xxxx

ティックデータの出所

業者配信の実ティック/Dukascopy(Tickstory経由、取得日を明記)

モデル

Every tick based on real ticks

スプレッドと手数料

可変(データ由来)/往復$6.0(= 0.6pips相当)

期間・時間足・銘柄

2018-01-01〜2026-08-31 / H1 / EURUSD

ロットと初期資金

固定0.01ロット / $10,000 / レバレッジ1:500

💡 ポイント

販売者に成績を問い合わせるときは、この6項目に加えて「最適化で何通り試しましたか(試行数)」を聞いてみてください。試行数が分からないバックテストは、統計的に解釈する方法がありません。答えられない場合、その数字は参考値以上には使えないと考えるのが安全です。

よくある失敗

🚨 危険

販売ページに「モデリング品質99.9%」のスクリーンショットが載っていても、それは品質の証明になりません。MQL5フォーラムでは「モデリング品質のパーセンテージは.fxtファイルのヘッダに手動で設定できるので、それ自体は何も意味しない。意味があるのはデータの品質だけだ」と指摘されています(出典: MQL5 Forum 46355、2026年9月24日確認)。画像だけのバックテストは、数値を後から書き換えられます。

  • 複利設定のまま検証している。 資産曲線が指数関数的に見えるだけで、比較不能です。
  • 初期資金を極端に大きくしている。 相対ドローダウン(%)が小さく見えます。推奨初期資金での再テストが必要です。
  • ビジュアルモードで数分見て判断している。 見た目の納得感と統計的な有意性は別物です。
  • バックテストだけで購入を決めている。 バックテストしか公開していないEAの見方 も併せて確認してください。
  • デモフォワードを飛ばしている。 デモとリアルでも差が出ます。段階的な進め方は フォワードテストの設計 に整理しました。

まとめ

バックテストは「実行する技術」ではなく「条件を設計する技術」です。モデルを選び、データを揃え、スプレッドと手数料を現実に合わせ、期間を恣意的に切らない。この4点ができていれば、少なくとも自分を騙さずに済みます。

次に読むなら、データ品質の核心である モデリング品質90%と99.9%の違い 、最適化の落とし穴を扱った カーブフィッティングの判定基準 、そして検証と実運用の橋渡しになる バックテストとリアルが乖離する原因 の3本が順路としておすすめです。

よくある質問

Q.MT4のバックテストはどうやって始めますか?
MT4では「表示」→「ストラテジーテスター」(Ctrl+R)でテスターを開き、エキスパートアドバイザ・通貨ペア・モデル・期間・スプレッドを設定して「スタート」を押します。ただし手順そのものより、ヒストリカルデータの質とスプレッド設定のほうが結果に大きく影響します。詳しくはモデリング品質の解説を確認してください。
Q.モデリング品質が90%より上がりません。故障ですか?
故障ではありません。MT4は標準のM1データと「全ティック」モデルの組み合わせで最大90.00%になる仕様で、内部の重み係数によって構造的に90%を超えません。99%台にするにはTickstoryやTick Data Suiteなどで実ティックを埋め込んだ.fxtが必要です。なおM1チャートを対象にしたテストでは25%前後になりますが、これも異常ではありません。
Q.バックテストのスプレッドはいくつに設定すればいいですか?
単一の正解はありません。最低限、実際に使う口座の平均スプレッド以上を入れ、さらに1.5倍・2倍でも回して壊れないかを確認します。固定値でのテストはあくまで比較用のベンチマークです。指標時のスプレッド拡大が効くEAでは可変スプレッドでの検証が必要になります。
Q.バックテストの結果が表示されないのはなぜですか?
主な原因は、対象期間のヒストリカルデータが不足している、EAが1度も取引条件を満たしていない、日付範囲がデータ範囲外、といったものです。まず「操作履歴」「エキスパート」タブのログを確認してください。ログが空でないのにグラフだけ出ない場合は、時間足やモデルの組み合わせも見直します。
Q.バックテストで勝っていればそのEAは使えますか?
判断材料の一部にすぎません。バックテストはスリッページ・約定拒否・遅延を再現せず、スワップも実行時点の値が全期間に適用されます。バックテストとリアルの乖離を理解したうえで、フォワードテストまで進めて判断することが前提になります。

関連記事