MT4/MT5でEAを最適化する方法|ストラテジーテスター設定とフォワードテスト

EAの最適化は、パラメーターの範囲とステップを決めてストラテジーテスターで総当たりし、成績の良い組を選ぶ作業です。ただし、組み合わせを増やすほど、期間の前半だけで成績の良い組が選ばれやすくなります。シストレ.COMがDukascopyのtickデータから作った1時間足(5通貨ペア・2016〜2025年)で、移動平均クロス2,403通りを前半5年で選んで後半5年に使ったところ、前半の最良の組は、5通貨ペア中4通貨ペアで後半にマイナスになりました。この記事では、パラメーターの探し方、MT4・MT5のストラテジーテスターでの手順、期間を分けた確かめ方を、計測値つきで解説します。

目次

EA最適化とは|同じEAの入力値を変えて、成績の良い組を探す作業

EAの最適化から実運用までの6段階を縦に並べた図。期間を分ける、範囲とステップを決める、最適化を実行する、山の形を見る、検証期間で確かめる、デモ口座で動かす。3番目の最適化の実行だけ橙で強調
最適化から実運用までの流れ(手順を整理した模式図で、実際の測定ではありません)

最適化とは|入力値を変えながら、同じデータで何度もテストすること

EAの最適化は、同じEAを、入力値(パラメーター)だけ変えながら、同じ期間のデータで何度もテストする作業です。MetaQuotes社のMT4ヘルプも、最適化を「同じEAを、異なる入力値で、同じデータに対して繰り返し走らせること」と説明しています。1回のテストをバックテストと呼ぶのに対し、最適化はバックテストを入力値の組み合わせの数だけ繰り返したものです。

図のとおり、最適化は6段階のうちの3番目です。前に「期間を分ける」「範囲を決める」があり、後ろに「山の形を見る」「検証期間で確かめる」「デモ口座で動かす」が続きます。この記事も、この順で進めます。

最適化で分かることと、分からないこと

最適化で分かるのは、使った期間のデータで、成績の良かった入力値の組です。分からないのは、その組がこれからも通用するかどうかです。使った期間に偶然合っただけの組が選ばれることがあり、これを過剰最適化(カーブフィッティング)と呼びます。バックテストの数字の見方はバックテストの信頼性で、EAを始める前の全体の流れはEA始め方ガイドで整理しています。

過剰最適化がどのくらい起きるかは、後半の章で、自社のtickデータを使った計測で示します。その計測の手法(移動平均クロス)は、最適化の題材として選んだもので、おすすめするものではありません。

アドバイス

最適化は、入力値を変えて何度もテストすること。選ばれた組が、これからも通用するとは限らないよ。

EA最適化のパラメーターの探し方|範囲・ステップ・個数の決め方

パラメーターを1個から5個まで増やしたときの総当たりの回数を示した棒グラフ。各20通りずつなら、20、400、8,000、16万、320万回。1回10秒と仮定した所要時間は3.3分から約1.0年まで伸びる
各パラメーターを20通りずつ動かした総当たりの回数と、1回10秒と仮定した所要時間(計算による試算で、実測ではありません)

範囲とステップ|動かす幅と刻みを決める

パラメーター最適化では、動かしたい入力値ごとに、始まりの値・刻み(ステップ)・終わりの値を決めます。MT4のヘルプでは、EAの設定画面の「Inputs」タブに、Value・Start・Step・Stopの列があり、Start・Step・Stopは最適化のときだけ使われます。MT5のヘルプでは、最適化するパラメーターにチェックを入れ、範囲の開始・ステップ・終了を指定すると、組み合わせの総数が一覧の下に表示されます。

たとえば移動平均の期間を5〜50本、5本刻みで動かすと、試す値は5・10・15……50の10通りです。刻みを細かくすると、試す値は増えますが、隣り合う値の成績は近くなるので、情報はあまり増えません。まず粗い刻みで全体の形を見て、よさそうな所だけ細かく見る方法がよく紹介されます。

パラメーターの個数|20通りずつ動かすと爆発する

組み合わせの数は、各パラメーターの試す値の数を掛け合わせたものです。各20通りずつなら、1個で20通り、2個で400通り、3個で8,000通り、4個で16万通り、5個で320万通りになります。1回のテストが10秒かかると仮定すると、1個は3.3分、2個は1.1時間、3個は22時間、4個は18.5日、5個は約1.0年です。1回10秒は、説明のための仮の値で、実際の所要時間はEA・期間・モデリング方法で大きく変わります。

