MT4でフィボナッチラインブレイクを自動で通知する|無料EA第4弾

2018年11月6日

自由な人

フィボナッチのラインブレイクを通知するEAを作成します。

FXチャートのラインブレイクを自動で通知する|無料EA第3弾」で利用したプログラムを元にしますので、まだご覧になっていない方は先にご確認ください。

前回はブレイク時に画面上にアラートを出力しましたが、今回はスマートフォンに通知します。

記事中のプログラムは自由にお使いください。

前提

メタトレーダー(MT4)を利用してラインブレイクを検知しますので、PCにメタトレーダーがインストールされている前提で進めます。

MT4をインストールしていない方は、まずは「メタトレーダー(MT4/MT5)で自動売買するための事前準備(第1回)」からご確認ください。

※ここで紹介するプログラムはまだMT5には対応していませんので、MT5をお使いの方はもう少々お待ちください。

 

プログラムの設計

大枠

MT4のチャート上に自分でフィボナッチラインを引きます。

MT4のフィボナッチには複数種類がありますが、今回はもっともオーソドックスな「フィボナッチリトレースメント」の対応とします。

その他、「タイムゾーン、ファン、アーク、エキスパンション」は未対応です。

(もし要望があれば、作成しようと思います。)

フィボナッチリトレースメント

 

フィボナッチラインは何本引いても構いません。

フィボナッチラインをブレイクしたらアラートを出力します。

詳細部分は「FXチャートのラインブレイクを自動で通知する|無料EA第3弾」とほぼ同様のため、大枠のみの説明とさせていただきます。

 

プログラム作成

完成版のプログラムは最後に記載しますので、ポイントのみ説明していきます。

細かい話なので、プログラムの中身ににあまり興味が無い方は「こちらのページ」で「Download」ボタンをクリックして実行ファイルのみダウンロードしてください。

ダウンロードした方は、この章を飛ばして動作確認の章をご覧ください。

 

画面上のラインを取得する

ObjectsTotal()
画面上に表示されたライン(フィボナッチ以外も含む)を全て取得します。
if (ObjectType(ObjectName(i)) != OBJ_FIBO) continue;
今回はフィボナッチのみ対象なので、フィボナッチ以外の場合は処理しません。
fibo_line_total += (int) ObjectGet(ObjectName(i), OBJPROP_FIBOLEVELS);
通常のラインとは異なり、フィボナッチは1つの線で複数の値を取得できるのでその数の合計をカウントします。
例えば、[0], [23.6], [38.2], [50], [61.8], [100]のような設定値の合計個数が入っていて、この例では「6」が返ってきます。
ArrayResize(line_price_arr, fibo_line_total);
配列のサイズを変更しています。

この言語(MQL)では、箱のサイズを動的に変えるためにこのような処理をする必要があります。

通常の言語では、「箱.add()」や「箱.append()」で増やしていけるのですが、仕方がない部分です。


以下はだいぶ複雑になっていますので、大事な部分のみ記載します。

ObjectGet(ObjectName(i), OBJPROP_PRICE1);
フィボナッチ開始点の価格を取得します。
ObjectGet(ObjectName(i), OBJPROP_PRICE2);
フィボナッチ終了点の価格を取得します。
ObjectGet(ObjectName(i), OBJPROP_FIRSTLEVEL + j);
以下のようなフィボナッチのパーセンテージが入っています。
[0.0], [0.236], [0.318]….

 

通知

以下のプログラムで、簡単にプッシュ通知可能です。

※事前にMT4のプッシュ通知設定を行う必要がありますので、まだしていない方はこちらを見て設定してください。

 

プッシュ通知ではなくアラートにしたい方は、以下のように変更してください。

「//」部分を入れ替えるだけです。

変更前//Alert(“The price breaks the line.”);

SendNotification(“The price breaks the line.”);

変更後//Alert(“The price breaks the line.”);

//SendNotification(“The price breaks the line.”);

 

完成版

完成版はこちらになります。

プログラムの適用方法が分からない場合は、「最短でEAを作る(第2回)」を先にご確認ください。

 

動作確認

チャートにプログラムを適用する

作成またはダウンロードしたプログラムをチャートに適用してください。

やり方が分からない場合は、「こちら」をご参照ください。

 

検証

自分でフィボナッチのラインを引きます。

フィボナッチ適用

 

赤枠のブレイクを検知してアラートが出力されましたので、問題なさそうです。

※プッシュ通知はスマートフォンに飛んでしまい、スクリーンショットが取りづらいので今回はアラートで検証していますが、どちらでも機能します。

アラート出力確認

 

まとめ

いかがだったでしょうか。

フィボナッチをよく使われている方なら、チャートとにらめっこする時間が少し減ったのではないでしょうか。

そのままプログラムを使っていただいても構いませんが、少しいじればフィボナッチラインに達する手前でアラートを出すことも可能ですし、通知部分を注文送信にして自動売買することも可能なので、是非修正を加えながらご利用いただければと思います。

 

MT4/MT5の自動売買に興味がある方は、「メタトレーダー(MT4/MT5)で自動売買するための事前準備(第1回)」をご参照ください。