MT5を使ったEA最適化の完全ガイド【初心者向け】
今日の記事はHGF_EURUSD_Ver1.1というEAが最適化という最終プロセスを経て誕生しているという秘話をお話しします
この記事をさらに詳細に動画解説したものがこちらです。合わせて参照ください。
EAが販売されるまでにはいくつかのプロセスを経て市場に出回るわけですが、最終段階がEAの最適化であると言っても過言ではありません。
逆に言えば最適化無くしてEAが完成したとは言えないくらい最終的に複数のインジケーターやオシレーターなどを使った自動売買ロジックを数値化する=パラメーターの数字が最適なものになるために必要なプロセスであると言えます。
HGF EURUSD Ver1.0商品についての詳細ページはこちらです。
それでは具体的にHGF EURUSD Ver1.1購入者向けに最適化に必要な手順を画像を用いてわかりやすく解説します。

- 上部からMT5の表示
- →ストラテジーテスターを選択
- →ストラテジーテスタータブをクリックするとストラテジーテスターが最初化したり最大化したりします。

ストラテジーテスターは最適化やバックテストをするためのツールですが、チャートを出来る限り大きく表示させたい場合はタブをダブルクリックして最小化したり、バッテンを押してクローズして消しておいて必要な時に上図の要領で呼び出して使用します。
ナビゲーターウインドウを表示させインストール済みのEAが格納されているか確認すること
- 4.表示からナビゲーターを表示させます
- 5.ナビゲーターをクリックする度に表示・非表示が選択できます。

