今回は、MT4でEA(自動売買)の最適化の方法を紹介します。
各インジケーターのパラメーターをいろいろ試して、パフォーマンスや安定性の高いパラメーターの組み合わせをぜひ見つけてください!
目次
- EAシステムのパラメーターの最適化方法
- 最適化結果の見方&分析
・各パラメーターのパフォーマンスを見る
・データの保存&グラフ解析
・最適化グラフでベストな組み合わせを見つける
・複数のパラメータでのマルチ最適化
EAシステムのパラメーターの最適化方法
MT4のストラテジーテスターを使えば、EAシステムのパラメーターをいろいろテストして、最大のパフォーマンスとなるベストな組み合わせを見つけることができます。
最適化できるパラメータの例
- インジケーターの期間
- 損切り幅
- 利食い幅
- トレイリングストップ
- ロット数
手順は、次のとおりです。
step
1ストラテジーテスターで、EAの設定を行う
通貨ペアやテスト期間、時間足などのバックテストの設定をします。詳しくは、「MT4でEAのバックテストをする方法」を参考にしてください。
注意点として、EAの最適化はそこそこ作業時間がかかるので、時間短縮のために次の設定がおすすめです。
・1回でのバックテスト期間:3ヶ月~6ヶ月くらいを目安にする
・モデル:バックテストの時間が速い「始値のみ」を使用する
・「ビジュアルモード」のチャックは外す
※今回は、MT4にデフォルトであるEA「MACD Sample」を使って最適化を検証したいと思います。このEAは、MACDのGC・DCを利用したシンプルなシステムです。
EA「MACD Sample」のシステム
買いエントリー:MAが上向きで、MACDが0以下でゴールデンクロスしたら
買いの手仕舞い:MACDがデッドクロスしたら Or トレイリングストップにかかったら
売りエントリー:MAが下向きで、MACDが0以上でデッドクロスしたら
売りの手仕舞い:MACDがゴールデンクロスしたら Or トレイリングストップにかかったら
step
2「エキスパート設定」で、最適化の設定をする
「パラメータの入力」タブ
最適化したいパラメータにチェックを入れ、テストしたい範囲を次のように入力します。
スタート:パラメーターの初期値
ステップ:変化幅
ストップ:パラメーターの最終値
初期値から最終値のパラメータでバックテストを行い、各パラメーターでの結果を見ることができます。
たとえば上の画像では、「MACD OpenLevel」のパラメータを次の範囲に設定しています。
スタート:3.0 ステップ:0.1 ストップ:10.0
→3.0 3.1 3.2 3.3 … 9.8 9.9 10.0
「テスト設定」タブ
「最適化パラメータ」で、EAのパフォーマンスを評価する評価基準を設定します。具体的に次の5つがあります。
・balance:資産残高 (オススメ)
・Profit Factor :総利益÷損損失
・Expected Payoff :期待値(総純損益÷総トレード数)
・Maximal Drawdown:最大ドローダウン
・Drawdown Percent:資産曲線の最大下落幅
また、「遺伝的アルゴリズム」にチェックを入れると、アルゴリズムを用いてバックテストの回数を減らし、最適化にかかる時間を減らせることができます。
遺伝的アルゴリズムとは?
パラメーターの組み合わせを総当たりでテストするのではなく、無作為に選んだパラメーターの組み合わせから結果の良いものを抽出し、それを基準に値を変化させながら最適値を探す方法です。
総当たりで調べる方法よりも、高速で最適値に近いパラメーターを探すことができます。パラメーターの組み合わせが多くて、時間がかかるときにおすすめです。
詳しくは「遺伝的アルゴリズムについて |MQL5」を参考にしてください。
「最適化」タブ
この項目にチェックを入れると、最適化時に一定の制限を追加することができます。
たとえば「最大ドローダウン 70」 を有効化すると、最大ドローダウンが70%を超えたパラメーターはその時点でテストを終了し、結果から除外することができます。
step
3「最適化」にチェックを入れて、「スタート」をクリック
以上で設定した範囲のパラメータで、EAの最適化テストが行われれます。
最適化結果の見方&分析
各パラメーターのパフォーマンスを見る
各パラメーターでの結果は、「最適化結果」タブで見れます。各項目をクリックすることで、パフォーマンスの高い順に並びかえることができます。
デフォルトでは、利益の出ている取引結果のみ表示されます。損失の出た結果も表示したい場合は、右クリックして「マイナスの結果を表示しない」のチェックを外してください
データの保存&グラフ解析
最適化テストのデータは、次の方法でレポートとして保存することができます。
「最適化」タブ上で右クリックして、「レポートの保存」を選択
下の画像は、EA「MACD Sample」の最適化レポートです。
また、「すべてコピー」を選択すると、各テストデータをコピーでき、これをエクセルやGoogleスプレッドシートに貼り付けることができます。
この数値データをグラフ化すれば、各パラメータでの結果を比較することができます。
ちなみに、上のデータとグラフからEA「MACD Sample」(変数:MACD OpenLevel)について次のことが分かります。
・総取引数は、1次関数的に減少する
・ドローダウン$は、52.48$に収束する
・損益やPFは、パラメータ4.3~5.5で大きく、パラメータ4.9で極大値をとる
最適化グラフでベストな組み合わせを見つける
「最適化グラフ」タブでは、「最適化パラメータ」で選んだ評価基準でのグラフが表示されます。
下の画像は、「MACD OpenLevel」のパラメータ3.0~10.0の計71個の最終残高の結果をグラフ化しています。調べたいポイントにマウスカーソルを重ねると、その成績を確認できます
1次~3次曲線などのきれいな曲線が理想的です。上下に乱高下するグラフだと、最適化の信頼性が低いです。
また、別の期間や他の通貨ペアでも最適化の実験を行い、同じ曲線グラフ描くかどうか確かめましょう。ある特定期間だけでなく、別の期間でも同様の結果が得られれば、長期的に優位性がある可能性が高まります。
下のグラフは、別の期間(2018.7.1~2018.12.31)のテスト結果です。期間(2019.2.1~2019.5.31)とは曲線の形が似ておらず、そのためこのEAは長期的な優位性のないシステムだと考えられます。
複数のパラメータでのマルチ最適化
2つ以上のパラメータで同時に最適化をテストすることもできます。
2つ以上のパラメータで最適化するには、「エキスパート設定」の変数を複数チャック入れます。
ここでは、「MACD OpenLevel」と「MA TrendPeriod」の2つの変数の最適化をしてみます。
MACD OpenLevel:3.0 3.1 3.2 … 5.8 5.9 6.0
MA TrendPeriod:10 20 30 40 50
検証する組み合わせは、次のように2つの変数の掛け算です。
(MACD MA)=(3.0 10),(3.1 10),(3.2 10) … (5.8 50),(5.9 50),(6.0 50)の計155通り
マルチ最適化では、「最適化グラフ」で[スペース]キーを押すか、「右クリック→2Dサーフェス」で次のような分布図が表示されます。
これは縦軸・横軸がパラメータで、各エリアの緑色の濃淡が資産残高の大きさを表します。
横軸:MACD OpenLevel
縦軸:MA TrendPeriod:10 20 30 40 50
色の濃度:資産残高が大きいほど濃くなり、資産残高が小さいほど白色になる
濃い緑が密集するゾーンが最適な変数の組み合わせです。これらの組み合わせの中でよりベストなものはどれか、他の基準(損益比や勝率、最大ドローダウンなど)でテストして、最終的に1つのパラーメータを決めましょう!