技術講座

MT5ストラテジーテスター・最適化完全ガイド|バックテスト結果を読むための基本

EAファンクラブ

MT5のストラテジーテスターは、EAのバックテスト、最適化、条件分岐、注文処理、決済処理、ログ確認を行うための重要な機能です。

ただし、バックテスト結果は、銘柄、時間足、期間、スプレッド、ヒストリカルデータ、テストモデル、setファイル、EA内部のログ設計によって大きく見え方が変わります。

結果画面の損益やグラフだけを見ても、EAがどの条件で動き、どこで止まり、どの注文が成功または失敗したのかを正確に確認できない場合があります。

この記事では、MT5ストラテジーテスターの基本画面、バックテスト前の確認、テストモデル、ヒストリカルデータ、結果画面、グラフ、取引一覧、Expertsログ、Journalログ、最適化、OnTester、バックテストが遅い時の確認、リアル運用との差分、相談前に整理する資料をまとめます。

このページは、MT5 / MQL5の技術学習記事です。投資判断、売買タイミング、利益保証、勝率保証、損失回避保証、推奨ロット、推奨銘柄、特定ブローカー誘導を目的とした内容ではありません。

この記事で確認すること

確認項目確認する内容
ストラテジーテスターの役割EAの条件分岐、注文処理、決済処理、ログを指定条件下で確認するための機能として整理します。
バックテスト前の前提条件EA名、バージョン、銘柄、時間足、期間、スプレッド、setファイル、ログ設定を確認します。
テストモデルEvery tick系、1 minute OHLC系、Open prices only系などの違いを確認します。
ヒストリカルデータ対象期間、対象銘柄、参照時間足、必要本数、初期化ログを確認します。
結果画面・グラフ・取引一覧損益、取引回数、残高推移、注文履歴、決済履歴をログと照合します。
Expertsログ・JournalログEA内部の判定、注文結果、retcode、テスター側の状態を分けて確認します。
最適化input範囲、ステップ、評価指標、取引数、期間分散、過剰適合を確認します。
OnTester独自評価値を使う場合の考え方と、評価値の意味を記録する重要性を確認します。
リアル運用との差分スプレッド、約定、通信、外部連携、サーバー時間、VPS環境の差を確認します。

MT5ストラテジーテスターで確認できること

MT5ストラテジーテスターでは、EAを指定した銘柄、時間足、期間、テストモデルで実行し、注文、決済、損益、取引一覧、グラフ、レポート、ログを確認できます。

主に、EAの条件分岐が意図どおり動くか、注文や決済が実行されるか、エラーが出ていないか、入力パラメータの違いで結果がどう変わるかを確認するために使います。

確認できること確認内容注意点
EAの条件分岐エントリー条件、決済条件、停止条件などログがないと、どの条件で止まったか分かりにくくなります。
注文処理注文送信、注文失敗、retcode、約定結果テスター条件とリアル約定は完全には一致しません。
決済処理TP/SL、トレーリング、時間決済、内部決済条件決済理由をログで確認できる設計が重要です。
入力パラメータロット、フィルター、時間帯、スプレッド制限などinput初期値と検証用setを混同しないようにします。
履歴・グラフ取引一覧、損益推移、残高推移結果画面だけでEA仕様を断定しないようにします。
最適化複数inputの組み合わせ比較上位結果だけを採用するのは危険です。

バックテストは、指定条件下での再現確認です。リアル環境の通信、約定、サーバー応答、外部連携、VPS状態まで完全に再現するものではありません。

MT5ストラテジーテスターで確認できないこと

ストラテジーテスターは便利ですが、すべてをリアル運用と同じ条件で確認できるわけではありません。

特に、外部API、Discord通知、Google Sheets連携、Webhook、外部認証、リアルタイム約定、通信遅延、VPS停止、実際のサーバー制限は、バックテストだけでは確認しきれない場合があります。

