最適化の準備
最適化の準備① EAの設置

最適化の準備② ヒストリカルデータのダウンロード

最適化の準備③ 最大バー数の設定

最適化を行う過程で、MT4(MT5)は多くのヒストリカルデータを使用しますが、MT4(MT5)では計算速度を早くするため、ヒストリカルデータの仕様本数の制限をかけています。
そこで最適化の前に、使用本数制限の開放をしていきます。
まずMT4メニューの【ツール】→【オプション】→【チャート】タブを開きます。
そこにヒストリー内の最大バー数と、チャートの最大バー数の項目がありますので、9999999999などの大きな数字をいれて、ローソク足データをすべて開放すれば設定は完了です。(最大値は2147483647)
ストラテジーテスターの設定
ストラテジーテスターを開く

上部メニューの【表示】→【ストラテジーテスター】を選択します

MT4の下部にテスターの【セッティング】タブが開きました
EAを選択していきます

この赤枠ではEA(エキスパートアドバイザー)を選択します

続いて、バックテストをおこなうEAを選択しておきます。ここではボリンジャーバンドのテスト用EAである「bollinger_sample.ex4」を選択しておきます。
通貨ペア&モデルの選択

通貨ペア・・最適化をおこなう通貨を選択します。
モデル・・最適化の精度を下記の3つから選択できます。
・全ティック 一番精度が高いテストができますが、計算に時間がかかります。
・コントロールポイント 疑似ティックを使ってテストを行いますが、精度は落ちます。
・始値のみ 実際につけた始値、高値、安値、終値でテストを行います。ローソク足内の動きは計測しませんが高速でテストが可能です。確定足のEAを使う場合に便利です。
期間を指定・ビジュアルモード

期間を指定・・ここにチェックすると右側の開始日と終了日がアクティブになるので、最適化を行う期間を入力してください。ただし最適化はバックテストと異なり膨大な時間がかかるので、まずは半年期間くらいまでがおすすめです。
ビジュアルモード・・最適化の際はここはオフにします。
スキップ・・このボタンをビジュアルモードでのバックテスト中に押すと、その右側で設定した日時に移動しますが今回は使いません。
期間 スプレッド 最適化

期間・・テストを行う時間足が1分足から日足までで選択できます。
スプレッド・・スプレッドの設定ができます。数値は0.1pips単位ですので、例えば3と入れると0.3pipsとなります。通常は『現在値』で大丈夫です。
最適化・・このチェックを入れると最適化モード、入れないとバックテストモードになります。最適化の際は必ずチェックを入れます。
最適化の設定(エキスパート設定)

【エキスパート設定】をクリックして最適化の値を入力していきます
テスト設定タブ

初期証拠金額:お好きな初期証拠金額と通貨を入力してください。通貨は円が選択できないのでJPYと手入力します。
ポジション:買い(Long)、売り(short)、両方の中からエントリー方向を決めます。
最適化パラメータ:EAを評価する基準を下記の6つから設定します。
①blance・・・資産残高(利益重視) ←通常はこちら
②Profit Factor・・・純利益 ÷ 総損失(利益率を重視)
③Expected payoff・・・総損益額 ÷ 総トレード数(平均損益重視)
③Maximal Drawdown:最大ドローダウン(最大ドローダウンを低くする)
④Drawdown Percent:ドローダウン率(最大ドローダウン率を低くする)
⑤Custom:オリジナルの基準(開発者向け、OnTester関数で調整)
遺伝的アルゴリズム:最適化中に明らかに悪い結果があった場合は省いて計算するようになります。処理が早くなるのでチェックを入れておきます。
パラメータ入力タブ

ここにはセッティングで選択したEAのパラメータが表示されます。
今回はボリンジャーバンドのテスト用EAである「bollinger_sample.ex4」を表示しています。

まず赤枠ですが、ここでは最適化を行いたいパラメータにチェックを入れます。もちろんチェックを入れた数だけ計算量は多くなるので最初は1~2個で十分です。
次に、たまにある例として黄色の枠ですが、ここはEAのパラメータで「ロングのみエントリー」、「ショートのみエントリー」、「両方エントリー」を選択する部分です。
しかし最適化でこのパラメータを使う場合、「このEAがロングとショートどちらが勝てるかの最適化」というのは残念ながら通りません。数字を色々と当てはめて最適な値を見つけていくのが最適化です。
この画面にはEAのパラメータがそのまま表示されるので、このように最適化には適さない項目もそのまま表示されます。
こういった項目は各自の判断で最適化の計算では使わないようにする必要があります。

