本文へスキップ
トラブル解決

MT4/MT5のバックテストができない原因|結果がおかしいときの確認項目

MT4/MT5のバックテストが実行できない、結果が実運用と合わないときの原因を整理しました。EAが選べない、ヒストリーデータ不足、モデリング品質が90%を超えない、コスト設定のずれを症状・原因・対処の表で切り分けます。

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

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

この記事の目次
  1. 結論:症状は2系統に分かれる
  2. 症状別の早見表
  3. テスターでEAが選べない・結果が出ない
  4. ヒストリーデータが足りないとき
  5. モデリング品質が90%を超えない理由
    1. M1チャートのテストで25%になるのはなぜか
    2. 99%が次に開くと90%に戻る
  6. MT4とMT5でティックモデルが違う
  7. 結果が実運用と乖離する4つの設定
    1. スプレッド:可変か固定か
    2. スリッページ:標準テスターは再現しない
    3. 手数料:MT4標準テスターには入力欄がない
    4. スワップ:テスト実行時点の値が全期間に適用される
  8. 複利設定のバックテストは比較できない
  9. 「結果が良すぎる」ときに疑うこと
  10. よくある失敗
  11. まとめ

バックテストのトラブルは、大きく2種類に分かれます。「そもそも実行できない」系と、「実行はできるが結果が信用できない」系です。前者はファイル配置とヒストリーデータの問題で、後者はテスト条件の設定で起きます。この記事では、ストラテジーテスターでよく報告される症状を表で整理し、MT4のモデリング品質90%が構造的な上限であることや、スプレッド・手数料の設定ミスが結果をどう歪めるかまでを、公式仕様に基づいて確認していきます。

結論:症状は2系統に分かれる

✅ 結論

「テスターが動かない」なら、ファイル配置・コンパイル・ヒストリーデータの3つを確認します。「結果がおかしい」なら、ティックモデル・スプレッド・手数料・スワップ・複利設定を確認します。原因の層が違うので、混ぜて調べると遠回りになります。

なお、そもそもEAがチャートで稼働しない段階でつまずいている場合は、 EAが動かない原因25項目チェックリスト を先に確認してください。テスター以前の設定が原因のことがあります。

症状別の早見表

症状

主な原因

対処

テスターのEA一覧に名前が出ない

ファイルの置き場所が違う/未コンパイル

データフォルダの MQL4\Experts\(MT5は MQL5\Experts\)に置き、再起動または「更新」を実行する

ソースを入れたがエラーで動かない

コンパイルに失敗している

MetaEditorで「0 errors, 0 warnings」を確認する。MQL4ソースはMT5では通らない

実行しても結果が0トレード

指定期間にデータがない/EAの条件が成立していない

期間をデータのある範囲に変更する。ログでエラーを確認する

ヒストリーデータが足りないと表示される

対象期間のヒストリーが未取得

期間を短くするか、ヒストリーデータを用意する

モデリング品質が90%を超えない

MT4の構造的な上限

異常ではない。99%が必要なら実ティックデータを取り込む

M1のテストで品質25%になる

下位時間足データが存在しない

異常ではない

99%が次回90%に戻る

MT4のヒストリー自動上書き

ツール側の上書き防止設定を使う

結果が実運用と大きく違う

スプレッド・手数料・スワップ・スリッページの設定

条件を実運用に合わせて再テストする

結果が良すぎる

過剰最適化(カーブフィッティング)

期間外データ(OOS)で検証する

別のEAと成績が比較できない

複利設定でテストしている

固定ロットで取り直す

以下、それぞれを詳しく見ていきます。基本的な実行手順は MT4/MT5バックテストのやり方 にまとめています。

テスターでEAが選べない・結果が出ない

原因1:ファイルの置き場所が違う

MetaTraderのアプリケーションは、インストール先ではなく専用のデータフォルダから読み込まれます。メニューの「ファイル(File)」→「データフォルダを開く(Open Data Folder)」から開いたフォルダの MQL4\Experts\(MT5は MQL5\Experts\)に配置してください。インストールフォルダに置いても認識されません(出典: MetaTrader 4 Help - Terminal Start and Data Structure 、2026年9月24日確認)。配置後はMetaTraderを再起動するか、ナビゲーターで右クリックして「更新(Refresh)」を実行します。詳しい手順は EAの入れ方 を参照してください。

原因2:コンパイルが通っていない

.ex4 / .ex5 で配布されていればコンパイルは不要です。.mq4 / .mq5 のソースで配布された場合は、MetaEditorでコンパイルし「0 errors, 0 warnings」を確認します。エラーが出る場合は、依存するインクルードファイル(.mqh)が Include\ にあるか、MQL4ソースをMT5でコンパイルしようとしていないかを確認してください。後者は絶対に通りません。

