2016年5月13日金曜日

[MQL超入門] その023 バックテストを活用しよう。その2 パラメータの最適化1

EAの良し悪しは、プログラムのロジックだけでは決まりません。同じロジックでも、パラメータが変わることで全く違う成績にもなります。

EAのパラメータとは、例えば前に作成した移動平均線のEAであれば、移動平均の期間や、移動平均の種類などを指します。

その時の記事はこちら
[MQL超入門] その021 本格的にEAを作ってみよう。その2 カスタム指標を使用する

とはいえパラメータを少しずつ変えてバックテストを実行して検証するのは大変なんですが、MT4には最適化という便利な機能があります。最適化とは、指定したパラメータの組み合わせを自動的に実行し、結果を比較することができる機能です。
今回は、最適化の手順を説明します。

ストラテジーテスターの[セッティング]タブの[最適化]にチェックを付けます。
・図023.01 最適化の選択

[エキスパート設定]ボタンをクリックします。
・図023.02 エキスパート設定の表示

EAの設定画面が表示されます。
まず[テスト設定]タブの設定を行います。
・図023.03 エキスパート設定 テスト設定
[最適化パラメータ]では、パラメータの良し悪しを何の数値で評価するかを選択します。
基本的には[Balance]でよいと思いますが、以下から選択することが出来ます。
 ・Balance (残高)
 ・Profit Factor (プロフィットファクタ)
 ・Expected Payoff (期待利得)
 ・Maximal Drawdown (最大ドローダウン)
 ・Drawdown percent (相対ドローダウン)
 ・Custom (EAに埋め込まれた評価値算出処理の出力する数値)

[遺伝的アルゴリズム]も、基本的にチェックでよいです。
遺伝的アルゴリズムは、ランダムなパラメータの組み合わせから評価の良いものを抽出し、それを何度も繰り返すことで、高い確率で最適な組み合わせに行き着くと言われています。
遺伝的アルゴリズムのチェックを外した場合、パラメータの組み合わせを総当りで実行します。組み合わせが少ない場合は総当りの方が確実ですが、組み合わせが多い場合には遺伝的アルゴリズムを使用することで短時間で最適化が行えます。

必要に応じて、[初期証拠金]を増やすこともできます。
また、[ポジション]でロング(買)とショート(売)どちらかしか持たないこともできます。
ただ基本的にこれらは変更しなくてもよいかと思います。

次に[パラメーターの入力]タブで、最適化したいパラメータを選択します。
・図023.04 エキスパート設定 パラメーターの入力
最適化するパラメータを、左のチェックを入れて選択します。最適化するパラメータの数が増えるとそれだけ時間がかかりますので、2~3個までに留めておくのがよいと思います。
今回は[移動平均の期間]と[移動平均線の種類]を最適化します。
その右の設定値は、[スタート]の値から[ストップ]の値までを[ステップ]の値刻みで変化させて最適化を行うという意味になります。また、チェックを入れたパラメータは[値]の値は無視されます。

[最適化]タブでは、EAを停止するための制限を設けることができますが、下手に制限をかけるとEAの成績が正しく評価できないこともありますので、基本的には何もせず無制限としておきます。

これらの設定を行ってから、ストラテジーテスターの[スタート]ボタンをクリックすると、最適化が開始されます。
時間がかかると思いますが、通常のバックテストと同様で、緑のバーが右端まで到達し、[ストップ]が[スタート]に戻ったら完了です。

では最適化の結果を確認したいと思いますが、長くなりましたので続きは次回に。

次の回へ

「MT4でFXを勝ち抜く研究をするブログ」で公開している無料インジケータは、こちらの一覧から。
インジケータ一覧

Twitterもよろしくお願いします。
https://twitter.com/mt4program

ブログランキングにご協力よろしくお願いします。m(._.)m
にほんブログ村 為替ブログ MetaTraderへ
にほんブログ村

お約束ですが、本ブログは、投資に対する利益を約束する物ではありません。最終的には自己責任によるご判断よろしくお願いいたします。