*

(MQL4)市販のインジケーターをEA化するやり方 実践編(EA自作)

Originally posted 2019-01-27 18:45:00.

何年か前に「iCustomを使ってインジケーターをEA化する」という記事を書いたのですが、意外とアクセスがあるようなので、今回は実践編として続きをします。

 

市販のインジケーターのEA化

前回はMT4に標準搭載されているZIGZAGを対象のインジケーターとして使いましたが、今回は市販のインジケーターでよくあるパターンでやってみます。

具体的には、
・インジケーターのexファイルはあるが、mqファイルはない
・チャート上にセットすると買いと売りのサインがでる
という設定です。

とりあえず今回は一番よくある簡単なパターンを解説します。
bandicam 2017-12-22 11-22-00-024

まず、このインジケーターがどのような挙動をするかを把握する必要があります。
・矢印はバッファに値が入っているのか否か(カーソルを合わせたときに数字が出るか否か)
・リペイントはするのかどうか
・現在足でサインがでることはあるか(その場合消えるかどうか)

 

インジケーターの挙動を調べるコード

まずは、てきとうにEAファイルを作ってインジケーターの挙動をざっくり調べます。

 

このコードはインジケーターの挙動を調べるための”ざっくりとした”コードです。

調べる対象のインジケーター名をArrowIndicatorと入れ替えてください。拡張子(ex.4)はあってもなくても大丈夫です。

 

括弧の前の数字は最新のロウソク足の右からの順番(現在足は0)
その左の数字はバッファを表します。

バッファというのはインジケーターを開発する際に線とかヒストグラムを描画する際に使うもので、バッファに数字を入れてバッファの描画タイプを指定することでチャートに表示させています。

後はこれをコンパイルして、
・ストラテジーテスターで
・ビジュアルモードで
・対象のインジケーターをチャートにセットした状態で
テストを行います。

 

コンパイルが何かわからない方はこちら

ソースコード(.mq)からEA(.ex4)を生成するやり方[EA自作]

bandicam 2017-12-22 11-27-55-699

すると、ちょっと見にくいですが、一つ前の足に矢印があるとき、{2 1} に値が入っていることが分かります。矢印がないときには0として表示されるので、「上向きの矢印があるときにはそのレートがバッファに反映される」ということがわかります。

同じように上向きの矢印は{3 1}に値が入ることがわかります。

つまり
上向きの矢印がでる = バッファ2が0でない(そのときのレートが入る)
下向きの矢印がでる = バッファ3が0でない(そのときのレートが入る)
ということが分かります。

ちなみに、チャート上の上向きの矢印にカーソルを合わせたときに「Value3:111.429」とでますが、実際のバッファ指定の際には0スタートのため、1ずれて2番になります。

具体的に言うと、
iCustom(Symbol(),Period(),”ArrowIndicator”,2,1) <- こっちが上向き矢印
iCustom(Symbol(),Period(),”ArrowIndicator”,3,1) <- こっちが下向き矢印
(バッファは0スタートなので1ずれる)

あとは、これを条件に式を作ればいいだけなので、

※オーダー処理については「EA開発講座」を参照してください。

新規オーダーを送信するOrderSendの書き方[EA自作]

 

EA化する際の注意

実際には特定の条件下で変な挙動をするインジケーターなどもあるので、もう少し慎重に調べ上げてから実装するのが賢明です。

また、このインジケーターは現在足ではリペイントを行うので、確定足でコーディングした方が良いパターンでした。

この他にも
”バッファを一切使わずにオブジェクトで矢印を表示するインジケーターや
”過去10本以上さかのぼってリンペイントするインジケーター”
などいろいろありますので、その都度試してみてください。

 

iCustomでインジケーターのEA化 サンプル2

もう一つインジケーターをEA化してみます。

こちらは読者の方からいただいた「EMA signal」という矢印系のインジケーターです。

fxantenna.com img

矢印にマウスカーソルを当てると、

  • 緑色の上向き矢印=Value1=buffer0
  • 赤色の下向き矢印=Value2=buffer1

と出ることから、それぞれのバッファ値の対応が分かります。

次に、このインジケーターの挙動を一応調べます。

fxantenna.com img

私が使っているパソコンは普通のパソコンの4倍以上の解像度があるので、左上のCommentの出力がつぶれてしまっていますが、「矢印が出るときはそのその矢印が出ているときのレートを表示し、それ以外ではint型のmax値2147483647が常に入っている」仕様だとわかります。

 

つまり、iCustomの出力値がある程度膨大な数よりも小さければ、矢印が出現しているということになります。

今回はてきとうに10,000,000にしました。この値ならint型の最大値2147483647よりも十分に小さく、また、ビットコインを円表示した際の1,000,000よりも十分に大きいので、どの相場にも適応できます。

 

