ここでは、過去データを使ってMT4 EA(Expert Adviser)のパフォーマンスを検証する、「バックテスト」と「パラメータ最適化」の手順を紹介します。
1.各種設定をする
ステップ3と同じ作業ですが、最適化を行うための各種設定を行います。
最適化のための各種設定をする
① エキスパートアドバイザー
最適化するEAを選択します。
② 通貨ペア
最適化する通貨ペアを選択します。
③ モデル
最適化するモデルを選択します。
「全ティック」は、ティックデータ(実際は1分足)を使用して最適化を行います。
「コントロールポイント」は、⑥で設定した時間軸の1つ下の時間軸データ(期間がH4なら1時間足、M30なら15分足……)を使用して最適化を行います。
「始値のみ」は、⑥で設定した時間軸の始値データのみを使用して最適化を行います。
今回は、時間を短縮するために「コントロールポイント」にて検証を行いますが、ここで「全ティック」を使用しても構いません。(時間はかかりますが・・・)
④ 日付と時間を使用
「日付と時間を使用」にチェックを入れると、最適化を行う期間を指定することができます。
ポートフォリオ企画では、4年間のバックテストを行いますので2013.1~
⑤ ビジュアルモード
最適化を行う際には、「ビジュアルモード」にはチェックを入れません。
⑥ 期間
最適化を行う時間軸を選択します。
- 「M1」……1分足
- 「M5」……5分足
- 「M15」……15分足
- 「M30」……30分足
- 「H1」……1時間足
- 「H4」……4時間足
- 「Daily」……日足
⑦ スプレッド
最適化を行う際のスプレッドを指定します。単位は「ポイント」です。
ポートフォリオ企画では、USDJPYは2pips、その他の通貨は3pipsに決まりましたのでUSDJPYの場合には「20」に設定します。
2.EAのパラメータを設定をする
ステップ3でメモしておいた最適化範囲を設定ます
ステップ4ではパラメータを決めますのでステップ幅を出来るだけ狭くします。
3.最適化を実行する
ストラテジーテスターの画面に戻り、「最適化」にチェックを入れたうえで、「スタート」をクリックします。
「スタート」ボタン左横のステータスがすべて埋まり、システム音が鳴れば、最適化は終了です。
4.最適化の結果を確認する
最適化結果のタブを開くとパラメータの設定値毎の成績を確認出来ます。
今回は最適値を確定したいので、「損益」「総取引数」「プロフィットファクタ」「ドローダウン」などから期待できそうな結果をダブルクリック(右クリック→パラメータ設定)を行い最適化のチェックを外しテストしてみます。
期待通りのグラフが得られているのかを確認し、あとから再現できるようにパラメータをメモして残します。
5.レポートの出力と保存
下のタブ「結果」「グラフ」「レポート」からレポートを選択し「レポート」画面で右クリックして「レポートの保存」をすると、次のようなHTML形式のレポートになります。
こちらの画像をスクリーンショットし残しておくか、HTMLファイルと画像の二つのファイルが出力されますので、こちらを保存しておく必要があります。
私は両方保存して共有する場合には画像を送ったりしますが、詳細なデータを解析するためにはHTMLデータが必要なので両方残しています。
この作業を2~3種類ほど繰り返して一つのEAの最適値を2~3種類残しておきます。
これでステップ4は終了です
6.ステップ3へ
EAによってはCrossArrowsのパラメータも入っていて、エントリーポイントやイグジットルールをフィルターに追加できますので、ステップ4で得られた最適値を使用してステップ3に戻り新しいフィルターを最適化していきます。
ステップ3で説明しました内容とほぼ同じなので省きますが、私のやり方だと新しいフィルターにて何か変わるのかを下記の画像のようにテストしてみます。
何か変化が見込めそうだったら、範囲を絞り込みますし何も変化がなさそうだったら次のテストに移ります。
次は下記の画像のようにイグジットルールを使用して何か変化がないかをテストします。
ここでも何か変化があればステップ3の作業を行い範囲を絞り込んでいきます。何も変化が見込めない場合には次のテストを行います。
7.通貨ペアと時間足
テストが完了したら、ほかの通貨ペアではどうなのか?時間足を変えてみたらどうなのか?という風にステップ3~ステップ4を繰り返しながらポートフォリオに組み込めそうなEAとパラメータを探していきます。
注意が必要なのが、良い最適値を見つけたのにパラメータの値を残しておかないと、また一から作業を行わないといけなくなりますので、必ずテストを行った後は結果を残すことが重要になります。
なかなか一人ではテスト項目が多くなかなか大変な作業ですが、分担すれば効率が良くなると思いますので頑張ってテストを行いましょう!