原因3:指定期間にデータがない

テスターは指定した期間のヒストリーデータがなければ実行できません。0トレードで終わる場合、期間の指定がデータ範囲外という可能性があります。

原因4:EAが専用インジケーターを要求している

インジケーターを Indicators\ に入れ忘れると、無言で何も起きないことがあります。配布物のフォルダ構成をそのまま丸ごとコピーするのが安全です。

ヒストリーデータが足りないとき

テスターがヒストリー不足を訴える場合、対象期間のデータをMetaTraderが持っていません。

ℹ️ 補足

ヒストリーデータの取得手順やメニュー名は、MetaTraderのバージョンによって変わります。具体的な操作画面については、お使いのバージョンの公式ヘルプを参照してください。本記事では、原因の切り分けに必要な範囲のみを扱います。

確認する順序は次のとおりです。

  1. 検証期間をデータのある範囲に狭める。 まず直近1年など短い期間で実行し、テスター自体は動くことを確かめます。
  2. 「ツール→オプション→チャート」の設定を確認する。 「ヒストリー内の最大バー数」「チャートの最大バー数」が小さいと、長期間のデータを保持できません。十分大きな値(例: 99999999)にしておきます。
  3. 外部データを取り込んでいる場合は、ファイルの配置場所を確認する。 MT4ではバックテスト用のティックファイルが tester\history\ に、バー履歴が history\<サーバー名>\ に置かれます。MT5のバー履歴は bases\<サーバー名>\ です。
  4. サーバー名が一致しているか確認する。 ヒストリーはサーバー名ごとのフォルダで管理されます。別サーバーのデータは読まれません。

MT4で外部のティックデータを使う流れは Tickstoryの使い方 にまとめています。

モデリング品質が90%を超えない理由

これは設定ミスではありません。MT4の構造上の上限です。

MT4公式ヘルプはモデリング品質を「テスト中にモデル化されたティックの品質、パーセント表示」と定義しています(出典: MetaTrader 4 Help - Strategy Tester Results 、2026年9月24日確認)。

M1データが全期間そろっている状態で「Every tick(全ティック)」を選ぶと、モデリング品質は90.00%と表示されます。これがMT4の標準的な上限値です。

技術的には、MT4のモデリング品質は加重計算式で算出され、「分足でのモデリング開始からヒストリーデータ終端までの区間」に0.9という重み係数が掛けられています。この0.9が上限を作るため、M1データが完璧にそろっていても構造的に90%を超えません(参考: MQL4 Articles - What the Numbers in the Expert Testing Report Mean 、 MQL5 Forum - M1 modeling quality and backtests 、2026年9月24日確認)。

⚠️ 注意

90%は「M1データが揃っている」以上の意味を持ちません。M1バーの内側の値動きは依然として補間された架空のデータです。モデリング品質は「データの網羅性」の指標であって、「結果の信頼性」の指標ではありません。

この点は モデリング品質90%と99.9%は何が違うのか で詳しく扱っています。

M1チャートのテストで25%になるのはなぜか

M1データそのものをテスト対象時間足にしている場合、モデリング品質は25%を超えません。それより下位の時間足データが存在しないためです。M1チャートでのバックテストで25%と表示されるのは、異常ではありません。

品質バーの色分けも公式に定義されています。グレーは「利用可能なデータのうち、この部分はテストに使われなかった」区間、赤は「下位時間足の利用可能データが無いため、この区間ではモデリングが行われなかった」区間、緑は「この区間ではモデリングが行われた」区間です。緑が明るいほど品質が高く、H1のテストなら濃い緑はM30データ、最も明るい緑はM1データを使ったことを意味します。

99%が次に開くと90%に戻る

MT4を起動したまま、あるいはチャートを開いたままだと、サーバーからダウンロードされたデータでヒストリーファイルが上書きされ、モデリング品質が90%に戻ることがあります。TickstoryやTick Data Suiteは、これを防ぐ設定を持っています。

なお、99%表示は「実ティックを使った」ことの目印として業界で使われていますが、99%と表示させること自体は技術的に難しくなく、データの質を保証するものではありません。元データがどこ由来か(Dukascopyか、業者ティックか)を確認してください。

MT4とMT5でティックモデルが違う

「結果がおかしい」と感じたとき、そもそも何をシミュレートしているのかを確認する必要があります。

MT5には5種類のティック生成モードがあります(出典: MetaTrader 5 Help - Real and Generated Ticks 、2026年9月24日確認)。

モード

内容

Every tick based on real ticks