動かす数を絞る|意味のあるパラメーターだけを選ぶ

個数が増えると、時間だけでなく、偶然よく見える組が混ざる確率も上がります。そのため、動かすのは、売買の判断に直接効く少数のパラメーターに絞り、ほかは固定するのが基本です。時間足の選び方はEA 時間足の選び方、ストキャスティクスを使うEAはストキャEAのロジック4分類・設定手順、時間帯や曜日で売買するEAはアノマリーEAの仕組みと選び方で、ロジックごとに何を動かすかを説明しています。

この記事の自社計測は、まとめる足の本数、短期線の本数、長期線の本数、売買の向き(買い売り両方・買いのみ・売りのみ)の4つを動かし、2,403通りを試しています。

アドバイス

動かすパラメーターを1つ増やすと、回数は掛け算で増えるよ。少なく絞るのが基本だね。

EA最適化の方式|完全アルゴリズムと遺伝的アルゴリズムの違い

MT5の完全アルゴリズムと遺伝的アルゴリズムを比べた表。調べる範囲、速さ、質、最適化基準の要否、終わり方の5項目。出典はMetaQuotesのMT5ヘルプ「最適化の種類」
完全アルゴリズムと遺伝的アルゴリズムの違い(MetaQuotes社MT5ヘルプの記述をまとめたもの)

完全アルゴリズムは、決めた範囲をすべて試す

MT5のヘルプによると、完全アルゴリズムは、選んだ範囲のすべての組み合わせを試す方式で、最も正確ですが、時間がかかります。組み合わせが少ないときは、この方式で全体の形を確かめられます。

遺伝的アルゴリズムは、良い組を選んで次の世代を作る

遺伝的アルゴリズムは、成績の良い組を選び、交差と突然変異で次の世代の組を作ることを繰り返す方式です。MT5のヘルプでは、はるかに速く、質はほぼ同じとされています。最適化基準(何を良い成績と見るか)が必要で、基準が数世代にわたって改善しなくなると終わります。また、64ビット版で組み合わせの総数が1億を超えると、遺伝的アルゴリズムが自動で始まると書かれています。

MT4にも、設定画面の「Testing」タブに遺伝的アルゴリズムの項目があり、残高・プロフィットファクター・期待利得の最大化、最大ドローダウン(金額または割合)の最小化から基準を選べます。

ただし、速い方式は、全体の形が見えにくい面もあります。次の「山の形」で触れるとおり、最良の組の周りがどうなっているかは、別に確かめる必要があります。

アドバイス

組み合わせが少ないなら完全アルゴリズム、多いなら遺伝的アルゴリズム。速い方式でも、あとで山の形は確かめよう。

EA最適化のやり方(MT4)|ストラテジーテスターの設定手順

MT4のストラテジーテスターで最適化の前に決める項目の表。EAと通貨ペアと時間足、モデリング方法の3種類、スプレッド、期間、Expert propertiesのTestingとInputs、Optimizationのチェック
MT4で最適化の前に決める項目(MetaQuotes社MT4ヘルプの表記。日本語版の表示は異なる場合があります)

MT4で最適化する手順

MT4のヘルプ(出典は章末に一覧)に沿って、手順を整理します。画面の名前はヘルプの表記で、日本語版では表示が異なる場合があります。

  1. ストラテジーテスター(ヘルプの表記はTesterウィンドウ)の「Settings」タブで、最適化するEA(Expert Advisor)、通貨ペア(Symbol)、時間足(Period)を選びます。
  2. モデリング方法を選びます。ヘルプには、Open prices only(最も速い)、Control points、Every tickの3つがあり、Control pointsは主に最適化用、Every tickは詳しいテスト用と書かれています。
  3. 期間は「Use date」にチェックを入れ、From・Toで決めます。スプレッドは「Spread」欄で自分で指定できます。
  4. 「Expert properties」ボタンを押し、「Testing」タブで初期入金、売買の向き、遺伝的アルゴリズムの使用と基準を決めます。「Inputs」タブで、動かしたい入力値のStart・Step・Stopを入れます。
  5. 「Optimization」にチェックを入れて「Start」を押すと、テストではなく最適化が動きます。

期間の最初の100本は使われない

MT4のヘルプには、テスト期間の最初の100本はモデリングされないという記述があります。期間は、少し余裕を持って指定しておくと安心です。

最適化の結果の表について

MT4のヘルプで結果の見方が詳しく書かれているのは、1回のテストの「Results」「Graph」「Report」「Journal」の4つのタブです。最適化の結果の見方は、次の章のMT5の結果の列が参考になります。MT4のバックテスト全般はMT4バックテストのやり方で説明しています。

