EAのバックテストの最適化方法

EA
スポンサーリンク

MT4でEAのバックテストの機能の一つである、最適化の方法です。

最適化とは?

最適化とは、バックテストをする際に自分で設定した値の範囲内で連続してテストを行ってくれる機能です。

例えば、EA作成の際に移動平均線の値を20で作ったとします。作ったのは良いのですが、本当に20で良いのか?他にもっと最適な数値は無いのかと疑問に思ったことは無いでしょうか。

そういった時、最適化が使えます。

『自分のEAにおいて移動平均線(等)の値は一体いくつが良いのか?』といった、疑問を解決してくれる

というものです。 最適化を使うと、移動平均線の15,16,17,・・・,25といった数値で自動でテストを行ってくれます。

最適化の方法

今回は、MT4にデフォルトで備わっているMoving Averageで最適化をやっています。

まず、テスター画面の「最適化チェックボックス」をクリックしチェックを付けた状態にし、「エキスパート設定」ボタンをクリックします。

次に、「パラメータの入力」タブを開き、テストしたい変数にチェックを入れます。今回は移動平均線の値なので「MovingPeriod」にチェックを入れます。

【自分のEAで確認したらパラメータが無い場合】
上記のようにパラメータ化するにはEA側で少し細工(input宣言)が必要です。
input double Lots          =0.1;
input double MaximumRisk   =0.02;
input double DecreaseFactor=3;
input int    MovingPeriod  =12;
input int    MovingShift   =6;

上記コードは、Moving Averageのコードで先頭部に記載されています。このようにinputで宣言した項目が最適化の項目として出てきます。

   ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);

自分のEAで最適化の項目として追加したい場合は、inputで宣言してその値を使用するといったようなメンテナンスが必要です。


次に、その右側の各項目に値を設定します。変更したい値の場所でダブルクリックをすると値を変更できます。 値を変更したら、「OK」ボタンをクリックします。

今回は、移動平均線の値を8,9,10,・・・,25まで1づつテストするような設定にしています
  • 値 → 現在EAに設定されている値です。
  • スタート → どの値からテストを行うかを設定する値です。 
  • ステップ → ステップの値がプラスされます。1、2、3と1づつテストしたい場合は1を設定します。2、4、6と1つ飛ばしでテストしたい場合は2を設定します。
  • ストップ → どの値までテストを行うかを設定する値です。

最後にテスター画面で「スタート」ボタンをクリックして普段のEAのバックテストのようにバーがたまり効果音が出るまで待ちます。

効果音がなった後、「最適化結果」タブをクリックすると最適化結果を見ることができます。

損益の部分をクリックすると、利益の順に並び替える事ができます

パラメータを確認すると、どの値が一番良かったのかが一目瞭然ですね!

移動平均線の値は[8]が一番結果が良くて、次点で「16」「15」となっています。結果に、値が[9]や[10]や[12]の分が無いのは損益がマイナスだったため除外されています。

結果、EAに設定している移動平均線の値を[12]→[8]に変更する事で、プラス損益のEAになることが分かりました。

最後に

最適化は、自分のEAにおいて最適な値を探る手助けをしてくれます。ただし、最適化の結果を全て鵜呑みにするのではなく考えることが必要です。

例えば、今回は移動平均線の値[8]が一番良く、いわゆる超短期向きのEAなのかと思いきや、[9]はマイナス損益となっています。ですので、この場合はテストパターンが悪く(今回1ヶ月分で試しました) [8] は一時的な大利益があった事も考えられます。どちらかというと信用できる値は[15][16][17]あたりの方ではないかと考える事もできます。

何が言いたいのかと言いますと、結果がどうであれデタラメな値でEAを作り替えてしまって自分が信用できるEAから遠ざかってしまわないかという事です。

ただし、ヒントを得たという意味では移動平均線の値[9][10]がマイナスになった原因を探り、EAを移動平均線の超短期型に寄せていく方向で検討するのも良いと思います。

是非最適化を使いこなして、EAをパワーアップさせていきたいですね。

※実際に最適化を使って、EAのトレード戦略の立て方について記載している記事はこちら

コメント