MT4/MT5のバックテストができない原因|結果がおかしいときの確認項目
MT4/MT5のバックテストが実行できない、結果が実運用と合わないときの原因を整理しました。EAが選べない、ヒストリーデータ不足、モデリング品質が90%を超えない、コスト設定のずれを症状・原因・対処の表で切り分けます。
PR当ページにはプロモーション(アフィリエイト広告)が含まれます。順位・評価は公開の評価基準に基づき編集部が独立して決定しています。EAの成績はすべて過去の検証結果であり、将来の利益を保証するものではありません。海外FX業者は金融庁未登録です。
この記事の目次
バックテストのトラブルは、大きく2種類に分かれます。「そもそも実行できない」系と、「実行はできるが結果が信用できない」系です。前者はファイル配置とヒストリーデータの問題で、後者はテスト条件の設定で起きます。この記事では、ストラテジーテスターでよく報告される症状を表で整理し、MT4のモデリング品質90%が構造的な上限であることや、スプレッド・手数料の設定ミスが結果をどう歪めるかまでを、公式仕様に基づいて確認していきます。
結論:症状は2系統に分かれる
✅ 結論
「テスターが動かない」なら、ファイル配置・コンパイル・ヒストリーデータの3つを確認します。「結果がおかしい」なら、ティックモデル・スプレッド・手数料・スワップ・複利設定を確認します。原因の層が違うので、混ぜて調べると遠回りになります。
なお、そもそもEAがチャートで稼働しない段階でつまずいている場合は、 EAが動かない原因25項目チェックリスト を先に確認してください。テスター以前の設定が原因のことがあります。
症状別の早見表
| 症状 | 主な原因 | 対処 |
|---|---|---|
| テスターのEA一覧に名前が出ない | ファイルの置き場所が違う/未コンパイル | データフォルダの |
| ソースを入れたがエラーで動かない | コンパイルに失敗している | 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年など短い期間で実行し、テスター自体は動くことを確かめます。
- 「ツール→オプション→チャート」の設定を確認する。 「ヒストリー内の最大バー数」「チャートの最大バー数」が小さいと、長期間のデータを保持できません。十分大きな値(例:
99999999)にしておきます。 - 外部データを取り込んでいる場合は、ファイルの配置場所を確認する。 MT4ではバックテスト用のティックファイルが
tester\history\に、バー履歴がhistory\<サーバー名>\に置かれます。MT5のバー履歴はbases\<サーバー名>\です。 - サーバー名が一致しているか確認する。 ヒストリーはサーバー名ごとのフォルダで管理されます。別サーバーのデータは読まれません。
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%から上がりません。設定が間違っているのでしょうか?
Q.M1チャートでバックテストしたら品質25%と出ました。異常ですか?
Q.一度99%になったのに、次に開いたら90%に戻っていました。
Q.バックテストの成績は良いのに、実運用だと全然勝てません。
Q.MT5なら実ティックでテストできると聞きました。MT4でも同じことはできますか?
関連記事
EAが動かない原因25項目チェックリスト|MT4/MT5の症状別対処法
更新: 2026年9月24日
トラブル解決MT4/MT5の注文エラー一覧と原因|Invalid stopsからNo connectionまで
更新: 2026年9月24日
トラブル解決EAで口座凍結される典型パターン|規約違反になる行為を原文で確認
更新: 2026年9月24日
トラブル解決GEMFOREX問題のその後|Galaxy DAO運営停止までの経緯を時系列で整理
更新: 2026年9月24日
トラブル解決スマイルマークが出ない・自動売買ボタンが押せないときの直し方【MT4/MT5】
更新: 2026年9月24日
トラブル解決EA詐欺の見分け方15項目|公的窓口への相談手順と一次情報の確認方法
更新: 2026年9月24日