海外FX勝ち組ナビ

海外FXを利用した仮想通貨FXもはじめました

MetaTrader4エキスパート・アドバイザーの最適化

MetaTrader4 エキスパート・アドバイザーの最適化

本記事では、MetaTrader4 (MT4) にエキスパート・アドバイザーのパラメーターの最適化について説明します。
MT4 における最適化とは、EA のパラメーターを様々に変更して多数のバックテストを実行し、良いパフォーマンスを出すパラメーターを発見するための仕組みです。

  1. SampleEA の正体と今回行う最適化
  2. 最適化の実行方法
  3. 最適化結果の読み方

 

SampleEA の正体と今回行う最適化

本記事でも SampleEA を使用していきたいと思いますが、始めに SampleEA の正体についてお話しておきたいと思います。SampleEA は次のような挙動になっています。

 

  1. 新しい足が出来るごとに、売買判断を行う
  2. 売買判断の内容は次の通り
    1. 前の足が陽線で Height に指定したポイントよりも大きく上げていれば買い
    2. 前の足が陰線で Height に指定したポイントよりも大きく下げていれば売り
    3. どちらにも該当しないときは、何もしない (建玉があれば持ったまま)
  3. 建玉を保有していないときは、売買判断通りにエントリする
  4. 建玉を保有しているときは、売買判断が変化したらドテンする

 

つまり、一定幅下げたり上げたりしたときに、それに追随して建玉するという、極めてシンプルな EA です。

  1. 念の為申し添えておくと、まったくパフォーマンスの期待できない EA です。

上記の挙動から分かる通り、パラメーター Height を変化させると、売買判断が変化します。今回は、最も高い収益を出す Height を最適化によって発見してみたいと思います。

 

最適化の実行方法

最適化にもテスターを使用します。テスターの《セッティング》タブ (図1) を開き、次のように設定します。
エキスパートアドバイザー: SampleEA
通貨ペア: USDJPY
期間: M1
モデル: 全ティック
スプレッド: 5
日付と時間を使用: チェックを入れる
開始日: 1ヶ月前の日付
終了日: 今日の日付
ビジュアルモード: チェックを外す
最適化: チェックを入れる (図1の赤枠の箇所)

 


図 1

最適化のチェックを入れる以外は、前回バックテストしたときと同じ設定です。
続いて、《エキスパート設定》ボタンをクリックして、細かい最適化の条件を設定していきます。《テスト中》タブを開いてください。図2のような画面になります。

 


図 2

初期証拠金はバックテストの際と同様、ひとまず 1000000 USD あるいは 100000000 JPY 等、多めに設定してください。ポジションは「Long & Short」にします。
最適化部は、遺伝的アルゴリズムという方法で最適なパラメーターを探す場合の設定欄です。MT4 の最適化は、遺伝的アルゴリズムを用いた最適化と、総当たりの2通りの方法で行うことができます。今回は総当たりで行いたいと思いますので、遺伝的アルゴリズムのチェックを外しておいてください。遺伝的アルゴリズムについては後程説明します。

続いて、《パラメーターの入力》タブ (図3) へ移ります。

 


図 3

バックテストのときは、バリュー欄のみ使用しましたが、今回はスタート、ステップ、ストップ欄も使用します。
まず、最適化の対象となる変数の左にあるチェックボックスにチェックを入れます。今回は Height にのみ入れてください。

そして、Height のスタート、ステップ、ストップ欄にそれぞれ 1, 1, 100 と入力してください。
スタート欄はそのパラメーターの下限値、ストップ欄は上限値、ステップ欄は刻み幅となっています。今回の設定だと、Height は 1 から 100 まで 1刻みで試行する、という意味になります。

左のチェックを入れていない変数については、常にバリュー欄の値が使用されます。Lots には 0.01 (あるいは 0.1, 1 等、お使いの口座で指定可能な値)、Magic は最適化に影響しないのでそのままとしてください。

最後に《最適化》タブ (図4) の設定です。


図 4

この画面では、各パラメーターの出す結果が必ず満たさなければならない条件を指定します。制限欄の左のチェックボックスにチェックを入れると、その制限が有効となり、満たせなかったパラメーターは最適化結果から除外されます。今回は使用しませんので、全てのチェックが外れていることを確認してください。
各項目の意味は次の通りです。

 

最小口座残高

口座残高の最小値を指定します。指定した値を下回ったパラメーターは除外されます。

 

最大利益

利益の最大値を指定します。指定した値を上回る利益を出したパラメーターは除外されます。

 

最小証拠金レベル%

必要証拠金に対する有効証拠金の割合の最小値を指定します。評価損が嵩むものを除外するための設定です。

 

最大ドローダウン

最大ドローダウンが指定した金額を超えたものを除外します。

 

連敗