確認しにくいこと理由別途確認すること
リアル約定テスター上の約定条件と実サーバーの応答は異なる場合があります。デモ口座や小規模検証でretcode、約定価格、スリッページを確認します。
外部通信WebRequestや外部APIはテスター上で制限や分岐が必要な場合があります。リアル環境でWebRequest設定、通知ログ、HTTPステータスを確認します。
Discord通知テスターでは通知条件や送信処理がリアル運用と違う場合があります。通知テスト、Webhook、Expertsログを確認します。
Google Sheets連携GAS、シート権限、通信環境はテスターだけでは判断しにくいです。実環境で送信ログとシート側の記録を確認します。
VPS停止・通信断テスターはVPS停止やネットワーク断を再現するものではありません。VPS側MT5、起動状態、再起動後の復帰を確認します。
将来の運用結果過去データ上の結果は、将来の結果を示すものではありません。結果ではなく、条件・ログ・再現性を確認材料として扱います。

バックテスト前に整理する前提条件

バックテストを始める前に、検証条件を整理します。条件が曖昧なまま結果だけを比較すると、再現性がなくなり、後から原因確認が難しくなります。

前提条件確認する内容記録する理由
EA名・バージョン対象EAと版番号旧版や別ファイルとの混同を防ぐためです。
銘柄名MT5上の正確なsymbolサフィックス違いを避けるためです。
時間足テスト時間足とEA内部参照時間足マルチタイムフレームEAでは特に重要です。
期間開始日・終了日結果比較の前提を揃えるためです。
スプレッド固定か変動か、設定値注文条件や結果に影響するためです。
テストモデルtick、1分OHLC、始値のみなど計算精度と速度の差を確認するためです。
setファイルinput設定一式同じ条件で再現するためです。
ログ設定通常、詳細、検証用、最適化用など原因調査に必要な情報を残すためです。

setファイルやスクリーンショットを保存する場合は、EA名、バージョン、テスト条件、発生時刻が分かるように整理してください。

ストラテジーテスター画面の基本構成

MT5のストラテジーテスターでは、EA、銘柄、時間足、期間、テストモデル、入金額、レバレッジ、最適化条件、入力パラメータを設定します。

画面項目の名称や配置は、MT5のバージョンや表示環境で変わる場合があります。ただし、確認する考え方は共通です。

画面項目確認すること注意点
エキスパートテスト対象EA同名EAの旧版と混同しないようにします。
銘柄対象symbolサフィックス込みで確認します。
期間開始日・終了日履歴データがある期間か確認します。
時間足テスト時間足EA内部で別時間足を読む場合があります。
モデルEvery tick、1 minute OHLC、Open pricesなど速度と再現性の差を理解します。
入金額・通貨テスト口座条件証拠金やロット確認に影響します。
最適化ON/OFF、評価指標、最適化範囲通常テストと最適化を混同しないようにします。
入力EAのinput設定検証用値と通常値を分けて管理します。

銘柄・時間足・期間・スプレッドの設定

バックテスト結果を比較する時は、銘柄、時間足、期間、スプレッドが揃っていることが重要です。

同じEAでも、銘柄名、サフィックス、digits、point、tick value、volume step、stops levelなどが異なると、注文条件や損益計算、SL/TP距離、ロット丸めが変わる場合があります。

設定項目確認することログや資料に残す内容
銘柄名MT5上の正確な表記サフィックスの有無を含めて記録します。
時間足チャート時間足とEA参照時間足M1、M5、M15、H1などを記録します。
期間開始日・終了日テスト対象期間を記録します。
スプレッド固定か変動か設定値または使用条件を記録します。
digits / point価格桁数と最小単位EAログに出る場合は保存します。
tick value損益計算に関係する値銘柄仕様の違いを確認します。
volume stepロット刻みロット丸めや注文エラー確認に使います。
stops levelSL/TP制限注文失敗時の確認に使います。

テストモデルの違いと注意点

ストラテジーテスターでは、テストモデルによって計算速度や再現性が変わります。

どのモデルを使うかは、EAの仕様、確認したい内容、必要な精度、検証時間によって変わります。モデルの違いを理解せずに結果だけを比較すると、誤解につながることがあります。

テストモデル特徴向いている確認注意点
Every tick系tick単位に近い確認ができます。細かい注文・決済、トレール、短期条件時間がかかる場合があります。
1 minute OHLC系1分足のOHLCを使います。大まかな条件確認、初期検証tick内の細かい挙動は見えにくくなります。
Open prices only系始値基準の確認に向きます。新バー確定後だけ処理するEAtick中に動くEAには向かない場合があります。
Math calculations系取引環境を使わない計算系の確認です。一部の計算検証通常のEA検証とは用途が異なります。

