ホーム > ブログ > MT5 EA最適化の遺伝アルゴリズム入門

MT5EA最適化遺伝アルゴリズムストラテジーテスター

MT5 EA最適化の遺伝アルゴリズム入門

公開日: 2026-10-02読了目安: 約7分
⏱ 本記事は公開日時点の情報です。EAの実績数値(PF・DD・年率)は運用や再検証で変動するため、最新値は各EAページでご確認ください。 最新のEA実績を見る →

MT5 EA最適化の遺伝アルゴリズム入門

EAのパラメータをチューニングするとき、MT5のストラテジーテスターには2種類の最適化モードがあります。「総当たり(全パラメータの組み合わせを全部試す)」と「遺伝アルゴリズム(GA)」です。

膨大な組み合わせを現実的な時間で探索するには、遺伝アルゴリズムを使うのが標準的です。この記事では、遺伝アルゴリズム最適化の基本と、実用上のポイントを整理します。

この記事の要点

  • 組み合わせが数万通りを超えるなら、総当たりではなく遺伝アルゴリズム(GA)で探索する
  • 評価指標は回収係数かシャープレシオを選び、取引数の少ない解は除外する
  • 最高スコアの1件ではなく、上位10〜20件のまとまり・パラメータ感度・期間分割の検証で採用値を決める

最適化の流れ(全体像)

手順やること詳しい解説
1最適化するパラメータをロジックの核になる少数に絞る最適化対象は絞り込む
2組み合わせ数を見て、総当たりかGAかを決める総当たりとの使い分け
3テスターで「遺伝的アルゴリズムに基づく高速」と評価指標を設定するストラテジーテスターでの設定
4最適化を実行し、「最適化結果」タブで収束の様子を確認する遺伝アルゴリズム最適化の実行
5期間分割・上位解の比較・感度チェックで過剰最適化を除く過剰最適化を避ける
6時間がかかる場合は並列エージェントやクラウドで短縮する並列最適化の活用

遺伝アルゴリズムとは

遺伝アルゴリズム(Genetic Algorithm: GA)は、生物の進化を模した最適化手法です。具体的には次のような流れで進みます。

  1. ランダムなパラメータの組(個体)を複数生成
  2. 各個体でバックテストを実行し、評価指標(PF、回収係数など)でスコアリング
  3. 上位の個体を「親」として選び、交叉・突然変異で次世代を生成
  4. これを繰り返し、世代を重ねるほど評価が高いパラメータに収束

総当たりが「全ての組み合わせを総なめ」するのに対し、GAは「良さそうな領域に絞って探索」するため、計算時間が桁違いに短くなります。

総当たりとの使い分け

総当たり遺伝アルゴリズム(GA)
探索の仕方全ての組み合わせを総なめ良さそうな領域に絞って探索
向いている規模パラメータ数が少なく、組み合わせが数千以下パラメータ数が多く、組み合わせが数万以上
計算時間組み合わせ数に比例して増える桁違いに短い

たとえば、3つのパラメータをそれぞれ10ステップで動かすなら1,000通りなので総当たりで十分です。一方、5つのパラメータを20ステップで動かすと320万通りになり、現実的には遺伝アルゴリズムが必要になります。

ストラテジーテスターでの設定

最適化を有効にするには、ストラテジーテスター画面で以下を設定します。

最適化モードの選択と、最適化するパラメータのチェック
最適化モードの選択と、最適化するパラメータのチェック

  • 最適化: 「遺伝的アルゴリズムに基づく高速」を選択
  • 結果: 「最大複利」「カスタム最大値」「最大回収係数」など、評価指標を選択
  • 入力パラメータタブ: 最適化したいパラメータにチェック、開始値・終了値・ステップを設定

評価指標の選び方

何を「良い」とするかで結果が変わります。代表的な指標と特徴は以下です。

指標中身特徴
最大複利(プロフィット)利益のみを最大化リスクを無視するため過剰最適化に陥りやすい
回収係数純利益 ÷ 最大ドローダウンバランス重視
シャープレシオリターンの安定性を考慮安定性重視
カスタム最大値EAコード内で自由に定義可能(例: PF × 取引数)目的に合わせて設計できる