アドバイス

MT4は、Settingsタブで決めて、Optimizationにチェックを入れてStart。チェックを忘れると、ただのテストになるよ。

EA最適化のやり方(MT5)|設定タブと入力パラメーターの手順

MT5のストラテジーテスター設定タブで決める項目の表。銘柄と期間、日付、転送、ティック生成モード、初回入金、最適化、最適化基準、EAの入力値の8項目と、それぞれで決めること
MT5の設定タブで決める項目(MetaQuotes社MT5ヘルプの表記)

MT5で最適化する手順

MT5のストラテジーテスターの「設定」タブには、次の項目があります(MT5ヘルプ「ストラテジーの最適化」より)。

  1. EAと、銘柄・期間(時間足)を選びます。
  2. 「日付」で、最適化に使う期間の開始日と終了日を指定します。
  3. 「転送」で、期間の後ろ側を検証に回す割合(1/2・1/3・1/4・カスタム)を選びます。使わないときは「No」です。
  4. 「ティック生成モード」を選びます。全ティック、実際のティックに基づくすべてのティック、1分のOHLC、始値のみ、演算があります。
  5. 「最適化」で、完全アルゴリズム、遺伝的アルゴリズム、気配値表示で選択されたすべての銘柄から選び、遺伝的アルゴリズムのときは「最適化基準」も選びます。
  6. EAの入力値の一覧で、最適化したいものにチェックを入れ、開始・ステップ・終了を指定します。組み合わせの総数が一覧の下に出るので、ここで多すぎないかを確かめます。

ティック生成モードの選び方

ヘルプでは、「全ティック」は最も正確ですが最も遅いモードとされています。最適化の段階では、1分のOHLCや始値のみで候補を絞り、残った候補を全ティックで確かめる、という使い分けが考えられます。ただし、粗いモードで選んだ結果は、売買の細かさによって変わる可能性があります。tickデータの入手と精度はEA用ヒストリカルデータの取得方法と精度を高めるコツで解説しています。

MT5のバックテスト全般の手順はMT5バックテスト徹底ガイドにまとめています。

アドバイス

MT5は、設定タブの上から順に決めよう。組み合わせの総数は、一覧の下で必ず確かめるんだね。

EA最適化の結果の見方|最適化基準と結果の列

MT5の最適化基準8種類、結果表の列9種類、表から隠せるフィルター5種類を3つの枠に並べた図。基準は残高最大からComplex Criterion maxまで。列はパスから、シャープレシオまで
MT5の最適化基準・結果の列・フィルター(MetaQuotes社MT5ヘルプの記述をまとめたもの)

最適化基準|何を良い成績と見るか

MT5の最適化基準は、残高最大、最大利益率、最大予想ペイオフ、最小ドローダウン、最大回復係数、最大シャープレシオ、カスタム最大、Complex Criterion maxです。ヘルプでは、遺伝的アルゴリズムのときに必要とされています。MT4では、前の章のとおり、「Testing」タブで選びます。

基準が違えば、選ばれる組も変わります。たとえば残高の最大化だけを見ると、ドローダウンの大きい組が上位に来ることがあります。ドローダウンの見方はドローダウンとは?、損益の比の考え方はEAのリスクリワードの見方と最適設定で説明しています。

結果の列|パス・利益・取引数・ドローダウンなど

MT5の結果の表には、パス(試行の番号)、結果、利益、取引数、プロフィットファクター、期待利得、ドローダウン、回復率、シャープレシオ、最適化された入力が並びます。結果のタブは、「オプティマイズ」「オプティマイズグラフ」「先行結果」「先行テストグラフ」の4つです。先行結果は、転送(フォワード)を設定したときの、後ろの期間の結果です。

表から隠せるフィルター

ヘルプには、取引なしのパス、損失を生むパス、ドローダウンが50%を超えるパス、回復係数が1未満のパス、シャープレシオが0.5未満のパスを、表から隠すフィルターがあると書かれています。上位だけを見たいときに便利ですが、隠れた組を見ないと、全体の形が分からなくなります。山の形を見るときは、フィルターを外して全体を見るのが目安です。

アドバイス

基準を決めたら、途中で変えないのが目安。結果の上位だけでなく、全体の形も見ておこう。

EA最適化を速くする方法|MT4・MT5のバックテスト高速化

