最終更新: 2026年06月
MT5のストラテジーテスターは、MT4版と比べて大幅に機能強化されている。マルチスレッドによる並列処理、実ティックデータへのアクセス、複数シンボルの同時テスト——これらを使いこなせるかどうかで、EAのバックテスト品質が決定的に変わる。
本記事では、ストラテジーテスターの各設定項目の意味と使い分け、よくある設定ミスの回避方法、そして結果の正しい読み方を順を追って解説する。
MT5ストラテジーテスターの起動
メニューバーの「表示」→「ストラテジーテスター」、またはショートカットCtrl + Rで起動する。
画面下部にストラテジーテスターパネルが表示される。タブは「設定」「単一」「最適化」「最終結果」「グラフ」「レポート」「ジャーナル」で構成されており、基本操作は「設定」タブから始める。
MT4のストラテジーテスターと比べると、MT5版は視覚的なUIが整理されており、特に「最終結果」タブと「グラフ」タブの情報密度が大幅に上がっている。初めて触る際は焦らず各タブを順番に確認するのが良い。
起動後の初期確認ポイント
ストラテジーテスターを起動したら最初に確認すべき点が3つある。
- ジャーナルタブにエラーが出ていないか — 過去データが不足している場合、ここに警告が表示される
- グラフタブが空白でないか — テスト未実行の場合は当然空白だが、実行後も空白なら設定ミスを疑う
- EAリストにテスト対象が表示されているか — 表示されない場合はファイルの配置場所を再確認する
設定タブの各項目を理解する
エキスパートアドバイザー(EA)の選択
テスト対象のEAをドロップダウンから選択する。
.ex5ファイルをMT5のMQL5/Expertsフォルダに配置後、MT5を再起動すればリストに表示される。.ex4ファイルはMT5では動作しない——これはMT4からMT5に移行した際によくある混乱ポイントだ。
EAが表示されない場合は、「ファイル」→「データフォルダを開く」からフォルダの場所を確認する。インストール先が複数あるMT5環境では、意図しないMT5のデータフォルダに配置してしまうミスが起きやすい。
シンボル(通貨ペア)と時間足
EAが設計された通貨ペアと時間足を正確に指定する。たとえばEURUSD・H1向けに設計されたEAをUSDJPY・M15でテストしても意味のある結果は出ない。
時間足の選択は特に重要だ。同じ通貨ペアでも、H4のEAをM15でテストすると、シグナル発生頻度・損切り幅の計算・最適なパラメータがすべて異なる。EAの仕様書(ReadMeやコメント欄)に記載されている推奨設定に従うことを徹底する。
テスト期間
「開始日」と「終了日」で設定する。
筆者の基準:
- 最低限: 2年(直近1年 + 1年前のデータ。異なる相場環境を含むため)
- 推奨: 5年(トレンド相場・レンジ相場・高ボラティリティ局面を網羅する)
- 理想: 10年(2008年リーマンショック、2020年コロナショックを含む)
短期間だけのバックテストは、特定の相場環境に「偶然」適合しているEAを見落とせない。
特に2020年3月のコロナショック時のような急激な相場変動は、平常時に最適化されたEAを一気に破綻させる。この種の「テールリスク」を確認するためにも、10年以上のデータを使うことに価値がある。直近だけで良い結果が出ているEAは、過去の異常相場を乗り越えられるかを必ず確認してほしい。
モデル(これが最重要設定)
モデルとは、バックテストで使用するティックデータの生成方法を指定するものだ。
| モデル | 説明 | 精度 | 処理時間 | |---|---|---|---| | 全ティック | 実際の配信ティックデータを再現 | 最高 | 最長 | | リアルティックに基づいた全ティック | 実ティックデータを直接使用(MT5専用) | 最高 | 最長 | | 1分足OHLC | 1分足のOHLC値からティック補間 | 中 | 中 | | 始値のみ | バーの始値のみ使用 | 低 | 最短 | | 数値計算 | 数学的モデルで生成(精度低) | 最低 | 高速 |
筆者の使い分け:
- 初期確認: 「始値のみ」で高速にざっくり確認
- 本番評価: 「全ティック」または「リアルティックに基づいた全ティック」で精密に評価
スキャルピング系EA(数pip単位の取引)は特に「全ティック」必須だ。始値のみでのテストは、スプレッドの影響を正確に反映しないため、実際より大幅に優れた結果が出る。
「リアルティックに基づいた全ティック」はMT5にしか存在しないモデルで、MT4の「全ティック(疑似生成)」とは根本的に異なる。実際のブローカーから提供されたティックデータを使うため、スキャルピングEAの検証精度が飛躍的に向上する。このモデルが使えること自体が、MT5をバックテスト環境として選ぶ大きな理由の一つだ。
遅延(スリッページ設定)
発注から約定までの遅延時間を設定できる。
バックテストでは「即時約定」がデフォルトだが、実際のトレードではサーバーへの通信遅延が発生する。スキャルピング系EAは遅延の影響を強く受けるため、現実的な数値(5〜50ミリ秒程度)を設定してテストすることを推奨する。
VPS(仮想専用サーバー)経由でブローカーのサーバーに接続する場合、物理的な距離が近いほど遅延が小さくなる。東京・大阪のデータセンターを使うブローカーであれば、国内VPSからの接続で5〜15ミリ秒程度の遅延が一般的だ。
スプレッド設定
固定スプレッドか変動スプレッドか。
推奨: 変動スプレッドを選択し、対象通貨ペアの平均スプレッドより若干高い値で設定する。ニュース発表時などにスプレッドが急拡大することを考慮するためだ。
USDJPY・EURUSDの場合、平均スプレッドの1.5〜2倍程度を設定すると現実的な評価になる。
Claudeと会話しながらインジケータが作れるhedgrow-fxは、EAのロジック設計段階からAIと対話して進められるため、ストラテジーテスターで検証する前の設計品質を高めることができる。
バックテスト実行と結果の読み方
実行後の確認タブ
「グラフ」タブを開くと時系列の損益曲線が表示される。
理想的なグラフは右肩上がりで変動が小さいものだ。急激な上昇後に急落するグラフは、特定期間への過剰適合(オーバーフィッティング)を示唆する。
グラフを見る際は、全体の形状だけでなく「ドローダウンの深さ」と「回復期間」も確認する。深いドローダウンを比較的短期間で回復しているEAは、長期運用に耐えられる可能性が高い。逆に、浅いドローダウンが長期間続くパターンはEAが機能を失いかけているサインかもしれない。
レポートタブの重要指標
| 指標 | 見方 | 目安 | |---|---|---| | プロフィットファクター(PF) | 総利益÷総損失 | 1.3以上(2.0超は要注意) | | 最大ドローダウン | 口座残高の最大下落幅 | 20%以内推奨 | | 期待利得 | 1トレードあたりの期待収益 | プラスであること | | 取引回数 | テスト期間の総取引数 | 最低100回、推奨300回以上 | | リカバリーファクター | 総利益÷最大ドローダウン | 3.0以上が目安 |
各指標の読み方と組み合わせ評価
PFとリカバリーファクターは単独で見るより、セットで評価するほうが実態に近い。PF1.5・リカバリーファクター5.0の組み合わせは、PF2.5・リカバリーファクター1.5の組み合わせより実運用で安定する傾向がある。前者は「利益を出しつつ、ドローダウンから素早く回復できる」ことを示すからだ。
また「シャープレシオ」的な概念として、期待利得を標準偏差で割った値(MT5ではSharpe Ratioとして表示される場合もある)も確認できる。1.0以上なら統計的に安定したEAとして評価できる。
PF2.0超に注意が必要な理由
「PF2.0超なら優秀なEA」と単純に喜ぶのは危険だ。
取引回数が少ない場合、数回の大勝ちでPFは簡単に跳ね上がる。PFは取引回数とセットで評価しなければならない。
検証では、PF1.5・取引回数500回のEAの方が、PF3.0・取引回数30回のEAより長期運用に適していることが多い。統計的有意性の問題だ。
最適化機能の使い方と罠
「最適化」タブでは、EAのパラメータを一定範囲で自動的に変化させ、最高のパフォーマンスを出す組み合わせを探索できる。
これは強力な機能だが、カーブフィッティング(過去データへの過剰適合)の温床でもある。
最適化で見つかった「最高パラメータ」は、そのテスト期間に限り最適化されたものだ。異なる期間でのアウトオブサンプルテストで同様の結果が出るかを必ず確認する。
推奨する検証手順:
- 全データの70%(インサンプル)で最適化
- 残り30%(アウトオブサンプル)で検証
- 両期間でPFとドローダウンが近い値であれば信頼性が高い
乖離が大きければ、過去データへの過剰適合を疑う。
最適化の結果の見方
最適化を実行すると、パラメータの組み合わせごとにPFや総損益がランキング表示される。この結果から「単一の最高パラメータ」を選ぶのではなく、**成績が安定して良い「パラメータの帯」**を見つけることが重要だ。
たとえばPeriod=10〜14の範囲でどの値を選んでも概ね良い結果が出るなら、そのEAはパラメータに対してロバスト(頑健)であると評価できる。反対に、Period=12だけが突出して良い結果で前後の値が悪いなら、それは過剰最適化の強いシグナルだ。
よくある設定ミス
ミス1: MT4のEAをMT5で動かそうとする
.ex4ファイルはMT5では動作しない。MT5専用に.mq5でコンパイルが必要だ。
MT4用のEAをMT5で動かすには、MQL5に書き直す必要がある。主な変更点は「指標の取得方法(ハンドル方式への変更)」「注文関数の変更」「PositionCheckの追加」などだ。コードのロジック自体は流用できるが、構文の変更作業は相応に手間がかかる。
ミス2: スプレッドを0に設定する
スプレッド0では現実より有利な結果が出る。必ず実際に近いスプレッドを設定する。
ミス3: テスト期間を直近1年だけにする
直近1年がトレンド一方向の相場だった場合、その相場に適合したEAが「優秀」に見えてしまう。複数の相場環境を含む長期データが必要だ。
ミス4: 最適化結果をそのまま本番に使う
最適化で「最高の組み合わせ」として出てきたパラメータをそのまま本番EAに適用するのは危険だ。前述のアウトオブサンプル検証を必ず経ること。
ミス5: ジャーナルタブを確認しない
ジャーナルタブには、テスト中にEAが出力したログやエラーが記録される。「動いているように見えても実はエラーで止まっていた」ケースはジャーナルを確認すれば気づける。テスト完了後は必ずジャーナルタブを確認する習慣をつけるべきだ。
まとめ
MT5ストラテジーテスターを使いこなすポイント:
- モデルは「全ティック」推奨 — スキャルピング系EAでは必須
- テスト期間は最低2年、理想は10年 — 複数の相場環境を網羅する
- スプレッドは現実的な値で設定 — 0設定は論外
- PFは取引回数とセット評価 — 少ない取引回数での高PFは信頼性が低い
- 最適化は過剰適合に注意 — アウトオブサンプルで必ず検証する
- ジャーナルタブの確認を忘れない — エラーの早期発見に直結する
- グラフはドローダウンの深さと回復速度も確認 — 形状全体を読む
MT5のストラテジーテスターはMT4より格段に高精度だが、使い方が間違えれば「実際よりよく見えるEA」を量産するだけになる。設定の意味を理解した上で使うことが前提だ。
バックテストはEAの「仮説検証の場」であり、合格したEAを即本番運用するのではなく、フォワードテスト(デモ口座での実時間検証)を経てから実運用に移行することを強く推奨する。フォワードテストで3ヶ月以上安定した成績を確認できれば、バックテスト結果への信頼性が格段に高まる。
Claudeと会話しながらインジケータが作れるhedgrow-fxはこちら
免責事項: FXトレードには損失リスクが伴います。バックテストの結果は過去データに基づくものであり、将来の成果を保証するものではありません。投資は自己責任でおこなってください。
著者情報: [著者名・プロフィールをここに記載]
よくある質問(FAQ)
Q: MT4のEAはMT5のストラテジーテスターで動かせますか?
A: .ex4ファイルはMT5では動作しません。MT5用にMQL5でコードを書き直し、.ex5としてコンパイルする必要があります。
Q: テストに時間がかかりすぎます。早くする方法はありますか? A: 「始値のみ」モデルに切り替えると大幅に速くなります。まず始値のみで概要を確認し、本番評価時だけ全ティックで実行する方法が効率的です。また、MT5はマルチスレッドに対応しているため、最適化実行時はCPUコア数が多いほど処理が速くなります。
Q: 最適化で見つかったパラメータはそのまま使えますか? A: 直接使うのは推奨しません。インサンプル期間(最適化に使ったデータ)では優れていても、アウトオブサンプル期間(別の期間)で同様の結果が出るか必ず検証してください。
Q: ストラテジーテスターで良い結果が出たのに本番で損失が出ます。なぜですか? A: 主な原因はオーバーフィッティング(過去データへの過剰適合)、実際のスプレッド・スリッページとの差異、最近の相場環境の変化などです。長期かつ異なる相場環境でのテストと、フォワードテストでの事前検証が重要です。
Q: 複数の通貨ペアを同時にテストできますか? A: MT5では複数シンボルを同時にテストできます(ポートフォリオテスト)。これはMT4にはなかったMT5の重要な機能向上点です。ポートフォリオ単位でのドローダウンや相関リスクの評価が可能になります。
Q: バックテストの「モデル品質」とは何ですか? A: ストラテジーテスターの結果表示に出てくるモデル品質(%表示)は、テストに使われたデータの精度を示す指標です。90%以上であれば信頼性が高く、25%以下は過去データ不足を意味します。モデル品質が低い状態の結果は参考程度に留めてください。
Q: スキャルピングEAと長期EAでテスト設定は変えるべきですか? A: 変えるべきです。スキャルピングEAは「全ティック」モデル・スプレッド多め・遅延設定必須です。長期スイングEAは「始値のみ」で十分なケースが多く、処理時間も短縮できます。
