MT4/MT5で移動平均線乖離を判定してトレード|無料EA第5弾

2018年12月9日

自由な人

移動平均線と現在価格の乖離を判定してトレードするEAを作成しました。

今回はプログラムは掲載せずにEAのみの提供としますが、需要があればプログラムも公開しようと思います。

前提

MT4またはMT5を利用してプログラムを動かしますので、まだインストールが完了していない方は、以下を確認してインストールをお願いします。MT4でもMT5でもお好きな方をインストールしてください。



EAのダウンロード

以下のページより「Download」ボタンをクリックして実行ファイルを取得してください。ダウンロードしたEAは、通常のEAと同じExpertsフォルダ内に配置していただければ大丈夫です。

MT4の方はこちらからV1.01をダウンロード

MT5の方はこちらからV1.01をダウンロード

[2019/01/10 不具合報告]
EA適用後にパラメタの変更をすると適用が解除される悲しい不具合を修正。(失礼しました。)



プログラムの大枠

エントリー条件

価格が移動平均線から一定以上離れたら仕掛ける逆張りです。

とても単純な仕組みですが、「一定以上」という部分をどのように算出するかがポイントになります。

例えば「0.3乖離したらエントリー」とすると、USDJPYでは動くかもしれませんが、EURUSDでは単位が異なるので動きません。

そこで、乖離幅の算出にはATRを利用しようと思います。

ATRは、Average True Rangeの略でボラティリティ(変動)を表しますので、その値を上手く使っていきます。

[ATRの説明]

(1) 以下の中で最も大きい値を抽出します。(TRと呼ばれる。)
①高値-当日安値
②当日高値-前日終値
③前日終値-当日安値

次に平均を出します。例えばATRの期間を14とするならば、14本分のTRの平均です。



エグジット条件

固定ピップスによるエグジットを採用します。

市販EAでもよく見かけますが、例えば「+50pipsになったら利確、-100pipsになったら損切り」というものです。



パラメタの説明

EAで利用可能なパラメタの説明を記載します。

項目名説明設定値の例
MAGICポジションを識別するNo1~
SlippagePips許容可能なスリッページ1~
i_fixed_lotロット計算タイプ
true: 固定
false: 証拠金に応じて変動
false
i_lotロット計算タイプがtrueの場合に設定0.1
i_leverageロット計算タイプがfalseの場合に設定
レバレッジ5倍なら5を設定する
5
i_limit_marginエントリーを禁止する余剰証拠金200
i_limit_spreadエントリーを禁止するスプレッド20
i_s_time取引可能時間の開始点3
i_e_time取引可能時間の終了点20
i_ma_period移動平均線を計算する期間25
i_kairi移動平均線からの乖離を決定する係数
この値×ATR分の乖離でエントリーする
7
i_take_profit利確までのpips数20
i_stop_loss損切りまでのpips数60

ロットを変動にする場合は、証拠金とレバレッジの関係で仕掛けるロットが変わりますので、上手く動かない場合はまずは固定ロットでお試しください。



動作確認

簡単にではありますが動作確認しておきます。

値動きが荒い時
値動きが荒い時は移動平均からの乖離が大きくならないとエントリーしない


値動きが安定しているとき
値動きが小さい時は移動平均からの乖離が小さめでもエントリーする

ATRを使った乖離部分のみ掲載していますが、買いのロジックについても同じように検証しています。



バックテスト

MT4でのテスト

まずはMT4で2015.01.01~2018.01.01で最適化したパラメタでバックテストをします。通貨はEURGBPを選択し、証拠金は少な目に1000ドル開始にしています。

証拠金を少なめに設定した理由は、大きな値になると逆にリアルさが失われると思ったからです。

EAの設定値は以下の通りです。

EAのパラメタ
MT4のバックテスト設定


実行すると悪くない結果になります。(最適化後のパラメタなので当たり前ではあります。)

MT4のバックテスト結果


MT5でのテスト

私のMT4のテスト環境はあまりデータの精度が良くないので、MT5でフォワードテストを行います。

MT5のバックテスト設定


フォワードテストでも悪くない結果になりました。

MT5のバックテスト結果


試しにレバレッジ10倍でもテストしておきます。

MT5のバックテスト結果(レバレッジ10倍)


おそらくランダム遅延を入れている関係で、1回分損切りが減ってしまいましたが、概ね同じような形状になりました。

念のため、ロットがどのように変動しているか見ておきましょう。

ロットの変動確認

赤枠の部分でロットが切り替わっているのが分かると思います。勝ちを重ねて余剰証拠金が増えてくればロットも大きくなりますし、負けて証拠金が減ればロットも小さくなります。

i_fixed_lotをtrueにすれば固定ロットでも動きますのでお試しください。



EA運用の考え方

このEAはテストした期間のみ一定以上のパフォーマンスを上げるように作成していますので、過去のマーケットでは機能しません。(テストしていないので機能するか分かりません。)

EAを沢山作っていると、いくら過去に良い結果を出しても意味が無いことを痛感します。(もちろん良い方がいいですが。)

私の場合ですが、例えばこのEAならばテスト期間に3連敗したことは無いので、運用して3連敗した時点で停止します。

1つのEAで数年間勝ち続けることを考えるよりも、運用するEAの撤退条件をとても分かりやすいものにして、ダメならすぐに停止して新しいEAを投入すればいいかなと思っています。



最後に

今回は乖離を利用した逆張りのエントリーにしましたが、実は乖離を利用した順張りのトレードも可能です。機会があればそういったEAの提供もしていこうと思います。

※本EAについてはどのようにご利用いただいても構いませんが、損失が発生しても責任を持つことはできませんので、ご自身でしっかりバックテストをして納得したうえでの運用をお願いします。

自動売買の自作に興味がある方は以下をご参照ください。