本ページはプロモーションが含まれています

EA全般 MT4

MT4でEAを最適化する手順|パラメータ設定と結果・グラフの見方

トム

・本業エンジニア/EAのFX自動売買歴7年/ブログ歴6年
・首都圏在住30代
・MT4 EAを使った FXの自動売買で年間10万円の利益達成

MT4でEAを最適化するには、ストラテジーテスターでEAを選び、最適化したいパラメータにチェックを入れてスタート・ステップ・ストップを決めます。最後に「最適化」にチェックを入れてスタートを押します。

操作そのものは数分で終わります。迷うのはその後です。結果一覧で一番儲かった値をそのまま使うと、本番で成績が崩れることが少なくありません。

以下では、MT4に標準で入っている「MACD Sample」の実画面を使います。パラメータ範囲の決め方、遺伝的アルゴリズムを使う目安、最適化結果タブの列の意味、最適化グラフと2Dサーフェスの読み方を順に確認します。

この記事でわかること

  • スタート・ステップ・ストップの決め方と、試す回数(パス数)の計算
  • 遺伝的アルゴリズムを使うかどうかの目安と、最適化タブの打ち切り条件
  • 最適化結果タブの列の意味と、選んだ値をEAに反映する方法
  • 最適化グラフと2Dサーフェスで「面」で良い値を選ぶ見方
あわせて読む

MT4のEA最適化とは?

MT4のEA最適化とは、ストラテジーテスターでEAのパラメータを少しずつ変えながらバックテストを繰り返し、成績が良くなる値を探す機能です。例えばボリンジャーバンドの2σから逆張りするEAなら、期間をいくつにすると一番利益が出るのかを、値を変えながら1つずつ検証していきます。

最適化で押さえる3つのポイント

1. データの質の確認
高精度なデータで本番に近い結果を得る
2. 最適化の期間設定
短すぎても長すぎてもよくない
3. 変数の調整
結果に最も影響する変数を見極める
ポイント具体的には
データの質モデリング品質90%のヒストリカルデータを使う。質が低いと本番と結果が大きく異なる
期間最低5年、できれば10年。短いと一時的な相場に振り回され、長すぎると現在の相場と乖離する。トレンド・レンジ・急変を含める
変数最適化するパラメータは3〜5個に絞る。結果への影響が大きい順に、エントリー条件→決済条件→フィルターの優先で選ぶ

MT4ストラテジーテスターで最適化する手順

MT4の最適化は、バックテストと同じストラテジーテスターの画面で行います。

バックテストとの違いは2つだけです。「エキスパート設定」でパラメータごとに試す範囲を指定することと、「最適化」にチェックを入れることです。例に使うのは、MT4に標準で入っているEA「MACD Sample」です。

最適化の手順

1. EAを選びエキスパート設定を開く
MT4のテスターでEAを選択
→
2. 最適化するパラメータを選ぶ
チェックを入れ、スタート・ステップ・ストップを指定
→
3. 最適化をスタート
最適化にチェックしてスタートボタン
→
4. 結果から選ぶ
一覧やグラフで確認

EAを選びエキスパート設定を開く

MT4のストラテジーテスターを開いて最適化したいEAを選択し、「エキスパート設定」をクリックします。「パラメーターの入力」タブにパラメータ一覧が表示されます。

ストラテジーテスターでEAを選びエキスパート設定を開く

スタート・ステップ・ストップを決める

最適化したいパラメータにチェックを入れ、スタート・ステップ・ストップを決めます。ここではMACDOpenLevelにチェックを入れ、1から5までを1ずつ検証します。

パラメーターの入力タブでMACDOpenLevelにチェックを入れ、スタート・ステップ・ストップを指定する
パラメータの種類ステップ幅の目安例
移動平均などの期間5〜10刻み10, 20, 30…100
損切り・利確(pips)5〜10pips刻み20, 30, 40…100
しきい値(RSIなど)5刻み20, 25, 30…40
避けるべき1pips刻み、1期間刻み細かすぎると過剰最適化になる