最適化を速くする手段と効果と注意の表。遺伝的アルゴリズム、MT4のControl pointsとOpen prices only、MT5の始値のみと1分OHLC、期間と個数を絞る、ローカルエージェント、遠隔とクラウドの6行
最適化を速くする手段と注意点(MetaQuotes社MT4・MT5ヘルプの記述をまとめたもの)

方式とモデリングを軽くする

ヘルプで確認できる速くする方法は、次のとおりです。第一に、遺伝的アルゴリズムにして、全部の組を回さないことです。第二に、モデリングを軽くすることです。MT4では、Open prices onlyが最も速く、Control pointsが主に最適化用です。MT5では、全ティックが最も遅いとされ、1分のOHLCや始値のみにすると軽くなります。そのぶん、足の中の動きは粗くなるので、精度は下がります。

期間と個数を絞る

テストの回数は、組み合わせの数に比例します。動かすパラメーターを減らす、刻みを粗くする、期間を短くする、のどれも、回数か1回あたりの時間を減らします。ただし、期間を短くすると、検証に回せる期間も減ります。期間を前後に分ける考え方は、後の章で説明します。

MT5の並列処理|エージェントを使う

MT5は、複数の「エージェント」に処理を分けて並列で走らせます。ヘルプによると、ローカルのエージェントは自動で作られ、数は論理コアの数と同じです。別のPCを遠隔エージェントとして加えることもでき、MQL5 Cloud Network(有料)は完全アルゴリズムのときだけ使えます。

アドバイス

速くするには、遺伝的アルゴリズム、軽いモデリング、絞った範囲の3つ。軽くしたぶん、精度は下がるよ。

EA最適化の過剰最適化|自社計測で見た、組み合わせ数と後半の成績

試す組み合わせの数を10通りから2,403通りまで増やしたときの、前半の最良の成績と、その組を後半に使った成績の折れ線。前半は+250から+647へ伸び、後半は−125から−254へ下がる
試す組み合わせを増やしたときの、前半の最良とその後半の成績(5通貨ペアの平均、自社計測)。単位は年あたりpips。Dukascopyのtickからシストレ.COMが作成

計測の条件|何を、どの期間で、どのコストで測ったか

シストレ.COM編集部が、Dukascopyのtickデータから1時間足を作り、USD/JPY(ドル円)・EUR/USD(ユーロドル)・GBP/USD(ポンドドル)・AUD/JPY(豪ドル円)・USD/CHF(ドルスイス)の5通貨ペア、2016年1月〜2025年12月で計測しました。1時間足を1・2・3・4・6・8・12・16・24本ずつまとめた足に、単純移動平均クロスを当てはめています。短期線は5〜50本、長期線は20〜200本(短期線より長いものだけ)、売買の向きは買い売り両方・買いのみ・売りのみで、全部で2,403通りです。

2016〜2020年を前半(最適化に使う期間)、2021〜2025年を後半(使わない期間)とし、年あたりのpipsで表しました。コストは、足ごとの平均スプレッドを、売買の出入りで半分ずつ引いています。5通貨ペアの平均スプレッドは、ドル円0.58、ユーロドル0.40、ポンドドル1.15、豪ドル円1.01、ドルスイス1.34pipsです。スワップと、約定のずれは含めていません。この手法(移動平均クロス)は、最適化の題材として選んだもので、おすすめする手法ではありません。

組み合わせを増やすと、前半は伸び、後半は下がる

無作為に選んだN通りの中から、前半の成績が最も良い組を選び、その組を後半に使った成績を、5通貨ペアの平均で比べました(Nごとに400回繰り返した平均で、最後の2,403通りは全部です)。10通りから選ぶと、前半が+250pips、後半が−125pipsです。100通りでは+481と−207、1,000通りでは+614と−242、2,403通りでは+647と−254になります。選ぶ母数を増やすほど、前半の成績は伸びますが、後半の成績は、むしろ下がりました。

これは、母数が増えるほど、前半の偶然の当たりを拾いやすくなる、という過剰最適化の典型的な形です。コストを引いた後の全組み合わせの前半の平均は、5通貨ペアともマイナス(ドル円−123、ユーロドル−151、ポンドドル−181、豪ドル円−40、ドルスイス−198pips)で、この題材では、前半に良く見える組のほうが少数でした。

5通貨ペアごとの、前半の最良の組の前半と後半の成績を並べた棒グラフ。前半は+323〜+900pipsですが、後半はドル円だけ+273で、ほかの4通貨ペアは−262〜−611pips
通貨ペア別の、前半の最良の組の成績(年あたりpips、自社計測)。Dukascopyのtickからシストレ.COMが作成

通貨ペア別|後半でプラスだったのは5通貨ペア中1つ

