MT4のExpert Adviser(EA)をバックテストすると、ほとんどの人がまず資産曲線を最初に確認すると思います。この時誰もが思うことが、「もっと右肩上がりの曲線になるようにしたいな」とか、「もっとドローダウンを小さくしたいな」といった事ではないでしょうか。
「そんな簡単にできたら苦労しないよ!」と思うかもしれませんが、実はものすごく簡単にできてしまいます。それは”パラメータの最適化”です。
本記事では、EAのパラメータ最適化の実施方法と正しいプロセス、注意点について解説致しますので、是非参考にしてみて下さい。
EAのパラメータの最適化とは
パラメータの最適化とは、EAの内部ロジックに設定されているパラメータの値を最もパフォーマンスが良くなるように調整することです。
パラメータとは、内部ロジックにて様々な値を取る事ができるように設定された変数のことで、例えば、移動平均線の期間やボリンジャーバンドの偏差等がパラメータとしてよく設定されます。
パラメータの値を最適化するというのは、例えば、短い期間の移動平均線と長い期間の移動平均線がクロスしたところで売買するといったような手法を考えた場合、この2つの移動平均線に与えられた2つの期間の値をいくつか変更してみると、それぞれの値の組み合わせにおけるパフォーマンスには必ず優劣が発生するため、その中で最も優秀なパラメータを選ぶ行為のことです。
パラメータの最適化は手っ取り早くパフォーマンスを改善するのに非常に便利な飛び道具です。ただし、使い方を間違えると大幅に性能を低下させてしまうという側面も持っており、諸刃の剣的な位置付けとなっています。

間違えたパラメータの最適化は最悪の事態を引き起こします。正しい最適化の知識やノウハウを習得しましょう!
最適化の実施方法と結果の見方
パラメータの最適化はストラテジーテスターの中で実施が可能です。以下に手順を解説しますので、参考にしながら実施してみて下さい。
最適化の実施方法
① ストラテジーテスター中の最適化にチェックを入れます。


② ”エキスパート設定”をクリックし、”パラメータの入力”タブから最適化するパラメータにチェックを入れ、スタート、ステップ、ストップの値を入力します。これは、どのパラメータを最適化するのか、値が取りうる範囲と変化のステップ幅を指定しています。
例えば、スタート:5、ステップ:5、ストップ:20であったとすると、このパラメータが5、10、15、20で変化し、それぞれ値におけるバックテストを実施して結果を比較する事ができます。


③ ”最適化”タブを選択し、制限の中の項目にチェックを入れ、その横の数値を入力します。これは最適化を実行する際、この設定以下のパフォーマンスとなった場合にそのパラメータの組み合わせのテストを終了させる機能です。これにより最適化の速度を高める事ができます。最適化は時間がかかる事が多いので、是非活用しましょう。


④ ”テスト設定”タブを選択し、最適化パラメータのBalance、Profit Factor、Expected Payoff、Maximal Drawdown、Drawdown Percent、Customの中から、いずれかを選択します。これは、どのパフォーマンスデータを最適化するかという事を意味しており、例えばProfit Factor(PF)を選択した場合、各パラメータにおいてテストした結果からPFをピックアップし、それをグラフ化して出力してくれます。詳細は結果の見方にて説明します。


⑤ 同じく”テスト設定”タブにて遺伝的アルゴリズムを使用する場合にはチェックを入れます。遺伝的アルゴリズムとは、簡単に言うと最適化の速度を高めることができる機能です。アルゴリズムによって最適化計算を実施するパターンを絞るという手法なので、全通りのパラメータを探索できる訳ではないため、用途によって使い分けていく必要があります。
例えば、どのパラメータセットが最もパフォーマンスが高いのかを調べることだけが目的でしたら、遺伝的アルゴリズムにチェックを入れて計算速度を高めるのが良いでしょう。一方で、パラメータとパフォーマンスの結果一覧やグラフから何らかの特徴を抽出したいと考えている場合には、遺伝的アルゴリズムを使用しない方が目的を果たしやすい場合もあります。
基本的にはチェックを入れて最適化し、データのプロット数が足りないと感じたときにはチェックを外すのが良いかと思います。


ストラテジーテスターのトップに戻り、スタートを押すと最適化が始まります。


最適化結果の確認方法
テスト終了後、”最適化結果”というタブをクリックするとパラメータ最適化結果の一覧を確認することができます。各項目をクリックするとその項目の昇順と降順に並べ替えることができます。下の図では、プロフィットファクタをクリックし、昇順に並べています。


最適化テストのデータは、右クリックして「レポートの保存」を選択するとHTML形式でレポート化することができます。




レポートを出力すると、最適化グラフを確認することができます。このグラフは、各パラメータセットに対して④でセットした最適化パラメータの値をプロットしたものです。このグラフは、パラメータが変化した時のパフォーマスの変化傾向を分析するのに非常に役立ちます。
後述しますが、パラメータの変化によるパフォーマンスの違いは、背景にある理由を説明できることが非常に重要ですので、このグラフを活用することは非常に大事です。