続いては赤枠の最適化を計算する範囲です。
※【値】のパラメータはバックテストの時に使うもので、最適化では無効になります。
・スタート:パラメータのスタート値
・ステップ:スタートの値に順番に加算していく値
・ストップ:スタートの値にステップの値を順番にいれていき、このストップの数値まで最適化の計算がおこなわれます。
黄色い枠の数字を例にすると、チェックの入っている【ボリンジャーバンドの標準偏差の倍率】(←σ(シグマ)の設定ですね)は、1.0σスタートでそこへ0.1σずつ足していき、3.5σになるまで最適化の計算をおこなうということですね。
最適化タブ

最適化タブでは、チェックした制限の値を満たしたらテストを止めることができます。
最小口座残高:証拠金残高
最大利益:最大利益
最小証拠金レベル%:証拠金の最小水準%
最大ドローダウン:最大ドローダウン%
連敗:一連の取引での最大合計損失額
連敗トレード:連続で負けた取引数
連勝:一連の取引での最大合計利益額
連勝トレード:連続で勝った取引数
最適化のチェックを確認してスタート

エキスパート設定が終わったら、最適化にチェックがはいっていることを確認してスタートを押せば、最適化計算がスタートします。
最適化結果の見方

最適化の結果はテスターの【最適化結果】タブに表示されます。
もし初めて最適化を行う方でしたら、最適化結果タブのどこでも良いので空白上で右クリックを押して、【マイナスの結果を表示しない】のチェックを外したほうが良いでしょう。
最適化の結果が全てマイナスということもよくあるのですが、このチェックを外しておかないとその場合に何も表示されず、エラーと勘違いしてしまうからです。
最適化結果タブの解説

下記は各項目の解説です。
※初期設定では、最適化の結果は利益の出ているものだけ表示されます。
パス:自動で付与される識別番号
損益: 同パラメーター設定(Pass)の合計損益
総取引数:取引のあった回数
プロフィットファクタ:総利益÷ 総損失
期待利益:期待損益(取引ごとの損益の平均値)
ドローダウン$:最大損失金額($)
ドローダウン%:最大損失(%)
パラメーターの入力:エキスパート設定で入力したパラメーター設定値

出力された最適化結果の上で右クリック→【レポートの保存】を押すと・・
最適化グラフ

利益を出したポイントほど上に表示されます。ポイントをダブルクリックでそのパラメータに飛ぶことが出来ます。
また、このグラフを表示した状態で【スペースキー】を押すと・・・

このように分布表に切り替わります。
分布表は、濃いところが資産残高の多いところ、薄いところが資産残高の少ないところなので、濃いエリアの変数が最適な組み合わせということがわかります。
最適化の注意点
ここでは、初心者さんがよく陥る最適化のミスや勘違いを解説していきます。
最適化とバックテストを混同しない

最適化にチェックを入れることでバックテストモードと切り替わります

青枠:最適化にチェックが入っていない時(バックテストモード)のみ有効。最適化時にこの数値は無視されます。
赤枠:最適化にチェックが入っている時(最適化モード)のみ有効。バックテスト時にこの値は無視されます。
エキスパート設定のパラメータの入力画面は、バックテストと最適化のステータスが区別されておらず、同じ画面内に配置されているので間違えやすいです。
ここでは、最適化のチェックがはいっているかどうかで、エキスパート設定のパラメータで有効になる数値が変わってきますので注意が必要です。
バックテストのグラフは騙しなので注意する
最適化にチェックを入れてテストを完了すると、成績が良かったパラメータの一覧が表示されますが、【マイナスの結果を表示しない】のチェックを外していない状態で結果が全てマイナスだった場合、グラフと、取引結果は表示されません。
ところが、最適化をする前にバックテストをして、グラフや取引履歴が表示された状態で最適化をすると、バックテストのグラフと取引履歴が残ったままの状態で、最適化の結果がタブで追加されます。
この時残ったグラフと取引履歴を最適化の結果と勘違いしてしまう方が多いので注意してください。