連敗による損失が指定した金額を超えたものを除外します。

 

連敗トレード

連敗回数が指定した値を超えたものを除外します。

 

連勝

連勝による利益が指定した金額を超えたものを除外します。

 

連勝トレード

連勝回数が指定した値を超えたものを除外します。

 

以上の指定が完了したら、《OK》ボタンをクリックして図1の画面に戻ってください。
その後、右下の《スタート》ボタンをクリックすると、最適化が始まります。最適化中は図5のような表示になります。


図 5

緑色のバーが進捗状況を示しています。右端まで緑色になれば完了です。赤枠部の「10 / 100」は、100通りのパラメーターのうち、10通り完了したということを示しており、緑枠部の「0:00:02 / 0:00:18」は、前半がこれまでの処理時間、後半が残りの予想処理時間です。この例ではあと18秒で完了する見込みという意味です。

《ストップ》ボタンは、最適化を中断するボタンです。

お使いのPCの性能にもよりますが、数十秒から数分で完了するかと思います。しばらくお待ちください。
最適化が完了すると、図6のような表示になります。


図 6

最適化が完了すると、《最適化結果》、《最適化グラフ》というタブが出現します。早速中を見てみましょう。

 

最適化結果の読み方

《最適化結果》タブを開くと、図7のような表示になっています。


図 7

各行が各パラメーターのバックテスト結果の抜粋になっています。今回は、100通りのパラメーターを対象としましたので、100件の結果が表示されているかと思います。

  1. 100件表示されていない場合は、《最適化結果》タブを右クリックして表示されるメニューの マイナスの結果を表示しない(U) にチェックが入っていると思われます。チェックを外して最適化を再度実行してください。

 


図 8

 

パス欄は、パラメーター設定の通し番号です。続いて、損益、総取引数、プロフィットファクター、期待利得、ドローダウン$ (最大ドローダウンのこと)、ドローダウン%(相対ドローダウンのこと)、パラメーターの入力 (パラメーターの内容) と並んでいます。

最適化完了時は、損益の良い順に並んでいます。項目名の部分をクリックすると、その値で並べ替えることも可能です。
今回は、最も高い収益を上げるパラメーターを発見したかったので、パス 39 が探していたパラメーターということになります。パス 39 のパラメーターの入力欄を見ると、Height=39 とありますので、Height の最適値は39と分かりました。

次は《最適化グラフ》タブを見てみます。図9です。


図 9

この画面は、横軸にパス、縦軸に残高を取ったグラフになっています。パラメーターが変化するにつれて損益がどう変化しているかが読み取れます。図8のように、パラメーターが変化するにつれて滑らかに損益が変化する場合は、素直に最大利益を出しているパラメーターを採用できます。もし、このグラフが最大利益の前後で飛び飛びになっているようであれば、そのパラメーターはまぐれ当たりのようなもので、あまり信用できない恐れがあります。
また《最適化グラフ》タブは、変化させるパラメーターが2つ以上ある場合、2D サーフェスというモードに切り替えることができます。後程説明します。

最後に、最適だと分かったパラメーターの挙動を確認してみます。《最適化結果》タブに戻り、最も損益の良い行 (この記事の例ではパス39) をダブルクリックしてください。
ダブルクリックすると画面が《セッティング》タブに切り替わります。最適化のチェックが自動的に外れているはずですので、ご確認ください。ここで《エキスパート設定》ボタンをクリックすると、図10のようにダブルクリックした行のパラメーターがバリュー欄にセットされているかと思います。


図 10

このように、《最適化結果》タブの行をダブルクリックすると、簡単にそのパラメーターのバックテストが動かせます。
エキスパート設定画面は《OK》ボタンをクリックして閉じ、テスターの《スタート》ボタンをクリックして、バックテストを実行してください。
完了したら、《グラフ》タブを見てみましょう。当方では、図11のようになっていました。

図 11

前回 Height を 10 としたときの右肩下がりの結果に比べると、右肩上がりで収益が出ているのが確認できます。

このような形で、最適なパラメーターを探すことができます。
なお今回、Height を 39 とすると収益が出るという結論が出ましたが、重ねて申し上げますと、SampleEA はまともに収益を出す力はありません。約4年間分の価格データを使ってバックテストしてみると、図12のようなグラフになっています。

図 12

ですので、間違っても SampleEA を実戦投入することのないよう、ご注意ください。
このように、短期間のバックテスト結果は非常に信用ならないものです。実際には数年分のデータを準備した上で実行するようにしてください。

 

以上、EA の最適化についての説明でした。

 

MetaTrader4が使えるおすすめのFX会社:XM

  1. 口座開設入金なしでも3,000円
  2. 最大レバレッジ888倍!!!
  3. 約定拒否、リクオートなしの抜群の約定力
  4. 追証なし

 

Return Top