次に、フィルターを考えてみます。

これはHBBというインジケーターで、上昇トレンドのときは青いラインがレートに下にサポートラインのように表示され、下降トレンドの時には赤いラインがレジスタンスラインのように表示されます。

fxantenna.com img

これを先ほどのEMA signalのフィルター(エントリーする前の前提条件)にしましょう。

 

まずはこのインジケーターの挙動を調べます。(さすがに文字がつぶれて分析不能なので、オブジェクト関数で出力しました。)

fxantenna.com img

よく観察すると、青いサポートラインが表示されている間はバッファ0とバッファ4の値に青い点のレートが格納されることが分かります。

 

そして、赤いラインがでているときは、

fxantenna.com img

バッファ1とバッファ5に赤いラインのレートが格納されていることが分かります。

つまり、

  • 青いラインが出ている=バッファ0バッファ4にレートが入っている
  • 赤いラインが出ている=バッファ1バッファ5にレートが入っている

また、

  • 青いラインがでていない=バッファ0が-1で、バッファ4がintの最大値
  • 赤いラインがでていない=バッファ1が-1で、バッファ5がintの最大値

と言うことが分かります。

これで、

  • HBBの青いラインが出ていて、上向きの緑色の矢印がでたときに買い
  • HBBの赤いラインが出ていて、下向きの赤色の矢印がでたときに売り

という順張りロジックが出来上がります。(逆張りにしたい場合や押し目狙いにしたい場合は適宜if文を入れ替えればOKです。)

 

少し整えてバックテストできるようにしましょう。

ソースコードダウンロード(mq4)

 

超絶グチャグチャですが、狙った通りの売買ができています。

fxantenna.com img

 

せっかくなので、SLとTPを過剰最適化させます。(笑)

fxantenna.com img

USDJPY 2018.11.1~2019.7.1 M5 x軸:SL,  y軸:TP

過剰最適化っていうか、もはや異常値の作為的抽出ですね。

fxantenna.com img

EAダウンロード

 

iCustomではEA化できないインジケーターをEA化するやり方

この投稿は役に立ちましたか? 役に立った 役に立たなかった 2 人中 2 人がこの 投稿 は役に立ったと言っています。
 

コメント

  1. てい より:

    はじめまして。EA作成の勉強をしていて、ここにたどり着きました。
    丁寧に書いてあり、大変感謝しています。
    これからじっくり勉強させて頂きます。
    まだ素人同然なので、質問内容が的外れだったら、申し訳ありません。
    自分も市販のインディケーターをEA化しようと思い試みています。
    自分が使ってるインディケーターはサインと同時にエントリーするものです。
    そして、買いサインがバッファ0に、売りサインがバッファ1に格納されています。
    ちなみに、通常はバッファ0=2147483647
    サインが出たときにはその値が入ります。
    バッファ1も同じです。
    そこで、iCustomを使って売買注文を出すには以下の通りでよろしいでしょうか?
    if(iCustom(Symbol(),Period(),”name”,0,0) !=2147483647)
    {OrderSend(Symbol(),OP_BUY,Lots,Ask,Slip,SL*_Point,TP*_Point,Comments,MAGIC,Red);}

    素人ですいません。質問に答えていただけたら幸いです。よろしくお願いいたします。

Message

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

入門者のEA自作のための作り方講座(MQL4/MT4)

プログラミング初心者の方が初めてでもEAを開発できるように解説したページです。このページの内容をマス

記事を読む

[MT4]EAに口座縛り/期間限定縛りをかける種類と方法(MT5)

良いEAができると、クレクレ厨がよってきますが、身内の人にならひっそりと配布したい場合もあります。

記事を読む

テクニカル指標(RSI)を使ったEAの作り方[EA自作]

今回はテクニカル指標によるEAの一つとして、RSIのEAを作ります。 ※実際に稼働させるEAには他

記事を読む

cTraderの特徴 MetaTraderとどっちがいいの?

結論から言うと、MetaTraderです。cTraderが使えるFX業者がもうAXIORYとFXPR

記事を読む

(MQL4)初めてのEA自作のための教科書~実用編~[EA自作]

実用に向けたEAのコーディングについて説明します。本当に1からEAの開発について知りたい方はこちら。

記事を読む

 
  • fxfx.work

    (↑広告です。このサイトの管理者の運営ではありません)

     


  • 横瀬兼元(ペンネーム)です。

    プロフィール
    商材を買わせようとする偽者がいるらしいのでご注意ください。
    ツイッター始めました(イマサラー)
    https://twitter.com/FxantennaC
    (埋め込みするとページ表示が極端に遅くなるので、リンクでご容赦を) 4000文字未満のトピックや話題はツイッターで発信しています。
  • fxfx.work

    (↑広告です。このサイトの管理者の運営ではありません)

Translate »
ページトップへ