チェックを入れていないパラメータは、「値」欄の数値で固定されたまま動きません。チェックを入れたパラメータでは「値」欄は使われず、スタートからストップまでをステップ刻みで試します。

試す回数(パス数)は、パラメータごとの「(ストップ−スタート)÷ステップ+1」を掛け合わせた数です。今回のMACDOpenLevelは1〜5を1刻みなので5パスです。

設定例(計算例)パス数
期間10〜100(10刻み)×損切り20〜100pips(10刻み)×利確20〜100pips(10刻み)10×9×9=810
同じ条件で損切り・利確だけ1pips刻みにした場合10×81×81=65,610

仮に1パス3秒かかるとすると、810パスは約40分、65,610パスは約55時間です。1パスの所要時間はEA・期間・モデルで大きく変わるため、比率の目安として見てください。

刻みを10pipsから1pipsにしただけで、時間は81倍に膨らみます。そのうえ細かい刻みほどノイズに合わせ込みやすくなります。上の表で5〜10刻みを目安にしているのは、この2つが理由です。

最適化パラメータと遺伝的アルゴリズムを選ぶ

エキスパート設定の「テスト設定」タブでは、何を基準に良し悪しを決めるか(最適化パラメータ)と、遺伝的アルゴリズムを使うかどうかを選びます。

最適化パラメータ意味使いどころ
Balance残高が最大最も一般的。利益重視
Profit Factorプロフィットファクタ(総利益÷総損失)が最大効率重視
Expected Payoff期待利得(1取引あたりの平均損益)が最大取引回数が多いEA
Maximal Drawdown最大ドローダウン(金額)が最小安定重視
Drawdown Percentドローダウン率(%)が最小資金効率重視
CustomOnTester関数の戻り値独自の評価基準

「遺伝的アルゴリズム」にチェックを入れると、全組み合わせは試しません。成績の良い組み合わせ同士を掛け合わせながら有望な範囲を探すため、時間を大幅に短縮できます。

使うかどうかの目安はパス数です。前の節の計算例の810パスのように数百〜数千程度なら、チェックを外して総当たりにしたほうが全パスの結果を見比べられます。前後の値も成績が良い「なだらかな山」かどうかを確かめるには、抜けのない結果が必要です。

数万パスを超えるときは遺伝的アルゴリズムをオンにし、見つかった値の前後だけを範囲にして総当たりで確かめ直すと確実です。探索にランダムな要素があるため、同じ設定でも実行するたびに結果が変わることがあります。

最適化タブで打ち切り条件を決める(任意)

同じエキスパート設定の「最適化」タブでは、見込みのないパスを途中で打ち切る条件を設定できます。チェックを入れた条件に達したパスはそこで中断され、次のパラメータの組み合わせに進みます(条件の一覧はMT4公式ヘルプ「Setup」に基づく)。

条件(英語版表記)打ち切る基準
残高の下限(Balance minimum)残高がこの金額を下回った
利益の上限(Profit maximum)利益がこの金額を上回った
証拠金維持率の下限(Minimal margin level %)証拠金維持率がこの%を下回った
最大ドローダウン(Maximal drawdown %)ドローダウンがこの%を超えた
連敗・連勝(Consecutive loss / win など4項目)連続した負け・勝ちの損益額や回数がこの値を超えた

何も設定しなくても最適化は動きます。組み合わせが多く時間がかかるときに、ドローダウン率などで明らかに使えない組み合わせを早めに切り上げる、という使い方で十分です。

最適化をスタートする

「最適化」にチェックを入れてスタートボタンを押します。

最適化にチェックを入れてスタートを押す

最適化結果タブの見方

最適化された結果が一覧に表示されます。1〜5を1ずつ検証したので、5つの結果があります。今回はすべて損益がマイナスになりましたが、損益が一番大きいのはMACDOpenLevelが3の場合でした。

