最終更新: 2026年6月
「バックテストが全然動かない」「何もしていないのに成績が急変した」「結果が右肩下がりでおかしい」——MT4のバックテストでつまずく場面は意外と多いです。
私も最初の頃は「EAが壊れたかな?」と慌てて設定をいじり回して、余計に混乱したことがあります。でも原因の多くはシンプルで、チェックリストを順番に確認すれば解決できることがほとんどです。
この記事では、MT4バックテストでよく起きるトラブルを症状別に整理して、具体的な対処法とともに紹介します。
バックテストがまったく実行されない(取引回数ゼロ)
これが最も多い問い合わせパターンです。「EAは設定できているのに取引が一件も発生しない」という状況は、原因が限られているため順番に確認すれば解決できます。
原因1: 取引データが期間に存在しない
これが最も多い原因です。バックテストで指定した期間のチャートデータがMT4に保存されていない場合、EAが動く「価格データ」がないため取引が一件も発生しません。
解決策:
- MT4の「ツール → ヒストリーセンター」を開く
- 対象の通貨ペアと時間足を選択して「ダウンロード」を実行
- データが取り込まれたことを確認してからバックテストを再実行する
ヒストリカルデータは、MT4を起動してチャートを表示しているだけでは過去分が自動的に全部保存されるわけではありません。長期バックテスト(5年・10年分)を行いたい場合は、手動でダウンロードが必要です。
データが十分にダウンロードされているか確認する方法: ヒストリーセンターで対象の通貨ペアを選択し、表示されているデータの開始日が自分のバックテスト開始日より前になっているかを確認してください。
原因2: スプレッド設定が高すぎる
バックテストのスプレッド設定値が、EAの利確幅よりも大きい場合、全ての取引が即座にマイナスになり「約定したのと同時に損切り発動」という状況が続いて取引数がゼロになることがあります。
一度スプレッドを「3」(0.3pip相当)程度に下げてみて、それで取引が発生するか確認してください。発生すれば「スプレッド設定が問題」と特定できます。
スキャルピング系のEAで利確幅が10pips未満の場合、スプレッドの影響を特に受けやすいです。ブローカーの実際のスプレッドに近い値を設定することを徹底してください。
原因3: 通貨ペアの設定ミス
ストラテジーテスターの「通貨ペア」設定が、EAで想定している通貨ペアと異なる場合。例えばEURUSD専用のEAを「USDJPY」でテストしても、意図した動作にならないことがあります。
EA設定画面を開いて、内部で通貨ペアが固定されていないか確認してください。
バックテスト結果が急に変わった
原因: ヒストリカルデータが更新された
MT4のヒストリカルデータは、ブローカーのサーバーからダウンロードするたびに若干の修正が加えられることがあります。データが更新されると、同じEAでも過去のバックテストと結果が変わることがあります。
「何もしていないのに成績が落ちた」というパターンの多くがこれです。特定の日時の価格データが修正されていると、そのタイミングのシグナル判定が変わるためです。
解決策: 問題の原因を特定するのは難しいですが、使用するデータソースを一定にする(ブローカーを変えない)ことで変動を最小化できます。
より精度の高いバックテストを行いたい場合は、外部の高品質なヒストリカルデータ(Dukascopやbarchart等から取得)を使う方法があります。これにより、ブローカーによるデータ修正の影響を受けにくくなります。
原因: スワップ設定の変化
バックテストではスワップ(金利コスト)も損益に影響します。ブローカーのスワップレートが変わると、長期ポジションを持つEAの成績が変化します。バックテストのスワップ設定で「現在のスワップを使用」にしている場合、バックテストを実行する日付によって結果が変わります。
長期ポジションを取るスワップ系EAのバックテストでは、スワップ設定を「実際のブローカーの数値」に固定することで、結果の再現性が高まります。
バックテストの精度が低い(モデルティック数が少ない)
症状: バックテストレポートのモデルティック数が極端に少ない
バックテスト結果レポートの「モデルティック数」が「取引ティック数の90%を下回る」場合、データ品質が低いことを示しています。
解決策: テストモードを「全ティック」に変更する
ストラテジーテスターの「モデル」設定を「全ティック」に変更します。
| モデル設定 | 精度 | 速度 | 推奨場面 | |---|---|---|---| | 全ティック | 最高 | 遅い | 最終的な精度確認 | | コントロールポイント | 中程度 | 中程度 | 開発中の仮検証 | | 始値のみ | 最低 | 最速 | 大まかな動作確認のみ |
スキャルピングEAや、価格が特定レベルに触れたかどうかを判定するEAは「全ティック」でないと結果が大きく狂います。「始値のみ」モードは、日足で動くようなトレンドフォローEAの大まかな確認程度にしか使えません。
「全ティック」モードで90%以上の品質を達成するには、ブローカーが提供するデータ(M1足)が十分にダウンロードされている必要があります。ヒストリーセンターでM1足のデータを事前にダウンロードしてからバックテストを実行してください。
バックテスト結果が表示されない(最適化結果タブが空)
原因: マイナス結果の非表示設定
MT4の最適化実行後、「最適化結果」タブにデータが表示されない場合、デフォルト設定で「損益がマイナスの組み合わせを非表示」になっているのが原因です。
解決策:
- 「最適化結果」タブ上で右クリック
- 「マイナスの結果を表示しない」のチェックを外す
これで全ての最適化結果が表示されます。
最適化結果が全てマイナスの場合は、EAのパラメーター設定の範囲が適切でないか、EAのロジック自体が対象期間の相場に合っていない可能性があります。まず少数のパラメーター範囲から始めて、正の結果が出る組み合わせを探してから範囲を広げる手順をおすすめします。
バックテストが右肩下がりになる
よくある誤解: バックテストが「おかしい」のではなくEAが「使えない」だけ
右肩下がりのバックテスト結果は、多くの場合「バックテストの設定が間違っている」のではなく「そのEAの戦略が過去の相場で機能しなかった」という正直な結果です。
「バックテストがおかしい」と感じる前に、以下を確認してください。
- スプレッドが実際のブローカー水準に近いか
- 使用しているデータ期間に十分なデータがあるか
- EAのパラメーターが意図した設定になっているか
これら全て問題なく右肩下がりなら、そのEAの戦略自体を見直す必要があります。
右肩下がりのバックテスト結果を「バックテストの設定が悪い」と思ってスプレッドをゼロに下げたり、テスト期間を短くしたりして「良く見える」ように設定を変えるのは本末転倒です。バックテストが教えている「このEAは過去の相場で機能しなかった」という事実を受け入れることが重要です。
MT4バックテストのチェックリスト
問題が起きたときに順番に確認してください。
- [ ] 対象期間のヒストリカルデータは存在するか(ヒストリーセンターで確認)
- [ ] テストモードは「全ティック」か(精度が必要な場合)
- [ ] スプレッド設定は適切か(0になっていないか)
- [ ] 通貨ペアの設定はEAの仕様と合っているか
- [ ] 時間足の設定はEAに合っているか
- [ ] 「最適化結果を表示」の設定でマイナスが非表示になっていないか
- [ ] MT4を再起動してから試したか
- [ ] MT4の再インストールは試したか(上記で解決しない場合)
- [ ] M1足のデータが十分にダウンロードされているか(全ティックモード使用時)
副業トレーダーとして自分でEAのトラブルを解決したいなら、Claudeと会話しながらインジケータが作れるhedgrow-fxのようなAIツールに「この設定でバックテストがうまく動かない」と相談するのも有効な方法です。
まとめ:MT4バックテストトラブルの解決フロー
MT4バックテストの問題は、ほとんどが「データ不足・スプレッド設定・テストモード設定」の3つに集約されます。
- 取引回数ゼロ → ヒストリカルデータのダウンロードとスプレッド設定を確認
- 結果が急変 → データ更新とスワップ設定を確認
- 精度が低い → テストモードを「全ティック」に変更
- 最適化結果が空 → マイナス非表示設定を解除
- 右肩下がり → バックテスト設定ではなくEAロジック自体を見直す
バックテストは「EAの成績を正直に見せるツール」です。結果が悪くても、それはバックテストが壊れているのではなく、EAが教えている重要な情報です。焦らず原因を特定してから対処してください。
EAが稼働そのものができない問題についてはMT4のEAが稼働できない原因チェックリストの記事も参考にしてください。
よくある質問(FAQ)
Q: バックテストで取引回数がゼロなのにEAは設定できています。なぜですか? A: チャートデータが存在しないか、EAのエントリー条件が非常に厳しく過去のデータでは一度も条件を満たさなかったかのどちらかです。まずヒストリーセンターでデータを確認し、次にEAの条件ロジックを見直してください。
Q: 同じEAを同じ設定でバックテストしたのに結果が毎回違います。なぜですか? A: スプレッドを「現在のスプレッドを使用」に設定している場合、実行タイミングで値が変わります。固定スプレッド値を手動で設定することで再現性が上がります。また、ヒストリカルデータの更新も原因になります。
Q: バックテストの「モデル品質」が99%に達しません。 A: MT4の標準データでは90%台が上限になることが多いです。99%に達させるにはTick Data Suite等の外部データを使う必要があります。90%台なら実用上は問題ないケースがほとんどです。
Q: フォワードテスト(バックテスト内の将来シミュレーション)の使い方がわかりません。 A: ストラテジーテスターの「フォワード」設定で「1/2」を選ぶと、バックテスト期間の後半をフォワードテスト期間として確保できます。前半で最適化したパラメーターが後半(未使用データ)でも機能するかを確認するためのカーブフィッティング検出手法です。
Q: バックテストでは良い結果が出るのに、実際の運用では成績が落ちます。なぜですか? A: いくつかの原因が考えられます。まずスプレッドとスリッページの設定がリアルより甘い可能性があります。次にバックテストデータが実ブローカーの価格と異なる場合があります。また「カーブフィッティング」といって、過去データに過剰に最適化されたEAはフォワードで崩れやすい特性があります。ウォークフォワード分析を行って確認してください。
Q: MT4バックテストはMT5でも使えますか? A: MT4用のEA(MQL4)はMT4のストラテジーテスターのみで動作します。MT5でバックテストを行う場合はMQL5で書かれたEAが必要です。MT4とMT5はバックテストエンジンが異なり、MT5の方がより高精度なバックテストが可能とされています。
Q: バックテストの期間はどのくらい設定すれば良いですか? A: 最低でも3〜5年、できれば10年以上のデータで確認することを推奨します。短い期間では「たまたま相場環境が合っていた」という結果になる可能性が高いです。コロナショック(2020年)・テーパリング(2022年)・円安局面(2022〜2024年)など、異なる相場局面を複数含む期間でテストすることが重要です。
Q: バックテストの最適化で最も成績が良いパラメーターを本番で使っていいですか? A: 最適化で「最も成績が良い」パラメーターをそのまま使うのは過剰最適化のリスクがあります。複数のパラメーターセットがバランスよく良い成績を出している「ロバストな範囲」を選ぶことをおすすめします。また、フォワードテストで同様の結果が出ることを確認してから本番投入してください。
免責事項: 過去のバックテスト成績は将来の利益を保証しません。FX取引には元本割れリスクがあります。余剰資金のみで取引してください。
著者情報: 会社員トレーダー(FX副業歴7年・MT4歴6年)