ブローカー等が蓄積した実際のティックデータを使用。公式は「実ティックでのテストと最適化は、可能な限り実際の条件に近い」としている

Every tick

1分足のOHLCから数学的アルゴリズムでティックを生成する。「このモードでは全てのティックが生成される — OHLC と中間ティック」

1 minute OHLC

1分足バーのOHLCティックのみを生成。テスト時間足に関係なく1分あたり4回実行される

Open prices only

バーの始値でのみ実行される。下位時間足データにアクセスできないなどの制限がある

Math calculations

数学的計算用。ヒストリカルデータを必要とせず、ティック生成も行わない

一方、MT4のモデリング方式は3種類です(出典: MetaTrader 4 Help - Strategy Testing Setup 、2026年9月24日確認)。「Every tick」は公式に「バー内の価格をモデリングする最も正確な方法」とされますが、コントロールポイント間には「あらかじめ定義されたテンプレートに基づく補間」が適用されます。

💡 ポイント

MT5は実ティックに公式対応していますが、MT4は実ティックを標準サポートしていません。MT4の「全ティック」も、結局は補間で作られた架空のティックです。MT4で同等の検証を行うには、サードパーティ製ツールが必要になります。

実ティックと生成ティックの違いは 実ティックと生成ティックの違い で整理しています。

なお、MT5の実ティックにも限界があります。業者が配信した実ティックである以上、業者ごとに結果が変わります。遡れる期間も業者が保持している範囲に限られます。さらに、実ティックが無い区間は自動的に生成ティックにフォールバックするため、「実ティック」と表示されていても全期間が実ティックとは限りません。

結果が実運用と乖離する4つの設定

🚨 危険

ここが最も結果を変える部分です。モデリング品質が99%でも、コスト設定が現実と違えば結果は意味を持ちません。

スプレッド:可変か固定か

MT4テスターの標準は固定スプレッドで、全期間に同じ値が適用されます。公式ヘルプには「『Spread』フィールドでテスト用のカスタムスプレッドを設定できる」とあります。比較用のベンチマークとしては有用ですが、単独で実運用の期待値とみなすことはできません。

MT5は扱いが異なります。公式は「スプレッドはモデル化されず、ヒストリカルデータから取得される」「ストラテジーテスターでは、スプレッドは常に変動(floating)として扱われる」と明記しています(出典: MT5 Help - Testing Features 、2026年9月24日確認)。ただし、ヒストリカルデータにスプレッドが無い区間は直前値が引き伸ばされるため、データ欠損区間では実態とずれます。

実務では、スプレッドを1.5倍・2倍にしたときの損益も必ず取ってください。これで壊れるEAは実運用でも壊れます。詳しくは 可変スプレッドでのバックテスト を参照してください。

スリッページ:標準テスターは再現しない

MT4/MT5の標準テスターはスリッページを一切シミュレートしません。 常に要求価格で約定します。簡易的な評価方法として、「1トレードあたりXpipsのコストを追加した場合に期待利得がプラスを保てるか」を、X=0.5/1.0/2.0で確認する方法があります。

手数料:MT4標準テスターには入力欄がない

ECN/RAW系口座は、スプレッドが狭い代わりに往復手数料が発生します。これを入れずにテストすると過大評価になります。MT4標準テスターには手数料入力欄がなく、MT5テスターは口座設定から反映されます。

