*

(MQL4)iCustomでインジケーターをEA化するやり方[EA自作]

公開日: : 初心者EA自作 , ,

Originally posted 2019-01-26 18:13:20.

インジケーターとiCustom

今回はインジケーターのシグナルを使って、EAを作ります。

iCustomという関数を使うと
インジケーターをEAのロジックに組み込むことができるようになります。

ただし
すべてのインジケーターがiCustomでデータを取得できるわけではありません。

シグナルをバッファとして出力するインジケーターでないとiCustomが使えません。

具体的には、

チャート上にセットしたインジケーターのラインや矢印にマウスカーソルをのせて、
Value1やValue2などという表示がでれば、iCustomでEA化できます。

(表示が出なくても、チャート上の表記をEAにそのまま組み込むという荒業もあります。)iCustomではEA化できないインジケーターをEA化するやり方

iCustomは

という記述で扱うことができます。

インジケーター名の後にはそのインジケーターのパラメータを複数渡すことができます。

バッファというのは
そのインジケーターが返す値の種類のことです。

MT4のインジケーターには8つまでのバッファを組み込むことができ、それぞれのバッファにシグナルのデータが格納されています。たとえば、バッファ1には上向きの矢印の数値が入っていたり、バッファ2には下向きの矢印のデータが入っていたり、といった具合です。

それぞれのバッファにはシグナルのデータが入っているので、iCustomの引数のバッファの数値を変えると、
そのインジケーターの上矢印の値や下矢印の値などをそれぞれ取得できます。

シフトは欲しい値のロウソク足の場所です。
0なら現在のロウソク足、1なら一本前のロウソク足になります。

とりあえずZigZagインジケーターを例に

今回はMT4に標準搭載されているZIGZAG(ジグザグ)というインジケーターでEA化します。

デフォルトでインジケーターフォルダにセットされているので
ダウンロードする必要はありません。

ZigZagは以下のようなジグザグ線を描くインジケーターです。

icustom_zigzag_sample

ZigZagはそのロウソク足が頂点になったときに
バッファ0と1と2が値を返します。

今回は
3つ前のロウソク足が頂点になった際にエントリーするロジックを考えます。

ZigZagの下向き頂点で買いエントリー、上向き頂点で売りエントリー

これまでに作ったコードをベースにZigZagのEAを作ります。
3つ前のロウソク足でのZigZagは

として記述できます。

頂点でないときには上の値が0になり、
頂点になった場合にはそのときの高値or安値のレートが返ります。

そのため、
3本前のロウソク足が上向きの頂点になったときは、

とすれば良さそうですが、

イコール として条件を組んでしまうと、小数点以下で一致しないバグが起こります。

具体的には、

if( 110.001 == 110.001 )

に外見上は見えていても、

if( 110.001 == 110.00100001 )

になっていることがあるという訳です。

そのため、少数を3桁に四捨五入する関数を使います。

で数の小数点をそろえることができます。
その通貨ペアの最小桁数を表すDigitsを使います。

上記の条件式の少数点以下をそろえると、

となります。
逆の場合は、HighをLosに変えて

となります。

テスト結果は以下のようになります。

icustom_zigzag_tester

 

リペイントインジケーターに注意

ZigZagはリペイント(再描写)を行うので、
EAでエントリーしたときの様子と後から見た様子がかなり変わります。

このような後出しインジケーターは多く、
インジケーターをEA化する際にはこのような点にも注意しなければなりません。

特に注意しなければならない特徴は、
・最新のロウソク足ではなく、数本前のロウソク足にシグナルを表示させるインジケーター
・一度描写したシグナルを消すインジケーター
・一度描写したシグナルを変更するインジケーター
・セットしたタイミングによって描写が変わるインジケーター
などがあります。

 

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

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

このコメントはWEBに公開されるので、問い合わせ等はメールなどでお願いします。

関連記事

MT4の”本当の”スプレッドを表示する(チェックソフト配布)

トレードでは基本的にスプレッドが手数料として上乗せされています。通常であればBid=Close(終値

記事を読む

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

何年か前に「iCustomを使ってインジケーターをEA化する」という記事を書いたのですが、意外とアク

記事を読む

MT4チャート上にバイナリーオプションのようなボタンパネルを作ってみた

注:これは、MT4のチャート上でバイナリーオプションのような操作パネルを表示させているだけで、実際に

記事を読む

とある両建てロジックのEA検証(コードあり)

今回はちょっとしたシンプルな実験を行います。 お題は両建てです。 ポジションが0の場合SLTP付

記事を読む

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

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

記事を読む

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

     


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

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

Translate »
ページトップへ