本ページはプロモーションが含まれています

EA全般 MT4

EAのバックテスト最適化方法と落とし穴を回避するためのポイント

EAは一度作ってしまえば楽にトレードをすることができます。しかし、そのEAの成果を最大限に引き出すためには、「最適化」という作業が欠かせません。最適化作業を行うことは、初心者からベテランまで、多くの人が直面する大きな課題となっています。

今回は、EAを作成する上で必要な最適化とは何か、実践的な作業手順、さらには最適化の際の注意点までを詳細に解説していきます。最適化の方法を知り、それを適切に実施することで、EAのパフォーマンスをより向上させる手助けをすることが、この記事の目的です。

最適化とは

最適化とはEAのバックテストの結果がよくなるようなパラメータを選び出すことを言います。
具体例を挙げます、ボリンジャーバンドの2σからの逆張りEAを作ったとします。このボリンジャーバンドの期間をパラメータとすると、期間がいくつだったら一番利益が出るでしょう?これを1つずつ検証していく作業が最適化になります。

最適化の手順

バックテストを行う上での最適化は非常に重要です。では、具体的にどのような手法を用いるのでしょうか?

・データの質の確認

まず最初に確認すべきは、使用するデータの質です。高精度なデータを使用することで、実際本番に近いバックテスト結果を得ることができます。データの質が低いと、実際の取引での結果と大きく異なる可能性があります。

・最適化の期間設定

次に、どの期間でのデータを基に最適化を行うかを決定します。短すぎる期間だと、一時的な市場の動きに振り回される可能性があります。逆に長すぎる期間を設定すると、過去の市場が現在の市場と大きく異なる場合がありますので、適切な期間の設定が求められます。

・変数の調整

そして、EAの動作を決定する変数の調整です。この変数の調整が適切であるかどうかで、バックテストの結果が大きく左右されます。変数を調整する際には、どの変数が最も影響を与えるのか、またその変数をどのように調整するのが最適か、という点をしっかりと考慮する必要があります。

では具体的な最適化手順を解説していきます。

EAを選びエキスパート設定を開く

まずはMT4のテスターを開いて最適化をしたいEAを選択します。その次にエキスパート設定を開きます。

エキスパート設定をクリックし、パラメーターの入力タブをクリックするとパラメータ一覧が表示されます。

パラメータの入力で最適化したいパラメータを選ぶ

最適化を行いたいパラメータにチェックを入れます。今回はMACDOpenLevelにチェックを入れています。

次にスタート、ステップ、ストップを決めます。ここでは最適化したいパラメータとその範囲を指定します。下の例だと1から5までの値を1ずつ検証していきます。

最適化をスタートする

最後に最適化にチェックを入れて、スタートボタンを押せば最適化がスタートします。

最適化結果

すると最適化された結果が一覧に表示されます。今回は1~5の1ずつ検証したので合計5つの検証結果が表示されています。この中から自分がよいと思う結果を選んでいきましょう。今回はすべて損益がマイナスになってしまいましたが、損益が一番大きいのはMACDOpenLevelが3の場合でした。

すべてのパラメータに対してこれを繰り返していけばバックテスト結果はよりよくなっていきます。

最適化結果で右クリックするとメニューが表示されます。ここでいくつかメニューを説明します。「パラメータの設定」をクリックすると今選択しているパラメータをEAに設定することができます。

「マイナスの結果を表示しない」をクリックすると損益がマイナスになるような最適化結果を除外することができます。最適化しても結果一覧に何も表示されない場合はこのメニューにチェックがついているかもしれないので確認してみてください。

最適化グラフのタブを選択すると結果をグラフで見ることができます。グラフで見ることはのちに説明する過剰最適化を防ぐために非常に大事な作業です。

複数のパラメータを最適化する

複数のパラメータを同時に最適化する場合の手順について説明してきます。複数のパラメータを同時に最適化するメリットはパラメータの組み合わせでパフォーマンスを測れるところです。パラメータを1ずつ最適化するよりも2つ同時に最適化したほうがベストな組み合わせを見つけられる可能性があるのです。

パラメータを同時に最適化するには普通の最適化の手順と変わりません。最適化したパラメータすべてにチェックをすればOKです。下の例だとMACDOpenLevelとMACDCloseLevelにチェックを入れています。

そして最適化をした結果が以下の通りです。損益が一番良かった組み合わせはMACDOpenLevelが2、MACDCloseLevelが2の場合でした。

グラフで結果を見ると以下のようになります。

グラフの上で右クリックを押して2Dサーフェスをクリックします。

すると2次元で可視化したグラフを見ることができます。色が濃いところが損益が大きいところです。

最適化の注意点

基本的に最適化をしていくとバックテストが綺麗なEAができていきますが、最適化をやりすぎるとバックテストと本番の結果に大きな差が出てしまうことになります。どういうことかと言うとバックテスト通りに本番で利益が出ないEAになってしまいます。これを過剰最適化と言います。

あわせて読む

下の画像は途中までの期間で最適化をかけたバックテストで取引の最後の方は結果がよろしくないことになっているのがわかります。

過剰最適化の例をグラフで見てみましょう。例えば1番目のパラメータです。これは他のパラメータよりも飛びぬけて成績が良くなっています。これはたまたまこのパラメータだけが相場にマッチして成績がよくなったためと考えられます。このようなパラメータを選んでいくと過剰最適化につながるので注意が必要です。

また、最適化のかけすぎにも注意が必要です。例えばストップロスを1pips刻みで最適化してベストな値を見つけていく等細かいメモリまで最適化をかけると過剰最適化になる可能性があります。

何回もバックテストの資産を曲線を見ているとそこからEAの特性がなんとなくわかるようになってきます。

今回は資産曲線からEAの特性を見ていきましょう。

おまけ:資産曲線の形

バックテスト結果の曲線って色々種類や特徴がありますのでそれを説明したいと思います。

損小利大

資産がジワジワ減った後に勝ちトレードでそれまでの負けをカバーしているのが特徴です。

このタイプのEAは負けることが多いので連敗を我慢しながら運用する必要があります。

負けに慣れてさえしまえばメンタルへ大きなダメージになるほどのトレードはほとんどありません。

損大利小

資産が増えているところは緩やかに増え、資産が減るところでは急激な角度で資産が減っているのが特徴です。

ナンピン

資産曲線がほぼ負けなしで直線的に右肩上がりになっているのが特徴です。

テスト結果の下の方に数量と記載のある緑の線の部分はトレードのロット数を示しています。

数量を見るとロットをどんどん増やして含み損をカバーしているナンピンタイプということがわかります。

ナンピンタイプは場合によってロット数が馬鹿みたいに大きくなることがあるので資金管理を徹底していないと破産することになりますので注意が必要です。

後半失速型

成績がいいように見えますが、よく見ると後半になると成績が落ちてしまっているのが特徴です。

バックテストとしては優秀ですが、後半に成績が落ちてしまっているということは手法が通用しにくくなってきていると考えることができます。

だからと言って全く使えないかと言われるとそうではないので稼働させて様子を見ることをお勧めします。

まとめ

最適化はEAのバックテストの結果が良くなるようなパラメータを選ぶ作業です。記事では、最適化の手順、複数のパラメータを最適化する方法、最適化の注意点について説明しています。ただし、最適化をやりすぎると過剰最適化になり、バックテストと本番の結果に大きな差が出ることがあるので注意が必要です。

-EA全般, MT4
-