2,403通りから、前半の成績が最も良い組を通貨ペアごとに選ぶと、前半は+323〜+900pipsでした。ところが、同じ組を後半に使うと、プラスだったのはドル円(+273pips)だけで、ユーロドル(−611)、ポンドドル(−262)、豪ドル円(−304)、ドルスイス(−367)はマイナスでした。

スクロールできます
通貨ペア前半の最良の組前半(pips/年)後半(pips/年)後半の順位(2,403通り中)
ドル円2本まとめ・13/40・両方+757+2731,390位
ユーロドル2本まとめ・30/50・両方+475−6112,394位
ポンドドル2本まとめ・16/40・両方+900−2622,088位
豪ドル円4本まとめ・16/20・両方+780−3041,869位
ドルスイス6本まとめ・13/20・両方+323−3672,340位

表は、同じ条件(5通貨ペア、2016〜2025年、スプレッド込み、前半2016〜2020年・後半2021〜2025年)の自社計測です。組の欄は、まとめる足の本数・短期線と長期線の本数・売買の向きです。後半の順位は、同じ後半の成績で2,403通りを並べたときの位置で、ユーロドルは2,403通り中2,394位でした。通貨ペアを分ける運用の考え方はEAの複数通貨ペア運用を、スプレッドの仕組みはスプレッドの解説を参照してください。

アドバイス

選ぶ数を増やすほど、前半は伸びて、後半は下がったよ。前半の最良は、後半の保証にならないんだね。

EA最適化の山の形|最良の組の隣も良いかを見る

ドル円の2本まとめ足、買い売り両方で、短期線と長期線の本数ごとの成績を色で示した2枚のヒートマップ。上が前半、下が後半。前半の最良を星で示す。後半は長期線200本の列が濃い緑になる
ドル円・2本まとめ足・買い売り両方の、短期線と長期線の本数ごとの成績(年あたりpips、色は±1,000で頭打ち)。星が前半の最良。自社計測。Dukascopyのtickからシストレ.COMが作成

山と針|最良の周りの形を見る

最適化の結果は、最良の1つだけでなく、その周りの形で見ます。なだらかな山の頂上にあるなら、入力値が多少ずれても成績は近いままです。針のように1点だけ高いなら、その1点が偶然当たっただけの可能性があります。図は、ドル円の2本まとめ足で、短期線と長期線の本数ごとの成績を色で表したものです。上が前半、下が後半で、星が前半の最良(短期13本・長期40本)です。

前半は、星の周りに緑(プラス)が広がり、山の形に見えます。しかし後半は、星の位置が+273pipsと、前半の+757pipsより小さくなり、前半では目立たなかった長期線200本の列が濃い緑になるなど、良い所が別の場所に移っています。山の形があっても、期間が変わると、山の場所は変わることがあります。

5通貨ペアごとに、前半の最良の組と、その隣の組の平均を並べた棒グラフ。隣の平均は、ドル円+452、ユーロドル+68、ポンドドル+398、豪ドル円+273、ドルスイス−146pips
前半の最良と、隣の組の平均(年あたりpips、自社計測)。隣は、まとめる本数・短期線・長期線を1目盛りだけずらした組。Dukascopyのtickからシストレ.COMが作成

最良の隣の組は、最良よりかなり低い

5通貨ペアの最良の組について、まとめる本数・短期線・長期線を、同じ売買の向きのまま1目盛りだけずらした組(最大6組、端の組は少なくなります)の、前半の平均を見ました。ドル円は+757pipsに対して隣の平均が+452(最良の60%)、ユーロドルは+475に対して+68(14%)、ポンドドルは+900に対して+398(44%)、豪ドル円は+780に対して+273(35%)、ドルスイスは+323に対して−146(マイナス)です。

隣の組の平均は、最良の14〜60%にとどまり、1通貨ペアはマイナスでした。1目盛りずらしただけで成績が大きく下がる最良の組は、針に近い形です。条件は、前の章と同じ自社計測(5通貨ペア、2016〜2020年の前半、スプレッド込み)です。

EAを動かし続けたあとに、パラメーターを引き継ぐ場面でも、山の形は役に立ちます。引き継ぎの手順はEAのバージョンアップとパラメーター引き継ぎで解説しています。

アドバイス

最良の組の周りも成績が良いか、見ておこう。1目盛りずれて大きく下がるなら、針かもしれないよ。

EA最適化の期間分割|イン・サンプルとアウト・オブ・サンプルで確かめる