最適化結果の一覧。MACDOpenLevelごとの損益が表示されている

結果タブの各列の意味は次のとおりです。列の見出しをクリックすると、その列の値で昇順・降順に並べ替えられます(列の定義はMT4公式ヘルプ「Optimization Results」に基づく)。

列(英語版表記)意味
パス(Pass)何回目のテストか(パス番号)
損益(Profit)総利益から総損失を引いた純損益
総取引数(Total trades)そのパスで行った取引の数
プロフィットファクタ(Profit factor)総利益÷総損失。1なら損益がトントン
期待利得(Expected Payoff)1取引あたりの平均損益
ドローダウン $(Drawdown $)初期証拠金に対する最大ドローダウン(口座通貨)
ドローダウン %(Drawdown %)初期証拠金に対する最大ドローダウン(%)
Inputsそのパスで使ったパラメータの値
あわせて読む

最適化結果で右クリックするとメニューが表示されます。

最適化結果の右クリックメニュー
メニュー機能
パラメータの設定選択している結果のパラメータをEAに設定する
マイナスの結果を表示しない損益がマイナスの結果を除外する。最適化しても何も表示されないときはここにチェックが付いていないか確認
レポートの保存最適化結果をHTMLで保存する

結果の行をダブルクリックしても「パラメータの設定」と同じ動作になり、そのパスの値がEAの入力パラメータに入ります。このとき画面は「設定」タブに戻り、最適化モードは解除されます。そのままスタートを押せば、選んだ値で通常のバックテストを実行して資産曲線やレポートを確認できます。

あわせて読む

最適化グラフの見方

「最適化グラフ」タブを選択すると結果をグラフで見られます。グラフで見ることは、後述する過剰最適化を防ぐために大事な作業です。

最適化結果のグラフ表示

グラフにはパスごとの損益が描かれ、下の部分には各パスの勝ちトレード(緑)と負けトレード(赤)の数が表示されます。気になる点をダブルクリックすると、最適化結果タブの該当するパスに移動します。

複数パラメータの最適化と2Dサーフェスの見方

複数のパラメータを同時に最適化すると、パラメータの組み合わせでパフォーマンスを測れます。1つずつ最適化するよりベストな組み合わせを見つけられる可能性があります。

手順は1つのときと同じで、最適化したいパラメータすべてにチェックを入れるだけです。ここではMACDOpenLevelとMACDCloseLevelにチェックを入れています。

MACDOpenLevelとMACDCloseLevelの2つにチェックを入れる

損益が一番良かった組み合わせはMACDOpenLevelが2、MACDCloseLevelが2の場合でした。

2つのパラメータを最適化した結果一覧
2つのパラメータを最適化した結果のグラフ

グラフの上で右クリックして「2Dサーフェス」をクリックすると、2次元で可視化できます。色が濃いところが損益の大きい組み合わせです。

グラフの右クリックメニューから2Dサーフェスを選ぶ
2Dサーフェス表示。色が濃いほど損益が大きい

2Dサーフェスでは、濃い色が「点」ではなく「面」で広がっている組み合わせを選びます。濃い点が1つだけ孤立している場合は、その組み合わせだけ偶然良かった可能性が高いためです。

あわせて読む

最適化結果から値を選ぶときの注意点

最適化を進めるとバックテストは綺麗になっていきますが、やりすぎるとバックテストと本番の結果に大きな差が出ます。バックテスト通りの利益が本番で出ないEAになってしまう状態を、過剰最適化と呼びます。

併せて読む

下の画像は途中までの期間で最適化をかけたバックテストです。最適化に使っていない最後の方の期間は、結果がよろしくないことがわかります。

途中の期間まで最適化したEAの資産曲線。最適化していない後半で成績が崩れている

過剰最適化の例をグラフで見てみましょう。1番目のパラメータだけ他より飛び抜けて成績が良くなっています。1番目の値だけがたまたま相場に合ったと考えられます。こうした飛び抜けた値を選ぶと、過剰最適化につながります。

