News

2014年07月24日 09:15  ツールを使った簡単なEAの作り方 その7

6月18日の掲載に続き、今回は「ツールを使った簡単なEAの作り方 その7」です。
ツールを使った簡単なEAの作り方 その6 では、作成したEAのバックテストとパラメーターの変更方法を説明しました。
今回は「パラメーターの最適化」の方法を説明します。今回も「EAファーム」ではなく、「メタトレーダー」上での操作を説明します。

前回「ストラテジーテスター」を使って、プロフィットテイクとストップロスの設定を変更してバックテストしてみました。その時の設定そのままに「セッティング」画面の、「エキスパート設定」を開き、
「パラメーター入力」タブを開きます。

最適化したい変数(TakeProfitとStopLoss)の左にチェックを入れて、
「スタート」(30)から「ストップ」(80)までの値を「ステップ」(10)の刻みでバックテストします。(数値付近をダブルクリックすると入力出来るようになります)
「OK」をクリックすると、テスター画面に戻ります。
「最適化」のチェックを入れて、
「スタート」をクリック、これで最適化の始まりです。

最適化が始まると、
「最適化結果」「最適化グラフ」タブが増えて、計算結果が表示されて行きます。

「損益」や「ドローダウン」をクリックすると、ソート(並べ替え)されるので、より良い組み合わせを選びます。
今回は
「パス19」のTakeProfit= 30、StopLoss=60を選びます。損益:最大、ドローダウン:最小、StopLoss:最小の組合せだからです。(TakeProfit= 30、StopLoss=30の結果が前回と違うのは、ヒストリカルデータがアップデートされた為と考えられます。モデルティック数が増加しています。)

「パラメーターの最適化」の方法はこの通りです。残念ながら、結果はあまりよくなりませんでした。
これで終わる訳には行きません。少々長く、難しくなりますが、移動平均線のパラメーターを最適化する方法を説明しましょう。

EAファームでは、テクニカル指標のパラメーターは固定になっています。これを「StopLoss」のように「パラメーターの入力」画面で変更できる「外部変数」にすることで最適化可能になります。

これには、ソースコードの編集が必要になります。
ソースコードの編集は、ストラテジーテスターの「エキスパート編集」か、ナビゲーター上で選択して、右クリックから修正をクリックしてください。

メタエディターが開き、編集可能になります。

具体的な手順は、
ソースコードの中で移動平均線の計算箇所を見つけます。
「iMA」が移動平均線を計算する関数で、以下のように書かれています。

中にある「5」は短期線、「25」は長期線のパラメーターで、これらを「外部変数」にするために、まず「5」を「MA_s」(短期)、「25」を「MA_l」(長期)の変数に置き換えます。

メタエディターの「Replace」(置換)機能を使います。
「Ctrl+H」(コントロールとHキーの同時押し)で起動します
「5」だけでなく「iMA(NULL,60,5,」を「iMA(NULL,60,MA_s,」に
iMA(NULL,60,25,」を「iMA(NULL,60,MA_l,」にReplaceすると、想定外の「5」や「25」をReplaceしてしまうことを防げます。

次に「extern int StopLoss =30;」を見つけます。
メタエディターの「Find」(検索)機能を使います。
「Ctrl+F」(コントロールとFキーの同時押し)で起動します。
Ctrl+H や Ctrl+F は多くのPCソフトで同様ですので、覚えておくと便利です

「extern int StopLoss =30;」は、「StopLossは外部関数で初期設定値は30だ」と宣言しています。これを、「MA_s」、「MA_l」でもするので、「extern int MA_s =5;」「extern int MA_l=25;」を「extern int StopLoss =30;」の下に書き足してください。これで、「外部変数」に出来ました。

あとは「Compile」をクリックして、完了です。

最適化の結果がこちら、「MA_s=30」「MA_l=10」が最高益ですが、短長逆転なので、除外します。「MA_s=10」「MA_l=20」の組み合わせがドローダウンも小さく、ベターです。

そして、バックテストはこの通りです。

右肩上がりの損益線になりました。今回の検証期間に有効なことが判りました。
長く有効性が継続するロジックを、皆さんも、発明、発見してください。

7回のコラムで、EAファームでのEA作成から、メタトレーダーでのEA設定、パラメーター最適化と、一通り説明しました。
初歩としての「ツールを使った簡単なEAの作り方」は終了させていただきます。
ご覧いただきありがとうございました。

シストレ父さんとは?営業マン時代にマーケット情報の不公平さと、上司の相場下手に嫌気がさし、テクニカル分析、システムトレードと歩みを進めてもうすぐ四半世紀の、相場好きシストレ好きお酒好きの中年男です。
相場について、シストレについて、私の知る限りをサイト訪問いただいた方に、お伝えできればと思っています。よろしくお願いします。

TOPへ戻る