EAがshift 0の現在足やtickごとの処理を使う場合、モデル差が結果に出やすくなります。確定足ベースのEAでも、注文価格、スプレッド、SL/TP、トレール、時間条件によって差が出ることがあります。

ヒストリカルデータの確認方法

バックテストは、ヒストリカルデータに依存します。データが不足している、期間が短い、対象銘柄が違う、時間足が揃っていない場合、結果の確認が難しくなります。

特に、複数時間足や複数銘柄を参照するEAでは、チャートに表示している銘柄・時間足だけでなく、EA内部で参照するデータも確認する必要があります。

確認項目内容問題がある場合
対象期間テスト開始日より前のデータがあるか初期計算やインジケーター値が不足する場合があります。
対象銘柄EAが読むsymbolが正しいかサフィックス違いで取得失敗する場合があります。
対象時間足参照時間足の履歴があるかマルチタイムフレーム条件が未成立になる場合があります。
インジケーター用データ必要本数があるかCopyBufferやCopyRatesの取得本数が不足する場合があります。
初期化ログデータ不足の警告が出ていないか最初の期間だけ挙動が不安定に見える場合があります。

ヒストリカルデータ不足が疑われる場合は、テスト期間を短くして再確認する、必要な時間足のデータを取得する、初期化ログを確認するなど、原因を分けて確認してください。

バックテスト結果画面の見方

バックテスト後は、結果画面、グラフ、取引一覧、レポート、ログを確認します。

結果画面の数値だけで判断するのではなく、どの条件で取引が発生し、どの注文がどの理由で実行され、どのタイミングで決済されたのかをログと合わせて確認します。

確認場所確認する内容注意点
結果注文、決済、損益、手数料、スワップなど注文ごとの理由はログが必要です。
グラフ残高・有効証拠金の推移急変箇所は取引一覧と照合します。
取引一覧注文時刻、決済時刻、方向、ロット、価格注文理由や決済理由はExpertsログと照合します。
レポート総合結果、各種統計数値だけでEA仕様を判断しないようにします。
ExpertsログEA内部の分岐、エラー、状態GATE、RISK、EXECUTION、EXITなどを確認します。
Journalログ端末側、テスター側の状態データ取得やテスター実行上の問題を確認します。

グラフ・取引一覧・レポートの読み方

グラフは、テスト期間中の残高や有効証拠金の推移を視覚的に確認するために使います。取引一覧は、個別の注文や決済を確認するために使います。レポートは、全体の統計を確認するために使います。

ただし、どれか1つだけを見ても、EA内部の分岐理由は分かりません。グラフで気になる箇所があれば、取引一覧とExpertsログを照合してください。

確認対象見るポイント合わせて見るもの
グラフ大きく変化した箇所該当時刻の取引一覧、Expertsログ
取引一覧注文時刻、決済時刻、方向、ロット、価格executionログ、retcode、エラー情報
レポート全体の統計値テスト条件、スプレッド、期間、setファイル
損益推移連続損益、急変、停止条件riskログ、exitログ
注文回数多すぎる・少なすぎる箇所signalログ、GATEログ

Expertsログ・Journalログで見るべきこと

バックテストで最も重要な確認材料の1つがログです。

Expertsログでは、EA内部の判定、注文結果、エラー、状態遷移を確認できます。Journalログでは、MT5端末やテスター側の状態を確認できます。

ログ種別確認する内容
INITログ起動時の設定、環境、銘柄仕様version、symbol、timeframe、inputs
GATEログ必須条件の通過・停止理由spread NG、time NG、data insufficient
SCOREログ判定条件の評価trend score、reverse score、range score
RISKログロット、最大数、停止条件max positions、lot normalized
EXECUTIONログ注文・決済の結果retcode、order、deal、error
EXITログ決済、トレール、保有管理close reason、trail update
Journalログ端末側・テスター側の状態データ取得、テスター実行、エラー

ログ量が多すぎる場合は、通常ログ、詳細ログ、検証用ログ、最適化用ログを分けると確認しやすくなります。

最適化テストとは何か

最適化テストは、EAのinputパラメータを複数組み合わせてテストし、条件ごとの結果を比較する機能です。

最適化は、設定値の候補を広く確認するために役立ちます。ただし、最適化結果の上位だけを見て判断すると、特定期間や特定条件に偏った結果を選んでしまう可能性があります。