往復手数料(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相当です。口座タイプの比較は、必ず実質コストで行ってください。

スワップ:テスト実行時点の値が全期間に適用される

MT4のバックテストは、テスト実行時点のスワップ値を全期間に適用します。過去の金利環境は反映されません。ポジション保有が数日から数週間に及ぶEAや、マイナススワップ通貨を長期保有するEAでは、数年のテストでスワップが数百pips分も効いてしまいます。日跨ぎしないEAであれば、この誤差は無視できます。

時間帯フィルタを持つEAでは、サーバー時刻のずれも乖離要因になります。 サーバー時間とGMTオフセット もあわせて確認してください。

複利設定のバックテストは比較できない

複利(資金比例ロット)でテストすると、終盤の少数のトレードが結果を支配し、資産曲線が指数関数的に見えます。EA同士を比較するときや、ロジックの良し悪しを判断するときは、固定ロットでの結果を取ってください。複利の成績表は比較不能です。

EAの成績指標をどう読むかは EA成績指標チェッカー で数値を入れながら確認できます。

「結果が良すぎる」ときに疑うこと

エラーは出ていないのに違和感がある場合、過剰最適化(カーブフィッティング)の可能性があります。判定の目安は次のとおりです。

判定基準

合格ライン

パラメータ数とトレード数の比

トレード数 ≧ パラメータ数 × 100

パラメータ感度

最適値の周辺 ±20% でも成績が大きく崩れない

期間外データ(OOS)の成績

OOSのPF ≧ ISのPF × 0.7

期間分割の安定性

前半・中盤・後半すべてでプラス

プロフィットファクター

3.0を大きく超えていないか

最適化は必ず全期間を分割し、前半(IS)だけで行います。後半(OOS)のデータは最適化には使いません。OOSの結果を見てパラメータを変えたら、そのOOSはもうOOSではありません。判定の詳細は カーブフィッティングの見抜き方 にまとめています。

よくある失敗

  • モデリング品質の数字だけで安心する。 99%でも、スプレッドが固定・手数料未計上なら結果は歪みます。
  • 90%が出ないと悩み続ける。 90%はMT4の構造的上限で、M1テストの25%も正常です。
  • デモの結果をそのまま信じる。 デモサーバーは約定を常に通すため、オフクォートやリクオートがほぼ発生しません。
  • 期間を恣意的に選ぶ。 そのロジックが機能した期間だけを切り出していないか、開始年をずらして確認します。
  • テスターのエラーとEAのエラーを混同する。 発注が拒否されている場合はコードが残ります。 MT4/MT5の注文エラー一覧 で意味を確認してください。
  • 画面の名称をネットの古い記事で調べる。 メニュー名はバージョンで変わります。操作手順は公式ヘルプで確認してください。

まとめ

バックテストのトラブルは、「実行できない」と「結果が信用できない」の2系統に分けると切り分けが早くなります。前者はファイル配置・コンパイル・ヒストリーデータ、後者はティックモデルとコスト設定が原因です。モデリング品質90%とM1テストの25%は、どちらもMT4の仕様であって異常ではありません。

条件設定の詳細は MT4/MT5バックテストのやり方 と モデリング品質90%と99.9%は何が違うのか を、EAが稼働しない段階でつまずいている場合は EAが動かない原因25項目チェックリスト を参照してください。

よくある質問

Q.モデリング品質が90%から上がりません。設定が間違っているのでしょうか?
間違っていません。MT4のモデリング品質は加重計算式で算出され、分足でのモデリング開始からヒストリーデータ終端までの区間に0.9という重み係数が掛かります。この0.9が上限を作るため、M1データが完璧に揃っていても構造的に90%を超えません。つまり90%は「M1データが揃っている」以上の意味を持ちません。それ以上を求める場合は、サードパーティ製ツールでティックデータを取り込む必要があります。詳細はモデリング品質90%と99.9%の違いを参照してください。
Q.M1チャートでバックテストしたら品質25%と出ました。異常ですか?
異常ではありません。MT4のモデリング品質は「より下位の時間足データをどれだけ使えたか」で決まります。M1はMT4で最も短い時間足なので、それより下のデータが存在しません。そのためM1を検証対象にすると、モデリング品質は25%を超えません。数値が低いこと自体が設定ミスを示すわけではない点に注意してください。M1で高い品質を求めるなら、実ティックデータを取り込む方法しかありません。
Q.一度99%になったのに、次に開いたら90%に戻っていました。
MT4のヒストリー自動上書きが原因の可能性があります。MT4を起動したまま、あるいはチャートを開いたままだと、サーバーからダウンロードされたデータでヒストリーファイルが上書きされ、モデリング品質が90%に戻ることがあります。TickstoryやTick Data Suiteには、これを防ぐための設定があります。あわせて「ツール→オプション→チャート」の「ヒストリー内の最大バー数」「チャートの最大バー数」を十分大きな値にしておいてください。
Q.バックテストの成績は良いのに、実運用だと全然勝てません。
テスト条件と実運用条件のずれが原因であることが多いです。MT4とMT5の標準テスターはスリッページを一切シミュレートせず、常に要求価格で約定します。またMT4標準テスターには手数料の入力欄がなく、RAW系口座の往復手数料が計上されません。スプレッドが固定になっていないか、手数料とスワップが入っているかを順に確認してください。バックテストと実運用が乖離する理由もあわせて確認できます。
Q.MT5なら実ティックでテストできると聞きました。MT4でも同じことはできますか?
MT5は「Every tick based on real ticks(実ティックに基づく全ティック)」というモードを公式に備えており、ブローカーが蓄積した実際のティックデータを使えます。一方、MT4は実ティックを標準サポートしていません。MT4で同等の検証を行うには、TickstoryやTick Data Suiteといったサードパーティ製ツールでティックデータを取り込む必要があります。MT4の「全ティック」モデルも、補間で作られた架空のティックである点に注意してください。

関連記事