MT5の転送の設定で、最適化に使う期間と検証の期間を分ける割合を示した3本の帯。1/2、1/3、1/4。青が最適化、橙が検証で、検証は期間の後ろ側。最良の10%または25%を後ろの期間で再テストする
MT5の「転送」の期間の分け方(MetaQuotes社MT5ヘルプの記述をまとめた模式図)

イン・サンプルとアウト・オブ・サンプル|最適化に使う期間と、使わない期間

最適化に使う期間をイン・サンプル(IS)、使わない期間をアウト・オブ・サンプル(OOS)と呼びます。ISで選んだ組を、OOSに使って、成績が保たれるかを確かめるのが、期間分割の検証です。OOSで何度も選び直すと、OOSも最適化に使ったことになるので、OOSは確かめるときの1回だけにするのが目安です。

MT5の「転送」|期間の後ろ側を検証に回す

MT5の「転送」(フォワード)は、「日付」で決めた期間の後ろ側を、検証に回す設定です。No・1/2・1/3・1/4・カスタムから選べます。ヘルプによると、最適化に使う期間の後ろ側が常にフォワード期間になり、完全アルゴリズムのときは上位10%、遺伝的アルゴリズムのときは上位25%の組が、後ろの期間で再テストされます。結果は、「先行結果」のタブで見られます。

MT4のヘルプでは、同じ形のフォワード機能は確認できませんでした。MT4で期間を分けるなら、「Use date」のFrom・Toで、前半だけで最適化し、後半を別に1回テストする方法になります。フォワードとバックテストが乖離する原因はEAのバックテストとフォワードが乖離する原因と対策で整理しています。

ドル円の2,403通りを、前半の成績を横軸、後半の成績を縦軸にして並べた散布図。前半の最良は右端で、後半は+273。全体は右下がりで、順位相関は−0.55
ドル円・2,403通りの、前半と後半の成績(年あたりpips、自社計測)。Dukascopyのtickからシストレ.COMが作成

自社計測|前半の成績は、後半を教えなかった

図は、ドル円の2,403通りを、前半の成績(横)と後半の成績(縦)で並べたものです。前半の最良(右端の星)は、後半が+273pipsでした。全体は右下がりで、前半の順位と後半の順位の相関(順位相関)は−0.55です。順位相関は、+1なら前半と後半で同じ並び、−1なら逆の並び、0なら関係なしを表します。

通貨ペア前半と後半の順位相関
ドル円−0.55
ユーロドル−0.28
ポンドドル−0.44
豪ドル円−0.41
ドルスイス+0.21

表は、同じ条件(2,403通り、2016〜2020年の前半と2021〜2025年の後半、スプレッド込み)の自社計測です。5通貨ペア中4つが、マイナスの相関でした。この題材では、前半で成績が良かった組が、後半でも良いとは言えず、むしろ逆の傾向がありました。ただし、これは移動平均クロスのこの期間の結果で、ほかのEAや期間で同じとは限りません。

アドバイス

期間を分けて、使わなかった後半で確かめるんだね。後半は、確かめる1回だけにしよう。

EA最適化のウォークフォワード|窓をずらして繰り返し確かめる

ウォークフォワードの窓の動かし方を示した図。最適化の3年と検証の1年を、1年ずつずらして7回繰り返す。検証に使う年は2019年から2025年まで。最適化は青、検証は橙
ウォークフォワードの窓の動かし方(自社計測の設定。最適化3年・検証1年を1年ずつずらす)

ウォークフォワードのやり方|最適化と検証を、期間をずらして繰り返す

ウォークフォワードは、最適化に使う期間と検証の期間を、少しずつ先へずらしながら、何度も繰り返す方法です。たとえば、直近3年で最良の組を選び、次の1年に使い、窓を1年ずらして、また選び直します。図の設定では、検証に使う年は2019〜2025年の7回です。1回の分割より、検証の回数が増えるので、偶然に左右されにくくなります。

MT5ヘルプで確認できた「転送」は、期間を前後に1回分ける機能で、窓をずらして繰り返す機能は確認できませんでした。窓をずらす場合は、期間を変えて、自分で最適化とテストを繰り返すことになります。

ウォークフォワードで選んだ組と、全組み合わせの平均の、検証7年の合計pipsを5通貨ペアで比べた棒グラフ。選んだ組はドル円+2,573、ほかの4通貨ペアは−257〜−3,153。全組み合わせの平均はドル円+1,286
検証7年(2019〜2025年)の合計pips(自社計測)。Dukascopyのtickからシストレ.COMが作成