結果だけを見て最も良いパフォーマンスが良いパラメータセットを選択するという行為は間違いの元です。この後説明する注意点をしっかりと理解しましょう。
最適化を実行する際の注意点
前述したように、パラメータの最適化は諸刃の剣です。その理由は、パラメータを最適化しすぎると、過剰最適化(カーブフィッティング)をしてしまう可能性があるからです。
過剰最適化とは、過去の相場にパラメータを合わせ込んでしまい、無理矢理パフォーマンスを向上させてしまうことです。過去の相場で通用したパラメータが未来も必ず通用するかといえば、その保証はどこにもありません。過去の相場でも未来での相場でも通用するパラメータを選択するには、ちょっとしたノウハウが必要です。
ここでは、そのノウハウについて解説したいと思います。
過剰最適化をいかにして避けるか
過剰最適化を避ける方法はいくつかありますが、一番重要な事は、パラメータの最適化をした後に、その結果の意味をしっかり把握することです。
例えば、短期の移動平均線と長期の移動平均線のクロスで売買する戦略において、移動平均線の期間を最適化する例を考えてみましょう。短期の移動平均線と長期の移動平均線のパラメータの組み合わせとそれぞれの純利益を表にしたのが下の表です。


この表においては短期の期間が30、長期の期間が70の組み合わせが最もパフォーマンスが良好で、その他は$200を上回っている組み合わせはありません。
ここで重要なのは、なぜこの組み合わせが最もパフォーマンスが良いのか、そして他の組み合わせは劣った成績であるのかが説明できる事です。この表からはおそらく誰もそれを説明できる人はいないでしょう。その組み合わせがたまたま過去に合っていたという事に他なりません。
それでは、今度は取引時間の最適化を考えてみたいと思います。先ほどの移動平均線のクロスで売買する手法で、パラメータは短期の移動平均線が5、長期の移動平均線が25とします。通貨ペアはポンド円で、結果が下の表です。


9時から12時が飛び抜けて良い結果となっています。これは説明ができそうですね。ロンドン勢が市場に参加し始めてボラティリティがで始めたため、レンジ相場が一気にブレイクしてトレンドが発生したことが要因として考えられます。
このように最適化を実施してパラメータを決める場合には、必ずその数値の背景にあるものを考えるようにしましょう。説明ができるのであればその最適化には意味があります。説明ができない場合には過剰最適化になる可能性が高く、パラメータの選定はしないようにした方が無難です。
しかしながら、実際に最適化の作業をしていると、説明できない(本当は意味があるが、その意味が理解できない)場合が多々あり、そんな場合においても、過剰最適化を可能な限り避ける方法はあります。
それは、最適化結果において、採用したいパラメータの前後の数値においても、採用するパラメータと近いパフォーマンスが得られている事を確認することです。特定のパラメータのみがパフォーマンスが高い場合に比べ、過剰最適化の可能性が下がります。
ただし、ロジックの開発の過程でフィルターの入れ過ぎなどにより既に過剰最適化されていて、その時にはどんなパラメータであっても通用するようになってしまっている可能性もあります。
やはり結果の背景にある意味を説明できる事の方が重要であり、その事を十分に認識しておくべきでしょう。
最適化するパラメータはいくつにすべきか?
これもよく議論される話ですが、私の個人的な見解では、最適化するパラメータは1つか2つにしておくべきかと思います。もちろんトレード数にもよりますが、3つ以上のパラメータを最適化する場合には1,000回以上のトレード数がないと厳しいというのが個人的な見解です。
理由としては、開発の過程でフィルターなどを入すぎてトレード数を減らしてしまっている場合、その時点で過剰最適化してしまっている可能性があるからです。ただし、フィルターを入れているとしてもそのフィルターが機能する理由を説明できる場合には問題ありませんので、その場合には最適化するパラメータ数の制限を緩めても良いかと思います。ただし、基準が無いのが難しいところです。



やはり結果の背景にある意味をしっかりと説明できる事が一番重要であるという事ですね!
最後に
今回は最適化について解説させて頂きました。最適化は便利な道具であるというよりは怖い存在だという印象を持たれた方もいるかもしれません。
しかしながら、使い方を間違わなければ非常に強力な武器になります。得られた結果や数字だけで判断するのではなく、必ずその結果に辿り着いた理由を考えるだけでパラメータの選定スキルが大きく向上します。
是非そのノウハウを身につけて正しい最適化を実施し、実りあるEAトレードライフを送って頂きたいと思います。
取引に役立つ情報をあなたの元に
WikiFXアプリはこちらから


WikiFX(ウィキエフエックス)は、FX会社の安全性・信頼性を評価している第三者機関です。
全世界3万以上のFXブローカーの情報を収集し・格付けを行っています。
FX会社の安全性スコアや詐欺被害のリアルな口コミは『wikifx.com』で確認できます。


コメント コメント 0