はじめに
ここでは、MT4でEAバックテストの機能の一つである、最適化の方法について解説しています。
最適化はEAの可能性を最大限引き出す事のできる重要な機能なので是非参考にしてみてください。
最適化とは?
最適化とは、バックテストをする際に自分で設定した値の範囲内で連続してテストを行ってくれる機能です。
例えば、EA作成の際に移動平均線の値を20で作ったとします。作ったのは良いのですが、本当に20で良いのか?他にもっと最適な数値は無いのかと疑問に思ったことは無いでしょうか。
そういった時、最適化が使えます。
というものです。 最適化を使うと、移動平均線の15,16,17,・・・,25といった数値で自動でテストを行ってくれます。
最適化の方法
今回は、MT4にデフォルトで備わっているMoving Averageで最適化をやっています。
まず、テスター画面の「最適化チェックボックス」をクリックしチェックを付けた状態にし、「エキスパート設定」ボタンをクリックします。
次に、「パラメータの入力」タブを開き、テストしたい変数にチェックを入れます。今回は移動平均線の値なので「MovingPeriod」にチェックを入れます。
上記のようにパラメータ化するには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で宣言した項目が最適化の項目として出てきます。自分のEAで最適化の項目として追加したい場合は、inputで宣言してその値を以下のような形で使用するといったようなメンテナンスが必要です。
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
次に、その右側の各項目に値を設定します。変更したい値の場所でダブルクリックをすると値を変更できます。 値を変更したら、「OK」ボタンをクリックします。
- 値 → 現在EAに設定されている値です。
- スタート → どの値からテストを行うかを設定する値です。
- ステップ → ステップの値がプラスされます。1、2、3と1づつテストしたい場合は1を設定します。2、4、6と1つ飛ばしでテストしたい場合は2を設定します。
- ストップ → どの値までテストを行うかを設定する値です。
最後にテスター画面で「スタート」ボタンをクリックして普段のEAのバックテストのようにバーがたまり効果音が出るまで待ちます。
効果音がなった後、「最適化結果」タブをクリックすると最適化結果を見ることができます。
パラメータを確認すると、どの値が一番良かったのかが一目瞭然ですね!
移動平均線の値は[8]が一番結果が良くて、次点で「16」「15」となっています。結果に、値が[9]や[10]や[12]の分が無いのは損益がマイナスだったため除外されています。
結果、EAに設定している移動平均線の値を[12]→[8]に変更する事で、プラス損益のEAになることが分かりました。
マイナス結果も表示したい場合
マイナスの結果も確認したい!という場合は、最適化結果画面で右クリック→『マイナス結果を表示しない』をクリックしてチェックを外す事で、マイナス結果も表示可能です。
どの値を信じるべき?
最適化で成績が良かった値について、結局どの値を信じたらいいでしょう。
例えば、今回は移動平均線の値[8]が一番良くいわゆる超短期向きのEAなのかと思いきや、[9]はマイナス損益となっています。ですので、この場合はテストパターンが悪く(今回1ヶ月分で試しました) [8] は一時的な大利益があった事も考えられます。
どちらかというと信用できる値は[15][16][17]あたりの方で無難だという考え方ができます。
何が言いたいのかと言いますと、結果がどうであれデタラメな値でEAを作り替えてしまって
自分が信用できるEAから遠ざかってしまわないか?
という疑問を常に持ち続ける事が重要です。
さいごに
以上が、『EAのバックテストの最適化方法』になります。
最適化は、自分のEAにおいて最適な値を探る手助けをしてくれます。是非最適化を使いこなして、EAをパワーアップさせていきたいですね!
※実際に最適化を使って、EAのトレード戦略の立て方について記載している記事はこちら
コメント