自社計測|3年で選ぶ組は、全組み合わせの平均を下回る場面が多かった

直近3年の成績が最も良い組を選び、次の1年に使う、を2019〜2025年の7年で繰り返した合計は、ドル円が+2,573pips、ユーロドルが−3,153、ポンドドルが−1,757、豪ドル円が−257、ドルスイスが−549pipsでした。プラスは、ドル円の1通貨ペアだけです。5通貨ペアの合計は−3,143pipsになります。

比べるために、同じ年に2,403通りをすべて使った平均を出すと、ドル円+1,286、ユーロドル−32、ポンドドル+207、豪ドル円+258、ドルスイス−604pipsで、5通貨ペアの合計はおよそ+1,100pipsです。選んだ組が平均を上回ったのは、ドル円とドルスイスの2通貨ペアだけでした。

条件は、5通貨ペア、2,403通り、スプレッド込み、検証は2019〜2025年の7年で、前の章と同じ自社計測です。ウォークフォワードは、過剰最適化を防ぐ方法ではなく、選び方そのものが通用するかを確かめる方法です。この題材では、直近の成績で選ぶ方法は、全体の平均を安定して上回りませんでした。複数のEAを組み合わせる考え方はEAをつかったポートフォリオ運用法を参照してください。

アドバイス

窓をずらして7回確かめても、選んだ組が平均を上回ったのは2通貨ペアだけ。選び方も、確かめる対象なんだね。

EA最適化のチェックリスト|過剰最適化を見抜く5点と出典

過剰最適化の確認と自社計測の結果をまとめた表。試した数、山の形、期間を分ける、順位の関係、コストの5点について、2,403通りでの前半と後半、隣の組、順位相関などの結果を並べる
過剰最適化の確認5点と、自社計測の結果(2,403通り、2016〜2025年、5通貨ペア)。Dukascopyのtickからシストレ.COMが作成

最適化のあとに確認する5点

  1. 試した数:何通り試して選んだかを書き留めます。この計測では、2,403通りだと、前半の最良は+647pips、後半は−254pipsでした。
  2. 山の形:最良の隣の組も良いかを見ます。この計測では、隣の組の平均は最良の14〜60%で、1通貨ペアはマイナスでした。
  3. 期間を分ける:最適化に使わない期間で確かめます。この計測では、後半で最良がプラスだったのは5通貨ペア中1つでした。
  4. 順位の関係:前半の順位と後半の順位の関係を見ます。この計測では、5通貨ペア中4つがマイナスの相関でした。
  5. コスト:スプレッドを引いた成績で見ます。この計測では、コストを引いた全組み合わせの前半の平均が、5通貨ペアともマイナスでした。

この計測で言えないこと

この計測は、移動平均クロスという1種類の手法を、1時間足から作った足で、5通貨ペア・10年間について測った結果です。ほかのEAや、ほかの通貨ペア・期間では、結果が違う可能性があります。また、スワップや約定のずれは含めていません。「最適化は無意味」と言うものではなく、「選んだ結果は、使っていない期間で確かめる必要がある」ことを示すものです。FX自動売買全体の現実はFX自動売買の現実で整理しています。

参考にした公式ヘルプ

画面の名前と手順は、次のMetaQuotes社のヘルプで確認しました。

本記事は情報提供のみを目的としており、投資勧誘を目的とするものではありません。FX取引は元本を失うリスクがあります。投資は自己責任で、余剰資金の範囲で慎重に判断してください。過去の計測結果は将来の成績を保証しません。

アドバイス

試した数、山の形、期間分割、順位、コスト。この5点を見てから、デモ口座で動かそうね。

要点
・最適化は、同じEAを入力値だけ変えて何度もテストし、成績の良い組を選ぶ作業です。パラメーターを1個増やすと、回数は掛け算で増えます。
・MT4は「Settings」タブと「Expert properties」で決め、「Optimization」にチェックを入れて「Start」を押します。MT5は「設定」タブで、期間・転送・最適化・基準と、EAの入力値の範囲を決めます。
・自社計測(5通貨ペア・2016〜2025年・2,403通り)では、前半の最良は5通貨ペア中4つで後半にマイナスになり、隣の組の平均は最良の14〜60%でした。
・期間を分けた検証と、ウォークフォワードで確かめ、選んだ組がデモ口座でも通用するかを見てから使います。
・この計測の手法は題材で、おすすめではありません。結果は、使っていない期間で確かめる必要があります。

EA最適化のよくある質問(FAQ)

EAの最適化とは何ですか?