最適化で確認すること確認内容注意点
対象inputどのパラメータを動かすか不要に多くすると組み合わせが膨大になります。
開始値・終了値・ステップ探索範囲と刻み幅範囲が広すぎると時間がかかります。
評価指標何を基準に比較するか1つの数値だけで判断しないようにします。
期間どの期間で最適化するか特定期間に偏っていないか確認します。
スプレッド条件固定値、変動、現実との差現実の条件と違いすぎないか確認します。
上位結果近い条件でも安定しているか一点だけ突出した結果に注意します。

最適化は、設定値を探すための補助です。結果の順位だけではなく、条件、ログ、取引数、期間、再現性を合わせて確認してください。

最適化結果を鵜呑みにしない理由

最適化では、指定した期間や条件に対して良い数値が出る組み合わせが見つかることがあります。

しかし、その結果が別期間、別銘柄、別スプレッド、リアル環境でも同じように再現されるとは限りません。最適化結果を見る時は、過剰適合、取引数の少なさ、特定期間への偏り、ログ不足に注意します。

確認項目見る理由注意点
取引数極端に少ない結果は比較しにくいため少数取引だけで判断しないようにします。
期間分散特定期間だけに偏っていないか確認するため別期間でも確認します。
近い設定値隣接条件でも結果が大きく崩れないか見るため一点だけ突出した結果に注意します。
スプレッド感度条件差で結果が変わりやすいか確認するため固定値だけで判断しないようにします。
ログ整合意図した条件で動いているか確認するため結果表だけで判断しないようにします。
EA仕様との整合想定外の条件で高評価になっていないか確認するため取引内容と仕様を照合します。

最適化結果は、候補を絞るための材料です。設定値の採用判断ではなく、検証条件とログを整理するために使うと、後から確認しやすくなります。

OnTesterの基本的な考え方

MQL5では、OnTesterを使って、最適化時に独自の評価値を返す設計ができます。

OnTesterは、特定の取引判断を推奨するためではなく、検証時にEAの評価軸を整理するために使います。たとえば、単純な総損益だけでなく、取引数、ドローダウン、安定性、条件通過数などを確認したい場合に、独自の評価値を設計することがあります。

以下は、OnTesterの形だけを示す最小例です。売買条件や運用設定を示すものではありません。

double OnTester()
{
   double custom_score = 0.0;

   // 評価値の考え方だけを示す最小例です。
   // 実際には、検証目的に応じて統計値や内部カウントを整理します。

   return custom_score;
}

OnTesterを使う場合は、評価値の意味を仕様として残してください。評価値が高い理由、低い理由、どの統計を使ったのかが分からないと、後から比較しにくくなります。

バックテストが遅い時の確認ポイント

バックテストが極端に遅い場合は、EAのロジック、ログ量、外部連携、オブジェクト描画、ファイル出力、インジケーターハンドル、最適化条件などを確認します。

遅い原因を一度に決めつけず、どの層が重いのかを分けて確認してください。

原因候補確認すること対策の考え方
ログが多い毎tickで大量Printしていないか検証用ログと通常ログを分けます。
外部連携処理WebRequestやファイル処理が多すぎないかバックテスト時は制限やモック化を検討します。
オブジェクト描画ラベルやラインを大量作成していないか更新頻度と削除処理を見直します。
CopyBuffer / CopyRates毎tickで大量取得していないか必要本数と更新タイミングを整理します。
インジケーターハンドル毎回作成していないかOnInitで作成し、OnDeinitで解放します。
CSV出力毎tickでファイル書き込みしていないかイベント単位や一定間隔に絞ります。
最適化条件組み合わせ数が多すぎないか範囲とステップを見直します。

バックテスト高速化では、リアル運用ロジックを安易に変えないことが重要です。バックテスト専用のログ抑制や表示抑制を使う場合は、実運用時の動作と混同しないようにしてください。

リアル運用との差分を確認する方法

バックテストとリアル環境では、同じEAでも結果や挙動が異なる場合があります。

差分が出た場合は、価格データ、スプレッド、約定、サーバー時間、外部連携、VPS環境、通知、銘柄仕様、EAのログ設定を分けて確認します。