回収係数またはシャープレシオを使うのが、過剰最適化を避けつつ実用的なパラメータを見つけやすい方法です。

遺伝アルゴリズム最適化の実行

最適化を開始すると、世代ごとに評価値の高いパラメータが「最適化結果」タブに並びます。

MT5の遺伝アルゴリズムは数百世代を自動で回し、上位の解に収束していきます。

「最適化結果」タブ(パラメータの組み合わせごとの成績)
「最適化結果」タブ(パラメータの組み合わせごとの成績)

よくある落とし穴

症状考えられる原因
収束が早すぎるパラメータの探索範囲が狭すぎる可能性
全然収束しない評価指標が不適切、もしくはノイズが多すぎる
明らかに変な値に収束する取引数が少なすぎる解を除外していない

「取引数50回以下の結果は除外」といったフィルタを評価関数に組み込むことで、サンプル数の少ないノイズ解を排除できます。

過剰最適化を避ける

最適化を回せば回すほど「過去には完璧だが未来では機能しない」パラメータに近づきます。これを避けるための実践的なルールは次の4つです。

ルール確認すること
1. 期間を分割する後半のアウトオブサンプルで結果が崩れないか
2. 上位10〜20件を比較する上位の解が似た領域に固まっているか
3. パラメータ感度を確認±10〜20%動かしても結果が大きく崩れないか
4. 最適化しないパラメータも持つロジック上自然な固定値を残しているか

1. 期間を分割する

過去10年データの場合、前半7年で最適化し、後半3年でアウトオブサンプル検証します。後半で結果が崩れるなら、前半に過剰適合していたと判断できます。

2. 上位10〜20件を比較する

最高スコアの1つだけを採用するのは危険です。

上位の解が似た領域に固まっているかを確認し、固まっていればその中央付近のパラメータを採用します。

3. パラメータ感度を確認

採用候補のパラメータを±10〜20%動かして、結果が大きく崩れないかチェックします。崩れるなら、その解は「尖った最適点」に過剰適合しています。

4. 最適化しないパラメータも持つ

「最適化していない、ロジック上自然な固定値」を必ず残すことで、過剰最適化のリスクを下げられます。

たとえばEMA期間を最適化しても、ATR倍率は固定にする、など。

並列最適化の活用

MT5は複数CPUコアを使った並列最適化に対応しています。「テスター」→「設定」で使用エージェント数を増やすと、計算時間を短縮できます。

さらにMQL5クラウドネットワークを使えば、世界中のリモートエージェントを使って大規模最適化を回せますが、料金がかかるため、まずはローカルでパラメータ範囲を絞り込むのが効率的です。

最適化対象は絞り込む

最適化するパラメータは、エントリー判定の期間や損切り幅など、ロジックの核になる少数に絞るのが基本です。

それ以外のパラメータは「自然な値」に固定すると、過剰最適化を防ぎやすくなります。

バックテストのPFは最適化を回せばいくらでも上がりますが、その分だけ未来の相場で機能しなくなる可能性も上がります。**「平凡な数字を選んで長く動かす」**のが運用上の現実解です。

無料EAダウンロード

当サイトの無料EA DONCHIAN ENGINE(USDJPY H1)は、USDJPY H1・9.4年(2017-2026 Dukascopy実tick)のバックテストでPF 1.50、勝率34.5%、最大DD 10.8%、取引数631回です。

無料EA DONCHIAN ENGINEを見る

おすすめブローカー

バックテスト・最適化の結果が実運用で再現されやすいよう、当サイトでは約定品質を重視したブローカーを推奨しています。

おすすめブローカー一覧を見る

📧 値上げ前のお知らせ + 5日間メール講座(無料)

全EAは現在ローンチ価格で、販売数に応じて段階的に値上げされます。値上げ前の事前通知に加えて、FX自動売買の本質、バックテストの正しい見方、ブローカー選びのコツを毎日1通お届けします。

※ プライバシーは厳守。配信解除はいつでも可能です。

EAやFXについて質問はありますか?

Nattzyのトレード掲示板に質問を投稿できます(無料登録)。この記事の内容に限らず、EAの設定やブローカー選びの相談も歓迎です。

Nattzyで質問する ↗

コメント・質問