MT4のストラテジーテスターには、通常のバックテストに加えて「最適化」という機能があります。
「移動平均線の期間を20にしているけれど、本当に20が妥当なのか?」
「パラメータを1つずつ変更してバックテストするのは大変…」
という場合に、指定した範囲の設定値を自動で切り替えながらバックテストできます。
ただし、最適化結果の1位=実運用で最も良い設定値とは限りません。
利益だけでなく、周辺の設定値でも成績が安定しているか、別期間でも同じ傾向になるかまで確認することが重要です。
- MT4ストラテジーテスターの最適化とは何か
- 最適化するパラメータの設定方法
- スタート・ステップ・ストップの使い方
- 最適化結果の見方と評価基準
- カーブフィッティングを避ける確認方法
通常のバックテストのやり方から確認したい方は、先にこちらをご覧ください。
MT4ストラテジーテスターの最適化とは?
最適化とは、EAの入力パラメータを指定した範囲で変化させながら、バックテストを自動で繰り返す機能です。
例えば、移動平均線の期間を「20」に設定しているEAがあるとします。
通常のバックテストでは期間20だけを検証しますが、最適化では、
15 → 16 → 17 → …… → 25
のように値を自動で変えながら、それぞれのバックテスト結果をまとめて比較できます。
移動平均線だけでなく、EA側で外部パラメータとして用意されていれば、損切り幅・利確幅・インジケーター期間なども最適化できます。
どの範囲で成績が安定しているか、少し値を変えても結果が大きく崩れないかを見るためにも利用できます。
MT4ストラテジーテスターで最適化する手順
ここでは、MT4に標準搭載されているMoving Average EAを例に、実際の最適化手順を確認していきます。
① ストラテジーテスターで「最適化」を有効にする
MT4のストラテジーテスターを開き、通常のバックテストと同じようにEA・通貨ペア・時間足・期間などを設定します。
そのうえで「最適化」チェックボックスにチェックを入れ、「エキスパート設定」をクリックします。
② 最適化するパラメータを選択する
「パラメータの入力」タブを開き、最適化したい変数にチェックを入れます。
今回は、MovingPeriod(移動平均線の期間)を最適化します。
自作EAでは、最適化したい変数を
input などの外部パラメータとして用意しておく必要があります。input int MovingPeriod = 12;
input int MovingShift = 6;このように外部パラメータとして宣言した値を、MT4側から変更・最適化できます。
③ スタート・ステップ・ストップを設定する
次に、パラメータをどの範囲で変化させるか設定します。
- 値:通常のバックテストで使用する設定値
- スタート:最適化を開始する値
- ステップ:1回ごとに増減させる幅
- ストップ:最適化する最後の値
例えば、スタート「8」・ステップ「1」・ストップ「25」とすると、
8、9、10、11……25
という18通りのMovingPeriodを自動でバックテストします。
複数のパラメータを同時に最適化すると、組み合わせ数が急増します。
まずは重要な1~2項目から始め、結果を見ながら範囲を絞っていく方が確認しやすくなります。
例えば、MovingPeriodを18通り、損切り幅を20通り、利確幅を20通り設定すると、単純計算では18 × 20 × 20=7,200通りの組み合わせになります。
パラメータを増やすほど処理時間も長くなるため、「とりあえず全部最適化する」のではなく、検証したい項目を絞ることが大切です。
④ 最適化の評価基準を確認する
MT4では「エキスパート設定」のテスト設定から、どの数値を基準として最適化結果を評価するか選択できます。
| 評価基準 | 見るポイント |
|---|---|
| Balance | 最終的な残高 |
| Profit Factor | 総利益と総損失の比率 |
| Expected Payoff | 1トレードあたりの平均的な期待損益 |
| Maximal Drawdown | 最大ドローダウン |
| Drawdown Percent | ドローダウン率 |
初心者の場合は「利益が最大になった設定」だけに注目しがちですが、利益・取引回数・PF・ドローダウンをあわせて見る方が実運用の候補を判断しやすくなります。
⑤ 最適化を実行する
設定が終わったら「スタート」をクリックします。
通常のバックテストとは異なり、指定したパラメータの組み合わせごとにテストが繰り返されます。
⑥ 最適化結果を確認する
最適化が完了すると、ストラテジーテスターに「最適化結果」と「最適化グラフ」が追加されます。
「最適化結果」では、それぞれのパラメータで実行したテスト結果を一覧で比較できます。
損益の列をクリックすれば、利益の大きい順に並び替えることもできます。
今回の例では、MovingPeriod「8」の損益が最も良く、次に「16」「15」と続いています。
ただし、ここで「8が1位だからMovingPeriodを8に変更すればよい」とはまだ判断しません。
今回分かったのは、あくまでこの通貨ペア・時間足・テスト期間・取引条件では、MovingPeriod 8の成績が最も良かったということです。
MT4の最適化でマイナス結果も表示する方法
最適化結果に一部のパラメータが表示されない場合は、マイナス結果が非表示になっている可能性があります。
確認したい場合は、最適化結果画面で右クリック →「マイナス結果を表示しない」のチェックを外すと、マイナスになったパスも確認できます。
プラスになった設定だけでなく、どの値から急に成績が悪化するのかを見ることも、パラメータの安定性を判断する材料になります。
最適化結果はどの値を採用すればいい?
最適化で最も注意したいのが、利益1位の設定値をそのまま採用しないことです。
例えば、次のような結果だったとします。
| 設定値 | 損益 |
|---|---|
| 14 | +80,000円 |
| 15 | +92,000円 |
| 16 | +95,000円 |
| 17 | +89,000円 |
| 18 | +83,000円 |
この場合、16だけでなく、14~18付近でまとまってプラスになっていることが分かります。
一方で、
| 設定値 | 損益 |
|---|---|
| 7 | -10,000円 |
| 8 | +150,000円 |
| 9 | -20,000円 |
のように、8だけが極端に良く、その前後がマイナスなら注意が必要です。
特定の過去相場に偶然合っただけで、少し条件が変わると機能しなくなる可能性があるためです。
最高利益だけでなく、その前後の設定値でも似た成績が出ているか確認すると、候補を絞りやすくなります。
利益だけでなくPF・取引回数・DDも確認する
損益が大きいという理由だけで設定値を決めるのも避けたいところです。
例えば、純利益が最も大きくても、
- 取引回数が極端に少ない
- 最大ドローダウンが大きい
- Profit Factorが低い
- 一部の大きな利益だけで成績が作られている
といったケースがあります。
そのため、最適化結果から候補を選ぶ際は、損益だけでなく複数の指標をまとめて確認します。
最適化した期間とは別の期間でもバックテストする
最適化で候補を絞ったら、最適化に使用していない別の期間でも通常のバックテストを行います。
例えば、
- 2024年~2025年:最適化に使用
- 2026年1月~6月:候補パラメータを再テスト
というように期間を分けます。
最適化に使った期間だけ成績が良く、別期間では大きく崩れる場合は、過去データに合わせすぎている可能性があります。
最適化した期間の結果だけで実運用を判断しないようにしましょう。
カーブフィッティングに注意する
最適化を細かく行えば行うほど、「過去の相場では非常に良いEA」を作ることはできます。
しかし、過去データへ合わせすぎたEAは、将来の相場で同じように機能するとは限りません。
このような状態をカーブフィッティング(過剰最適化)と呼びます。
カーブフィッティングを避けるためにも、
- 利益1位だけを採用しない
- 周辺パラメータの傾向を見る
- 取引回数・PF・DDも確認する
- 最適化とは別の期間で再テストする
- 必要に応じてデモ口座などで実際の挙動も確認する
といった流れで検証していくことが重要です。
ChatGPTで作成したEAも同じ流れで最適化できる
ChatGPTなどを使って自作したEAでも、最適化の考え方は同じです。
EA側に調整したい値を外部パラメータとして用意しておけば、MT4ストラテジーテスターから範囲を指定して検証できます。
当サイトでは、ChatGPTで作成したEAを実際にバックテスト → 最適化 → 結果確認する流れも別記事で紹介しています。
MT4ストラテジーテスターの最適化に関するFAQ
EAの入力パラメータを指定した範囲で変化させながら、ストラテジーテスターでバックテストを自動的に繰り返す機能です。複数の設定値を手作業で1つずつテストする手間を減らせます。
必ずしもそうではありません。最高利益だけでなく、その前後の設定値でも成績が安定しているか、PF・取引回数・ドローダウンなども確認し、別期間でも再テストすることが重要です。
いいえ。対象を増やすほど組み合わせ数が急増し、処理時間も長くなります。まずは重要な1~2項目から始め、必要に応じて範囲を絞りながら検証する方法が分かりやすいです。
できます。調整したい値をEA側で外部パラメータとして用意しておけば、ストラテジーテスターの「パラメータの入力」からStart・Step・Stopを指定して最適化できます。
まとめ
MT4ストラテジーテスターの最適化を使うと、EAのパラメータを指定した範囲で自動的に変更しながら、複数のバックテスト結果を比較できます。
- 最適化したいパラメータを選ぶ
- スタート・ステップ・ストップを設定する
- 最適化結果から有力な候補を絞る
- 最高利益だけでなく周辺値・PF・DDなども確認する
- 別期間で通常のバックテストを行う
特に重要なのは、最適化結果の1位を「正解」と考えないことです。
MT4の最適化は、将来の利益を保証する設定値を自動で見つけるものではなく、多数の設定値から次に詳しく検証する候補を効率よく探すための機能として使うのが基本です。









コメント