- 6.ナビゲーターウインドウが表示されていることを確認します。
- 7.目的のEAが適切なフォルダー「MQL5→Experts」に格納されていればナビゲーターウインドウに表示されます
- 8.項目が多いので上から順番に説明します。
- エキスパート:目的のEAが選択出来ればOK
- 銘柄:EURUSD(目的のペア通貨が表示されていない場合は「表示」→「銘柄」→目的のペア通貨を検索して表示されたらダブルクリックすると色が変わり気配値に表示されるのでバックテストや最適化テストが可能になります。
- 日付:プルダウンメニューから「期間指定」を選択
- カレンダーボタンを押してバックテストまたは最適化を開始する日付を選びます。
- 右側の日付は今日を選びます。
- 遅延:「サーバーへの最後のPingは○○秒」を選びます。
- モデル:プルダウンから「リアルティックに基づいたすべてのティック」を選びます。
- 入金:プルダウンに無い場合は手入力で「1000000」と入力していますがお好きな金額を入れてください。
- 入金の通貨は手入力で「JPY」と入力します。ドルの場合はプルダウンで「USD」を選びます。
- レバレッジ:プルダウンから1:25を選びます。海外ブローカーの場合はそのブローカーの最大レバレッジを手入力します。(Exnessの場合は1:2000)
- オプティマイズ:「無効」の場合はバックテストをする時で「遺伝的アルゴリズム(早い)」を選ぶと最適化が出来るようになりますので目的に合わせて選択します。
- 注意1:2か所のチェックボックスにチェックを入れた場合は、上部のボックスはPips計算ですので金額ではバックテスト結果が表示されませんので通常はチェックしないようにします。
- 注意2:その下のチェックボックスはビジュアルモードなのでEAが実際にどのようなタイミングでエントリーして決済するのか?視覚的に確認することが出来ます。時間がかかるので通常のバックテストではチェックを入れないようにします。
オプティマイズ=optimize=最適化を開始しするための準備

- 9.最後に最適化用に「オプティマイズ」からプルダウンで「遺伝的アルゴリズム(早い)」を選びます。
- デフォルトでは「残高最大」が選ばれているのでそのままのデフォルト設定で最適化に入ります。

- 10.最適化した項目にチェックを入れていきます。チェックがどれにも入っていないと最適化出来ないので最低でも1項目のパラメーターの最適な数値を計算させます。
- 項目が多いのでザックリ説明します。上からATRです。ATRについて詳しい説明は割愛しますが、真のレンジ幅と定義することもあります。レンジの計算式でこのパラメターの数値が大きいほどSLTPまでの幅が広くなりますので、大きな損切と大きな利確というイメージになります。
- ATRの数値が小さいと小さく損切り、小さく利確するロジックになります。
- 11.この行はバックテストで使用する箇所ですが、最適化をする際にチェックを入れている項目は最適化計算をする意味になり、チェックが入っていない項目は最適化しないという意味になります。
- 例えば10のパラメーター項目の中央にある「ブレイクイーブン機能を有効にする」項目にチェックが入っていませんが、これは最適化しないで強制的にブレイクイーブンを使用するという意味になります。
- 逆にこの項目にチェックが入っている場合はブレイクイーブンを使用した方が残高最大になるか?ブレイクイーブンを使用しない方が残高最大になるか?の2択を他の組み合わせに入れ込むことを意味します。
- 12.この行では最適化する数値の「スタート」の数値を入力します。先ほどのATRでは「1」という数値が入力されていますので、ATRが定義したレンジ幅に対して「1倍」からスタートすることを意味しています。
- 13.この行では「ステップ」の数値を入力します。ATRの「スタート」が「1」からで「ステップ」が「1」ということは1・2・3・4・5と1刻みで最適化テストを行うことになります。
- ザックリ素早く最適化を行う対場合はATRスタートを「10」ステップを「10」ストップを「100」にすることで組み合わせは100通りから10通りまで短縮するので単純に時間も10分の一になるイメージです。
- 他の項目も10単位でざっくり最適化テストするとかなり時短になります。
- 最適化は想像以上に組み合わせが多くなりますくPCのメモリを全て占領し動作が重くなり、他の作業はほとんど出来なくなります。
- 最適化をしているPCで他の作業をするとPCがフリーズして最適化を最初からやり直すことになってしまいますので、最適化をしている時間に他の作業をしないことがとても重要です。
- PCの全てのCPUとメモリを最適化に充てることで無駄なく出来るだけ早く正確な最適化が出来るようになります。
- 14.「ストップ」この行は最終的にどの数値で終わるか?の意味になります。ATRがスタート1~2・3・4・5・・・99・100で終わる意味となります。
- 15.「ステップ数」ATRのステップ数が100になっていますので先ほど説明したように1~100までのステップを1刻みなので100通りの組み合わせで最適化する意味になります。
- 以上でざっくりと最適化の項目について説明しました。
- 一番右下に数字が書いているように、100×100×・・・・と1項目について組み合わせを×と1.4415e+26という驚異的な組み合わせがあるという意味となりますが、実際に最適化を開始すると1.4415e+26が数万通り程度の最適化結果が出てきます。
ではなぜ最適化で無数に近い組み合わせが数万通りまで減るのか?についての回答がこちらです。
MT5のストラテジーテスターにおける「理論上の総組み合わせ数(1.4415e+26)」と「実際に最適化で試される組み合わせ数(数万通り程度)」が大きく乖離している理由を、以下に詳しく解説します。
✅ 理論上の「1.4415e+26」組み合わせとは?
画像で赤枠「15列目(ステップ数)」を見ると、各パラメーターには次のような最適化範囲が設定されています:
例えば:
ATR multiplier
: ステップ数 100Fast MA
: ステップ数 100Slow MA
: ステップ数 100- …以下略
全パラメータで指定されたステップ数を単純に掛け合わせると:
ステップ数の総積(組み合わせ数) = 100 × 100 × 100 × ...(全変数のステップ数の積) ≒ 1.4415 × 10^26
この「総積」が理論上の全組み合わせ数です。
❗ ではなぜ実際には「数万通り」になるのか?
これは **MT5の最適化ロジック(制限)**によって次のようなフィルター・スキップが行われるためです:
✅ 1. チェックされていないパラメータは除外される
→ パラメータ左にあるチェックボックスが外れていると、その項目は最適化対象外。
- チェック済みだけでもステップ数が多く見えても、
- 未チェックのものは計算に含まれません。
✅ 2. 数値が範囲外・不正なステップ間隔だとスキップ
例えば:
Start = 1
、Step = 1
、Stop = 100
→ 100通りですが- パラメーターによっては有効範囲外の値を内部で除外しているケースあり
✅ 3. ブール型(true/false)などは2通りだけ
→ true/false
のようなフラグ系パラメータは常に2通りだけであり、影響は小さいです。
✅ 4. 他の条件と矛盾する組み合わせは自動スキップ
例:
- 固定ロット = true かつ リスク% = 25 → リスク%は実質意味を持たない
- EA側で
if(!UseAutoLot) return;
のようなコードがあるとその分岐は無視されます
✅ 5. “高速最適化” モードだとロジックの早期終了
→ 「高速最適化」では、無駄なエントリーが出ない条件は早期打ち切りされるため、全部の通りをチェックしません
✅ まとめ:なぜ「1.4415e+26 → 数万通り」になるのか?
原因 | 内容 |
---|---|
✅ 有効パラメータの制限 | チェックされている項目だけが対象 |
✅ ステップの有効性 | 無効な組み合わせは自動的に除外 |
✅ ブール値の単純化 | true/falseは2通りのみ |
✅ EA内部ロジックの制約 | 無意味な組み合わせを無視するコード |
✅ 高速最適化モード | 試行回数が大幅に削減される |
🔍 補足:本当にすべての組み合わせを試したい場合
- 「完全最適化」で「全てのパラメーターにチェック」を入れる
- 「高速最適化をオフ」にする
- ステップ数を**少なく抑える(例:ステップ5など)**ことで、実行可能な範囲に収める
少し話がそれましたが本題に戻ります。
先ほどの設定で最適化を「スタート」させるとこのような画面が出てきて、点グラフのように縦軸と横軸で縦は残高最大を表し、横軸は組み合わせの数を表示させながら点グラフを描き始めます。

- 16.点グラフが描かれ始めました。中心部の黄色い点が初期証拠金100万円辺りで、そこより上の緑色の点がプラスの総損益となり、100万円よりも下に位置する赤い点がマイナスの総損益となります。
- 17.表示させたい項目でデフォルトではプロフィットファクターが表示されないのでオプティマイズタブで右クリックしてポップアップウインドウでプロフィットファクターを選択して表示させます。
こうして厳選された数万通りの組み合わせから残高最大という目的に向けて最適化パラメーター数値を探す旅が始まるのです。

- 上図は最適化の点グラフ画面を右クリックすると出てくるポップ画面から、不要な「ゼロ取引」「損失」などを非表示にさせる設定方法です。
- 必要なのは総損益が大きい数値や、プロフィットファクター=PFやリカバリーファクター=RFなどを見たいので不要な条件は非表示にします。

- 上図は最適化の結果です。左端の項目は結果になっており▼マークが下向きなので上に表示されているものが残高最大と言う意味になります。右端のスクロールバーが一番上にあるので、今回の最適化の結果は初期証拠金100万円を引くと総損益は611万円という結果でした。
- 2023年1月1日~2025年7月14日までの最適化で最も口座残高が多いパラメーターが左の項目に表示されますので次の画像で説明します。
最適化で選ばれた数万通りの組み合わせで最も成果の高かったパラメーター数値でバックテストを行う方法。

- 上図は最適化が終わった画面から残高最大のソートで最上位にある場所を右クリックして「この設定でバックテスト」を選択すると最適化結果からのバックテストが出来ます。
- ここから先はバックテストについての話になるので今日は最適化の話で止めておきます。
最適化を終えたバックテストをビジュアルモードで収録した動画がこちらです。

|MT5の最適化とは?
MT5(MetaTrader 5)の「最適化」とは、EA(エキスパートアドバイザー)のパラメーターを過去の相場データを使って検証し、より収益性の高い設定を探す作業のことです。
初めてEAを使う方にとっては難しく感じるかもしれませんが、最適化はEA運用の成否を分ける非常に重要なステップです。
最適化を行う理由
- EAが持つ潜在的なパフォーマンスを最大限引き出すため
- 特定の相場環境にフィットする設定を見つけるため
- 無駄な損失や高すぎるリスク設定を防止するため
- 信頼性のあるバックテスト結果をもとにEAの信頼度を判断するため
最適化のメリットとデメリット
メリット | デメリット |
---|---|
パフォーマンスの向上 | 時間がかかる(場合によっては数時間~数日以上) |
DD(ドローダウン)の抑制 | パラメーター設定ミスで逆効果になることも |
実運用に近い設定が可能 | 過剰最適化のリスク(カーブフィッティング) |
カーブフィッティングとは何か?
MT5最適化で必ず知っておくべき「過剰最適化」の落とし穴
カーブフィッティングとは?

**カーブフィッティング(Curve Fitting)**とは、過去の相場データに「ぴったり合うように」EAのパラメーターを調整しすぎてしまい、実際の相場では通用しない設定になってしまう現象です。
いわば「過去の相場だけで勝てる理想のEA」にしてしまい、未来の相場では逆に負けやすくなる危険性があります。
✅ 簡単なイメージ
- カーブフィッティング = 試験対策のために「答えを丸暗記」しただけの生徒
- 正しい最適化 = 応用問題にも対応できる「本質を理解した」生徒
なぜカーブフィッティングが起こるのか?
- 最適化で数千〜数万通りのパターンを検証すると、「たまたま良い結果になる設定」が見つかってしまう
- 特定の期間の特徴的な値動きに偏った結果を、最良だと勘違いしてしまう
- 実際にはあり得ないほど細かくパラメーターを調整してしまう(例:MAの期間を21→22にしただけで大きく成績が変わる)
カーブフィッティングされた結果の特徴
以下のような結果は、カーブフィッティングを疑うサインです。
チェックポイント | 内容 |
---|---|
PF(プロフィットファクター)が異常に高い | 例:PF 8.5やPF 10.0など現実離れした数値 |
トレード回数が極端に少ない | 数十回未満しかトレードしていない |
ドローダウンがゼロに近い | DD 1%以下など「きれいすぎる」成績 |
特定の期間でだけ勝っている | 後半数ヶ月だけ成績が良く、それ以外は横ばい |
設定を少し変えただけで大崩れする | 例:パラメーターを1つ変えただけでPFが半減する |
カーブフィッティングにならないための最適化の方法
以下の対策を実施することで、現実的で再現性のあるEA設定に近づけることができます。
1. トレード数は最低2年以上で100回以上
トレード数が少ないと、偶然の結果に左右されやすくなります。
最低でも100回以上のトレード実績がある設定を選びましょう。
2. PFは2.0前後が理想(高すぎてもNG)
PFが高すぎる(3.0以上)と、実運用ではそのような成績を維持できない可能性が高いです。
理想は「PF 1.8〜2.5」程度で、安定したトレード数とセットで選ぶことが重要です。
3. ドローダウンが現実的かどうか
DDが5%以下など「完璧すぎる」設定は要注意です。
DD10~20%以内が現実的で、多少の損失も見込んだ上での「安定性」を評価しましょう。
4. 最適化の「過去期間」と「未来期間」に分ける(フォワードテスト)
アウトオブサンプル(OOS)テストと呼ばれる手法です。
例)
- 2023年1月~2023年12月 → 最適化(学習期間)
- 2024年1月~2024年6月 → 検証(未来のテスト)
このように「過去と未来に分けた検証」を行うことで、本当に実力のあるEA設定かどうかが見えるようになります。
5. パラメーターは広く・雑に動かす
最初から細かすぎる(例:MAを1刻みで1〜200)と、偶然の最適値を引きやすくなります。
まずは大まかな範囲で最適化し、あとから微調整するのがポイントです。
私の場合は、短期MA1~100、長期MA10~1000
でHGF EURUSDを最適化します。
まとめ|カーブフィッティングは「EAの落とし穴」
- 過去にだけ通用する「お利口すぎるEA」は、未来では機能しない
- それを防ぐには、「現実的な数値」と「未来でも通用するか」の確認が不可欠
- 適度なパフォーマンスと安定性を備えたEAこそ、長期運用に強い
最後に一言
最適化の目的は「過去に勝つこと」ではなく、未来に勝つための準備です。
その本質を忘れず、正しい最適化を行うことで、信頼できるEA運用が実現します。
最適化のステップ(全体の流れ)
- MT5にEAをセット
- 戦略テスターを開く(ショートカット:Ctrl + R)
- 通貨ペア・時間足・期間を指定する
- 「最適化」にチェックを入れる
- パラメーター範囲とステップを設定する
- モデルは「すべてのティック(リアルティック)」を選ぶ
- 「スタート」で最適化を実行
- 結果から最良のパターンを選択し、
.set
ファイルとして保存
初心者が気をつけたい最適化の注意点
- モデルは「リアルティックに基づいたすべてのティック」を選択
→ スプレッド・スリッページを含めた信頼性の高い検証結果になります。 - スプレッド設定を「現在のスプレッド」にする
→ 実際のブローカーの環境に近づけます。 - 最適化期間は直近6ヶ月〜12ヶ月がおすすめ
→ 相場の変動に対応するには古すぎないデータが必要です。 - PF(プロフィットファクター)だけでなくDDやトレード数も確認する
→ 極端なパターンは過剰最適化の可能性があります。
最適化結果の見方
- PF(プロフィットファクター):2.0以上が理想的
- DD(ドローダウン):20%以下で安定性が高い
- トレード回数:最低でも50〜100以上のサンプル数が必要
- グラフ:右肩上がりでなめらかな曲線が良い傾向
.setファイルの保存と再利用
最適化後に良好な結果が出たパラメーターは、「保存」ボタンから .setファイルとして保存することができます。
このファイルは将来の運用時や再最適化時にすぐ読み込めるので、バックアップを取っておくのがおすすめです。
まとめ|最適化はEAの「性能テスト」であり「調律」作業
EAをそのまま動かすだけでは、本来の性能が出ない可能性もあります。
最適化は少々手間がかかるものの、安定して利益を出すためには必要不可欠なプロセスです。
✅ ワンポイントアドバイス
- 最適化後は**実際のフォワードテスト(デモ口座など)**で挙動を確認すること
- 最適化結果を「そのまま信用しない」。常に相場の変化を前提にすること
ということでこのように複雑で長い時間を経てEAは最適化プロセスを潜り抜けてブローカーやペア通貨に最適なパラメーターを発見することが出来ます。
EA制作→最適化→パラメーター数値を決定→バックテスト→デモ口座やリアル口座でフォワードテスト→市場へ開放
ざっくりと上記のような段階を経て市場に出回ることになるEAですが、最終的にフォワードテストが最も重要であると言えます。
過去検証によって得られた最適なパラメーターが今より未来の市場の値動きに耐えられるか?バックテストと同じような利益を上げ続けることが出来るのかは神のみぞ知る領域、つまり誰にもわからない未知数なところです。
価格的にはバックテストの段階が安価である場合が多く、国内外の価格帯では20,000円~70,000円前後が多いようです。
それ以上の価格帯は高額EAで10万円を超えて100万円近くまでのEAが国内外で販売されているのを見ることが出来ます。
入手したEAをデフォルトでバックテストしたりビジュアルモードでエントリーやイグジットや取引頻度や取引周期について予め知っていくことで1週間取引が無くてもそういうEAであると構えることが出来ます。
長い期間ポジションを保有するスウィングトレードスタイルのEAもありますし、高速スキャルピングのように1分間に何度も決済するEAも存在するようです。(国内では高速スキャルを禁止しているブローカーもあります)
それでは今日はこの辺りで終了します。
この記事が皆様のEAトレードライフに役に立つ情報であれば幸いです。
コメント