最適化グラフで1番目のパラメータだけ飛び抜けて成績が良い例
やってはいけないことなぜ代わりに
飛び抜けた値を選ぶ偶然相場に合っただけの可能性が高い前後の値も良い「なだらかな山」の中から選ぶ
1pips刻みなど細かすぎる最適化ノイズに合わせ込んでしまう5〜10刻みで粗く最適化する
全期間で最適化する本番で通用するか確認できない直近2〜3年を残してアウトオブサンプルテストをする
パラメータを10個以上最適化する組み合わせ次第でどんな相場にも合わせられる3〜5個に絞る
最適化の結果だけで稼働する過剰最適化を見抜けないフォワードテストで確認する

MT4とMT5の最適化機能は何が違う?

最適化の考え方はMT5でも同じですが、テスターの機能には差があります。特に大きいのは、最適化に使わない期間を自動で残す「フォワード」機能の有無です。

項目MT4MT5
フォワード期間の分割機能なし(期間を分けて手動でテストする)「フォワード」で期間の1/2・1/3・1/4、または任意の開始日で自動分割
最適化の方式総当たり、または遺伝的アルゴリズム完全アルゴリズム(総当たり)、または高速遺伝的アルゴリズム
最適化の基準Balance・Profit Factor・Expected Payoff・Maximal Drawdown・Drawdown Percent・CustomBalance・Profit Factor・Expected Payoff・Drawdown(相対ドローダウン%の最小)・Custom に加え、Recovery Factor・Sharpe Ratio・複合基準(Complex Criterion)
計算の分散1台のテスターで順に計算ローカル・リモートのエージェントやMQL5 Cloud Networkで並列計算

本記事の操作手順はMT4の画面です。MT5はテスターの画面構成が異なるため、同じ考え方で実際のMT5画面に沿って読み替えてください。

おまけ:資産曲線の形でわかるEAの4タイプ

何回もバックテストの資産曲線を見ていると、そこからEAの特性がなんとなくわかるようになります。代表的な4つの形を紹介します。

タイプ資産曲線の特徴運用上の注意
損小利大ジワジワ減った後に大きな勝ちでカバー連敗を我慢する必要がある。負けに慣れれば大きなダメージはない
損大利小緩やかに増え、急角度で減る高勝率で気持ちよく増えるが、たまの負けが大きい
ナンピンほぼ負けなしの直線。緑の数量が跳ねるロットが膨らむ。資金管理を徹底しないと破産する
後半失速型前半は良いが後半で成績が落ちる手法が通用しにくくなっている。様子を見ながら稼働

損小利大

損小利大タイプのEAの資産曲線

資産がジワジワ減った後に、勝ちトレードでそれまでの負けをカバーしているのが特徴です。負けることが多いので連敗に耐えながらの運用になりますが、負けに慣れてしまえばメンタルへ大きなダメージになるトレードはほとんどありません。

損大利小

損大利小タイプのEAの資産曲線

資産が増えるところは緩やかに増え、減るところでは急激な角度で減るのが特徴です。

ナンピン

ナンピンタイプのEAの資産曲線。負けなしの直線で、数量の緑線が跳ねている

資産曲線がほぼ負けなしで直線的に右肩上がりになっているのが特徴です。下の「数量」と書かれた緑の線はロット数で、ロットをどんどん増やして含み損をカバーしているナンピンタイプだとわかります。ロットが極端に大きくなることがあるため、資金管理を徹底しないと破産します。

後半失速型

後半失速型のEAの資産曲線。後半で成績が落ちている

成績が良さそうに見えますが、よく見ると後半で成績が落ちているのが特徴です。手法が通用しにくくなってきていると考えられます。それでも使えなくなったとは限らないため、稼働させながら様子を見るのが現実的です。

MT4のEA最適化でよくある質問