比較項目バックテストリアル環境確認すること
価格データヒストリカルデータリアルタイム配信データ条件と期間
スプレッドテスター設定に依存変動する場合があります。spreadログ
約定テスター条件サーバー応答に依存retcode、Journalログ
外部連携制限や分岐が必要な場合があります。WebRequestや通知が動きます。外部連携ログ
時間テスター上の時刻サーバー時間・PC時間・VPS時間が関係します。TimeCurrent、ログ時刻
銘柄仕様テスター上のsymbol仕様実口座のsymbol仕様digits、point、volume step
VPS環境通常は再現しにくい停止・再起動・通信断が影響します。VPSログ、MT5起動状態

バックテストとリアル環境の差分は、EAの不具合だけでなく、検証条件の違いから発生する場合があります。差分を確認する時は、結果ではなく条件を分解してください。

最適化前チェック表

最適化を始める前に、次の項目を確認してください。

チェック項目確認内容
EA名・バージョンを確認した対象ファイルと版番号を記録します。
銘柄・時間足を確認したsymbol、サフィックス、時間足を記録します。
テスト期間を確認した開始日、終了日、対象期間を記録します。
スプレッド条件を確認した固定、変動、設定値を記録します。
ヒストリカルデータを確認した必要な期間と参照時間足のデータを確認します。
setファイルを保存した検証条件を再現できるようにします。
最適化対象inputを絞った不要に多くのパラメータを同時に動かさないようにします。
評価指標を決めた何を比較するのかを事前に決めます。
ログ設定を決めた通常テスト用と最適化用のログ量を分けます。

結果相談前に整理する資料

バックテスト結果や最適化結果について相談する場合は、結果画面だけでなく、条件とログを整理してください。

資料整理する内容注意点
EA名・バージョン対象EAと版番号旧版との混同を避けます。
setファイル使用したinput設定検証条件の再現に必要です。
テスト条件銘柄、時間足、期間、スプレッド、モデル結果比較の前提になります。
結果レポート総合結果、統計、取引数数値だけでなく条件とセットで確認します。
取引一覧注文・決済の履歴グラフの急変箇所と照合します。
ExpertsログEA内部の判定、注文結果、エラー発生時刻の前後を確認します。
Journalログテスター側、端末側の状態データ不足やテスター側エラーを確認します。
スクリーンショット設定画面、結果画面、グラフ口座番号や個人情報はマスクします。

送ってはいけない情報

バックテストや最適化の相談時でも、送らない方がよい情報があります。

送らない情報理由対応
口座番号の全体不要な個人情報に近い情報になる場合があります。必要に応じて一部をマスクします。
ログインパスワード口座へアクセスできる情報です。送らないでください。
投資家パスワード閲覧専用であっても共有不要です。送らないでください。
Webhook URL第三者が通知先へ送信できる可能性があります。全文をマスクします。
GAS URLGoogle Sheets連携先に関係する情報です。全文をマスクします。
APIキー・認証トークン外部サービスや認証に関係します。送らないでください。
不要な取引履歴全体確認に不要な情報が含まれる場合があります。必要な期間・範囲だけ共有します。

よくある質問

バックテスト結果だけでEAの良し悪しを判断できますか?

判断できません。バックテストは指定条件下の再現確認であり、将来の運用結果を示すものではありません。銘柄、期間、スプレッド、テストモデル、ログ、リアル環境との差分を確認してください。

最適化で一番良い結果を選べばよいですか?

結果の順位だけで判断しないでください。取引数、期間分散、近い設定値での安定性、スプレッド条件、ログ整合を合わせて確認する必要があります。

バックテストとリアル運用で結果が違うのはなぜですか?

価格データ、スプレッド、約定条件、サーバー時間、外部連携、通信、VPS環境、銘柄仕様などが異なる場合があるためです。差分が出た場合は、テスト条件とリアル環境のログを分けて確認してください。

ヒストリカルデータが不足している場合はどうなりますか?

必要なローソク足やインジケーター計算用データが不足し、条件が成立しない、初期期間の判定が安定しない、CopyRatesやCopyBufferの取得本数が不足する場合があります。

外部連携を含むEAはバックテストで同じように動きますか?

同じように動かない場合があります。WebRequest、Webhook、Google Sheets、Discord通知、外部API、認証処理などは、バックテスト時の制限やEA側の分岐を確認してください。