同じEAを、入力値だけ変えて、同じデータで何度もテストし、成績の良い組を探す作業です。MT4・MT5のストラテジーテスターにある機能で、試す範囲・ステップ・個数を決めて実行します。選ばれた組が将来も通用するかどうかは、最適化だけでは分かりません。

最適化するパラメーターは、いくつまで動かせますか?

決まった上限は確認できませんでしたが、増やすほど回数は掛け算で増え、偶然の当たりも混ざりやすくなります。各20通りずつなら、1個で20回、2個で400回、3個で8,000回、4個で16万回です。売買の判断に直接効く少数に絞り、ほかは固定するのが基本です。

完全アルゴリズムと遺伝的アルゴリズムは、どちらを使えばよいですか?

組み合わせが少なければ完全アルゴリズム、多ければ遺伝的アルゴリズムが目安です。MT5のヘルプでは、遺伝的アルゴリズムは、はるかに速く、質はほぼ同じとされています。64ビット版で総数が1億を超えると、遺伝的アルゴリズムが自動で始まります。

過剰最適化かどうかは、どう見分けますか?

最適化に使っていない期間で、成績が保たれるかを確かめます。自社計測(5通貨ペア・2016〜2025年・2,403通り)では、前半の最良の組を後半に使うと、5通貨ペア中4つでマイナスになりました。最良の隣の組の平均が最良の14〜60%にとどまることも、手がかりになります。

MT5の「転送」と、ウォークフォワードは同じですか?

同じではありません。転送は、期間を前後に1回分ける設定で、ウォークフォワードは、窓をずらして繰り返す方法です。MT5ヘルプで確認できたのは前者で、窓をずらす機能は確認できませんでした。窓をずらす場合は、期間を変えて自分で繰り返します。

最適化の成績が良ければ、そのEAをすぐ使ってよいですか?

すぐには使わず、使っていない期間とデモ口座で確かめてください。自社計測では、前半の最良の組の後半の成績は、ドル円の+273pipsを除いて、−262〜−611pipsでした。最適化の成績は、使った期間の結果にすぎません。

EA最適化のまとめ

EAの最適化は、入力値の範囲とステップを決め、ストラテジーテスターで総当たりして、成績の良い組を選ぶ作業です。MT4では「Settings」タブと「Expert properties」、MT5では「設定」タブで決めます。組み合わせは掛け算で増えるので、動かすパラメーターは絞ります。自社計測(5通貨ペア・2016〜2025年・移動平均クロス2,403通り)では、前半の最良の組は、後半に5通貨ペア中4つでマイナスになり、隣の組の平均は最良の14〜60%にとどまりました。3年で選んで1年に使う方法も、全組み合わせの平均を安定して上回りませんでした。最適化のあとは、使っていない期間とデモ口座で確かめてください。ただし、この計測は1種類の手法・1時間足から作った足での結果で、ほかのEAや期間では確かめていません。FXは元本を失うリスクがあり、過去の計測結果は将来の成績を保証しません。

⚠ リスクに関する注意事項

本記事は情報提供を目的としており、特定の金融商品の売買を推奨するものではありません。FX取引はレバレッジ取引の特性上、預託した証拠金以上の損失が生じる可能性があります。取引の際は、ご自身の判断と責任において行ってください。詳しくは特定商取引法に基づく表記をご確認ください。

\シストレ.COMで実績のあるEAが使い放題!/
無料会員登録はこちら
FX自動売買でEAを探すなら
シストレ.COM 記事下バナー
実績あるEAが無料
厳格な審査を乗り越えた実績のあるEAが無料で使えます!
自由な口座選び
有料版を購入し柔軟な口座選びが可能!
フォワードテスト公開
全EAのフォワードテスト結果を公開中!
FX初心者も安心
初心者の方も安心して取引を始められます。
多様なEA選択肢
様々な種別のEAをご用意!自分の手法にあった取引が可能です。
信頼のFX会社と提携
人気のFX会社と提携中!様々なFX会社から選べます。
\1分で登録完了!EA探すならシストレ.COM!/
無料会員登録はこちら

この記事が気に入ったら
フォローしてね!

お役立ち情報をシェアする
  • URLをコピーしました!

この記事を書いた人

シストレ.COM編集部は、FX自動売買(EA)とテクニカル分析を専門とするインターネットメディア「シストレ.COM」の編集チームです。200本以上のEAのフォワードテスト結果を公開し、実際の運用データに基づいた客観的な情報を発信しています。記事の執筆・監修はMetaTrader(MT4/MT5)での実運用経験を持つスタッフが担当。

目次