MT4でEAを最適化するときに迷いやすい点をまとめました。遺伝的アルゴリズムの使いどころ、結果が表示されないときの確認箇所、MT5との違いなど、手順の途中でつまずきやすい論点です。詳しい操作は各見出しの本文と画像もあわせて確認してください。

Q1. MT4の最適化で遺伝的アルゴリズムは使うべき?

パス数が数百〜数千程度なら使わずに総当たりにし、全パスの結果を見比べるのがおすすめです。数万パスを超えるときはオンにして時間を短縮し、見つかった値の前後を総当たりで確かめ直します。探索にランダムな要素があるため、実行するたびに結果が変わることがあります。

Q2. MT4で最適化したのに結果が表示されないのはなぜ?

最適化結果タブの右クリックメニューで「マイナスの結果を表示しない」にチェックが入っていると、損失になったパスは表示されません。すべてのパスが損失なら一覧は空になります。チェックを外すと損失のパスも表示されます。

Q3. 最適化パラメータ(Balanceなど)はどれを選べばいい?

MT4ヘルプの定義では、Balance・Profit Factor・Expected Payoffはそれぞれ残高・プロフィットファクタ・期待利得が最大の組み合わせを、Maximal Drawdown・Drawdown Percentはドローダウンが最小の組み合わせを良い結果とみなします。迷ったらBalanceで回し、結果タブの列見出しで並べ替えてプロフィットファクタとドローダウンも見比べます。

Q4. MT4でもフォワードテストを最適化と同時にできる?

できません。MT4のストラテジーテスターには、MT5の「フォワード」のように期間を自動で分ける機能がありません。期間を指定して前半だけで最適化し、選んだ値で残りの期間を通常のバックテストにかけて確かめます。

Q5. 最適化結果の値をEAに反映するには?

最適化結果タブで行を右クリックして「パラメータの設定」を選ぶか、行をダブルクリックします。そのパスの値がEAの入力パラメータに入り、画面は設定タブに戻って最適化モードが解除されます。

Q6. MT4の最適化グラフでは何を見ればいい?

パスごとの損益の並び方を見ます。一部の値だけが飛び抜けている形より、前後の値も同じくらい良い「なだらかな山」になっている範囲から選ぶほうが本番で崩れにくくなります。パラメータが2つなら右クリックの「2Dサーフェス」で、濃い色が面で広がっている組み合わせを探します。

まとめ

  • 最適化はバックテストの結果が良くなるパラメータを選ぶ作業。手順は「EA選択→パラメータにチェック→範囲指定→最適化にチェック→スタート」
  • 結果タブは列見出しで並べ替え、損益だけでなくプロフィットファクタとドローダウンも見比べる。最適化グラフは点をダブルクリックすると該当パスに移動できる
  • 複数パラメータは同時に最適化し、2Dサーフェスで「面」で良い組み合わせを選ぶ
  • 飛び抜けた値・細かすぎる刻み・全期間の最適化は過剰最適化のもと。3〜5個に絞り、直近期間を残してテストする
  • MT4のテスターには最適化と同時にフォワード期間を分ける機能がない。期間を分けて手動で確かめる(MT5は「フォワード」で自動分割できる)
  • 資産曲線の形からEAの特性(損小利大・損大利小・ナンピン・後半失速)を読み取る

※本記事は情報提供を目的としたもので、特定のEA・金融商品の売買を推奨するものではありません。FX(外国為替証拠金取引)は元本が保証されておらず、レバレッジにより預けた証拠金を上回る損失が発生する可能性があります。記事内の成績・数値は過去の実績であり、将来の利益を保証するものではありません。投資の最終判断はご自身の責任でお願いします。

  • この記事を書いた人
  • 最新記事

トム

・本業エンジニア/EAのFX自動売買歴7年/ブログ歴6年
・首都圏在住30代
・MT4 EAを使った FXの自動売買で年間10万円の利益達成

-EA全般, MT4
-