最適化結果を相談する時に何を送ればよいですか?

EA名、バージョン、setファイル、テスト条件、最適化範囲、結果レポート、取引一覧、Expertsログ、Journalログ、スクリーンショットを整理してください。口座番号や認証情報はマスクしてください。

バックテストが極端に遅い時はどこを確認しますか?

ログ量、外部連携、ファイル出力、チャートオブジェクト描画、CopyBufferやCopyRatesの呼び出し頻度、インジケーターハンドル、最適化条件の組み合わせ数を確認してください。

ストラテジーテスターのログはどこを見ますか?

EA内部の状態はExpertsログ、端末やテスター側の状態はJournalログを確認します。注文や決済の流れは、取引一覧とexecutionログを合わせて確認してください。

関連する技術講座

ストラテジーテスターや最適化を確認する場合は、時系列データ、検証環境、EA設計、エラーコード、ログ設計もあわせて確認してください。

技術講座確認できること
MQL5時系列データ・価格取得完全ガイドCopyRates、iClose、SymbolInfo、現在足と確定足、価格データ取得の基本を確認できます。
MT5検証・運用環境ガイドサーバー時間、銘柄名、VPS、バックテスト、検証環境の確認ポイントを整理できます。
MQL5 EA設計パターン完全ガイドsignal、execution、risk、exit、auth、external control、notificationの責務分離を確認できます。
MQL5エラーコード辞典GetLastError、TRADE_RETCODE、コンパイルエラー、WebRequestエラーの確認に使えます。
MQL5デバッグ・ログファースト開発完全ガイドPrint、Expertsログ、Journalログ、再現条件、ログ設計の整理に使えます。
MQL5ファイル操作・CSVログ出力完全ガイドFilesフォルダ、Commonフォルダ、FileOpen、CSV、文字コード、ログ出力を確認できます。

関連する確認ページ

バックテスト結果や最適化結果を相談する場合は、setファイル、ログ、サポート依頼の整理も確認してください。

確認ページ確認できること
MT5でEAのsetファイルを送る前に確認することsetファイル、EA名、バージョン、対象銘柄、検証条件を整理する方法を確認できます。
EAのログを問い合わせ前に確認する方法Expertsログ、Journalログ、発生時刻、スクリーンショット、setファイルの整理方法を確認できます。
不具合報告・サポート依頼症状、ログ、スクリーンショット、再現手順、利用環境を整理して相談する方法を確認できます。
MT5開発依頼前に用意する資料まとめ仕様書、setファイル、ログ、スクリーンショットなど、開発相談前の資料整理に使えます。
動作環境MT4 / MT5、Windows PC、VPS、外部連携などの動作環境を確認できます。

購入前・利用前に確認するページ

EAや補助ツールを利用する前には、導入ガイド、動作環境、購入前確認、免責事項も確認してください。

ページ確認できること
導入ガイドEA、インジケーター、補助ツールを導入する前の確認事項を整理できます。
動作環境MT4 / MT5、Windows PC、VPS、外部連携などの動作環境を確認できます。
購入前確認事項購入前に確認しておきたい対応環境、利用条件、確認事項を整理できます。
免責事項・リスク説明当サイトと商品の利用上の注意、責任範囲、リスク説明を確認できます。
投資助言を行わない方針EAファンクラブが投資判断や売買指示を行わない方針を確認できます。

まとめ

MT5ストラテジーテスターは、EAの条件分岐、注文処理、決済処理、ログ、結果、最適化を確認するための重要な機能です。

ただし、バックテスト結果は、銘柄、時間足、期間、スプレッド、テストモデル、ヒストリカルデータ、setファイル、EA内部のログ設計によって変わります。

結果画面の数値だけではなく、Expertsログ、Journalログ、取引一覧、グラフ、レポートを合わせて確認してください。

最適化は、設定値の候補を比較するための補助です。上位結果だけを採用するのではなく、取引数、期間分散、近い設定値での安定性、スプレッド感度、ログ整合を確認することが重要です。

相談前には、EA名、バージョン、setファイル、Expertsログ、Journalログ、発生時刻、スクリーンショット、テスト条件を整理してください。口座番号、Webhook URL、GAS URL、APIキー、認証トークンなどの実値は、必要に応じてマスクしてください。

ABOUT ME
記事URLをコピーしました