EAの検証方法 ウォークフォワードテストについて②~MT4で実践~
※画像が見えにくい場合はクリックしていただくと拡大されます。
ウォークフォワードテストをMT4で実践
実践としてMT4の画面を使用してウォークフォワードテストについてご説明いたします。
なお、他のテストと同様にウォークフォワードテストも長期間でテストするのが通常ですが、全ての工程を掲載しますと膨大な量になってしまうため、この記事では2014.01.01~2019.12.31の短期間で掲載させていただきます。
STEPは全部で15までです。
STEP1 EAのロジック
イメージしやすいように移動平均線のゴールデンクロスを採用しております。
・移動平均線がゴールデンクロスしたらロングポジションをエントリー
・移動平均線がデッドクロスしたらロングポジションをクローズ
※ショートエントリーはしません
STEP2 EAの設定
・稼働時間は月曜日の0:00~金曜日の23:45まで
・利益確定と損切りの設定はなし(ロジックによるエントリーとクローズのみ)
・通貨ペア:GBPJPY
・時間軸:M15
・ウォークフォワードテストに使用する期間:2014.01.01~2019.12.31
・最適化期間(以下、イン期間):3年間
・アウトオブサンプルテスト(以下、アウト期間):1年間
・変数の評価は利益
STEP3 最適化する移動平均線の値を入力
テストするEAの最適化の対象は移動平均線(以下、MA)の値です。
短期MAを24、28、32、36、40、44、48、52、56、60
長期MAを72、84、96、108、120、132、144、156、168、180
で最適化することとしました。
MT4のエキスパート設定画面では
短期MAのスタートに24、ステップに4、ストップに60
長期MAのスタートに72、ステップに12、ストップに180
と入力します。
STEP4 イン期間を設定し最適化-1回目
MT4バックテストの画面の「期間を最適化」と「最適化」にチェックを入れ
開始日に2014.01.01
終了日に2016.12.31
を入力し最適化します。
STEP5 最適化の結果とMAの値の選定-1回目
最適化が終わりましたらMAの値を選定します。
今回のウォークフォワードテストでは変数の評価を利益と決めているため、利益が一番高かった短期MA36、長期MA108を選定します。
STEP6 アウト期間のバックテスト-1回目
イン期間で選定した短期MA36と長期MA108を設定し
開始日に2017.01.01
終了日に2017.12.31
を入力しバックテストします。
STEP7 アウト期間のバックテスト-1回目の結果
この結果はエクセルなどに貼付け保存しておきます。
STEP8 イン期間を設定し最適化-2回目
MT4バックテストの画面の「期間を指定」「最適化」にチェックを入れ
開始日に2015.01.01
終了日に2017.12.31
を入力し最適化します。
STEP9 最適化の結果とMAの値の選定-2回目
最適化が終わりましたらMAの値を選定します。
利益が一番高かった短期MA32、長期MA84を選定します。
STEP10 アウト期間のバックテスト-2回目
イン期間で選定した短期MA32と長期MA84を設定し
開始日に2018.01.01
終了日に2018.12.31
を入力しバックテストをします。
STEP11 アウト期間のバックテスト-2回目の結果
アウト期間のバックテスト-1回目の結果に続けて貼付け保存しておきます。
STEP12 イン期間を設定し最適化-3回目
MT4バックテストの画面の「期間を指定」と「最適化」にチェックをいれ
開始日に2016.01.01
終了日に2018.12.31
を入力し最適化します。
STEP13 最適化の結果とMAの値の選定-3回目
最適化が終わりましたらMAの値を選定します。
利益が一番高かった短期MA32、長期MA84を選定します。
【ポイント】変数の評価について
※2回目の最適化と今回選定したMAの値が同じですが、今回のウォークフォワードテストでは変数の評価を利益とした結果、偶然前回の値と同じになっただけのためこのまま進めます。
ウォークフォワードテストにおいて変数の評価方法を途中で変えることは厳禁です。
STEP14 アウト期間のバックテスト-3回目
イン期間で選定した短期MA32と長期MA84を設定し
開始日に2019.01.01
終了日に2019.12.31
を入力しバックテストをします。
STEP15 アウト期間のバックテスト-3回目の結果
今までのアウト期間のバックテスト結果に続けて貼付け保存します。
ウォークフォワードテストの評価
ウォークフォワードテストでは、アウト期間のバックテストの結果(1回目~3回目)を繋げてEAを評価します。