【無料配布】サインを感知してディスコードに画像&プッシュ通知送るインジケーター
MT5には様々なインジケーターが無料配布されていますが、「ディスコードへの画像送信」や「プッシュ通知」機能が無いものが大半です。
多くのインジケーター(サインツール)は「アラート」機能はあるですが、アラート機能だけの場合外出中にチャンスを逃す恐れがあります。
外出中にチャンスを逃さない様にするには、プッシュ通知やディスコードへの画像送信機能が必要になります。
そこで、今配布されているインジケーターのサインを感知して「ディスコードへの画像送信」や「プッシュ通知」ができるインジケーター(discord-search)を作成しました。
discord-searchはMT5専用のインジケーターになります。MT4/MT5のダウンロード方法や、インジケーターの導入方法は関連記事をご確認下さい。


※二次配布や販売、自作発言は禁止です。
※本ツールによる損害の責任は負いかねます。
※学習用としてご活用下さい。
【要確認】discord-searchを導入する前に
discord-searchは導入までの流れを理解しないと使う事が出来ないので、必ず最後まで内容をご確認下さい。
配布されているインジケーターはブラックボックス
ブラックボックス
無料配布されているサインツールは基本的にex5ファイルになっていますので、中身を確認する事ができません。
そのため、正確に矢印だけを判定することは不可能と言えます。
【重要】サインの種類を確認する
サインツールで表示されるサインは「バッファ型」か「オブジェクト型」に分かれます。これは、プログラムの話になるので「バッファ型」か「オブジェクト型」があるという事だけ覚えて下さい。
discord-searchを使う際に重要になります。
まずば、「バッファ型」か「オブジェクト型」どちらかを確認します。
バッファ型のサイン

インジケーターの中身はブラックボックスなのですが、「表示」⇒「データウィンドウ」を開くと、バッファで何が作られているのかが分かります。
データウィンドウを開くと
・Date
・Time
・Open
・High
・Low
・Close
・Volume
・Tick Volume
・Spread
と続きます。
これらはローソク足の情報になるので「Date」~「Spread」は無視します。
重要なのはSpred以降のデータになります。Spread以降はバッファ型のサインなどを追加した時に表示されます。

例えば画像の様な場合、Spread以降に、「Hanpatu_Sign_UP」「Hanpatu_Sign_Dn」が書かれています。
この場合、「Hanpatu_Sign_UP」「Hanpatu_Sign_Dn」がバッファのサイン情報になります。
番号はSpread以降を「0番目」として数えます。
そのため、「Hanpatu_Sign_UP」が0番目、「Hanpatu_Sign_Dn」が1番目のバッファになります。
サインの名前はプログラマーが決めているので、上矢印を「UpArrow」と書く人もいれば「Hanpatu_Sign_UP」や「Hanpatu_Sign_Dn」と書く人もいると思います。
そのため、ある程度名前から予想する事になります。
もしくは、サインが出ている足にカーソルを合わせ、サイン(UpArrow)に値が入っているかを確認します。
次に、サインが出ていない足にカーソルを合わせて、サイン(UpArrow)に値が入っていなければサインである根拠となります。

Spread以降に表示されているバッファの数を確認します。
サインが2つだけの場合は、「0番目」と「1番目」が必要な番号になります。

例えば「Hanpatu_Sign_UP」や「Hanpatu_Sign_Dn」の場合、どちらがどちらなのかはっきりさせたい場合は、サインがでている足にカーソルを合わせます。
この場合「Hanpatu_Sign_Dn」がに値が表示されるので、ピンクのサインが「Hanpatu_Sign_Dn」となります。

discord-searchはデフォルトではバッファの番号を見ていないので通知は来ません。

通知が欲しいサインバッファの番号が「0番」の場合は、サインバッファ番号(BUYなど)に0を設定します。
サインバッファ番号(BUYなど)の値をダブルクリックすると、プルダウンが表示されて0~20までの数字が選べるので0を選択します。

サインが2つある場合は、サイン2のバッファ番号(SELLなど)も設定します。
【注意】バッファはサインだけではない
バッファで作られるものはサインだけではありません。移動平均線やボリンジャーバンドのラインもバッファで作られます。

例えば移動平均線を使ったインジケーター(GMMAのような12本使ったもの)の場合、移動平均線もバッファで作られる事が多いのでSpread以降に移動平均線の情報も出てきます。
このような場合、サインが「0番目」や「1番目」とは限りません。
そのため、サインが何番目にあるのかを数える必要が出てきます。今回の場合は12番目に通知して欲しいサインがあります。

通知して欲しいサインの番号をプルダウンより選択します。
※基本的に20個以上バッファを使っているサインツールは無いのですが、サインが20番目以降の場合は対応できないのでご了承下さい。
サインが一つの場合は「サイン1のバッファ番号」を12にして、「サイン2のバッファ番号」は未設定のままにします。
オブジェクト型のサイン

オブジェクト型のサインでインジケーターを作った場合、チャート上にサインがでていてもSpread以降になにも表示されません。
その為、オブジェクト型で作られていた場合、どれが上サインか、どれが下サインかなど細かく把握する事はできません。
オブジェクト型の場合は、チャート上にオブジェクト(サインなど)が追加されたら通知を行うことで、対応する事が出来ます。
番号など見る必要はないのですが、全てのオブジェクトを検知しますので「サイン+勝敗マーク」で作られていた場合、サインだけでなく勝敗マークが出た際も通知が届きます。
オブジェクト型のサインの設定方法は

バッファをみないので「サインバッファの番号(BUYなど)」と「サインバッファの番号(SELLなど)」を未設定にして、「オブジェクトサインも判定する」をtrueに設定します。
これで全てのオブジェクトに反応して通知が届く様になります。
※かなり例外なのですが、移動平均線などをオブジェクトで作られている場合は足が出来るたびに通知が届きます。
【重要】分かりにくいケースがある

分かりにくい代表は「移動平均線やボリンジャーバンドの線はバッファ」、「サインはオブジェクト」で作っているケースです。
画像の場合「ボリンジャーバンド」と「バンドにタッチした際のサイン(ダイヤ型)」と「買いサイン・売りサイン(矢印)」が表示されています
Spread以降に「ボリバン上」「ボリバン下」と表示されています。
この「ボリバン上」「ボリバン下」は常に値が入っているので、サインではなくボリンジャーバンドの上バンドと下バンドである事が分かります。
即ち、「ボリバン上」「ボリバン下」はボリンジャーバンドであり、バッファで作られていることが分かります。
「バンドにタッチした際のサイン(ダイヤ型)」と「買いサイン・売りサイン(矢印)」に関しては、Spread以降にそれらしき情報が無いのでオブジェクトで作られている可能性が高まります。

このような場合は、バッファは見ないので「サイン1のバッファ番号」と「サイン2のバッファ番号」を未設定にします。
そして、「オブジェクトサインも判定する」をtrueにすることで、「バンドにタッチした際のサイン(ダイヤ型)」と「買いサイン・売りサイン(矢印)」のサインがでた際に通知を送る事が可能になります。
discord-searchの導入手順

まずは、監視対象にしたいサインツールを起動させます。
※監視対象インジケーターを先に起動させて下さい。先にdiscord-searchを起動させると監視対象が分からないのでエラーが出ます。

次に「表示」⇒「データウィンドウ」よりデータウィンドウを表示させます。

データウィンドウより「バッファ型のサイン」か「オブジェクト型のサイン」か判断します。
今回の場合は、Spredの下に「Hanpatu_Sign_Up」「Hanpatu_Sign_Dn」があり、サイン用のバッファが2つある事が分かります。
順番はSpreadの下から0番目、1番目と数えますので、「Hanpatu_Sign_Up」=0番目、「Hanpatu_Sign_Dn」=1番目となります。

次にdiscord-searchを起動させます。
起動後に表示される画面の「仕様」タブの中にある「DLL使用を許可する」にチェックを入れます。
ディスコードへの画像送信はDLLの使用が必要となります。注意点が2つありますので、必ずご確認下さい。

まずは、インジケーターを立ち上げた際に出てくる画面の「仕様」タブが重要になります。
仕様タブ内にある「DLLの使用許可する」にチェックを入れないと、インジケーター自体を立ち上げる事が出来ないの必ず「DLLの使用許可する」にチェックを入れて下さい。

インジケーターを立ち上げて、「Discord」ボタンをオンにした際に「DLLの使用を許可されていないため」のエラーが出た場合、インジケーター立ち上げ時の「DLLの使用許可する」にチェックとは別の問題がまだ残っています。

「Discord」ボタンをオンにした際に「DLLの使用を許可されていないため」のエラーが出た場合は、ツール⇒オプションを選びます。

オプション内の「エキスパートアドバイザ」より「DLLの使用を許可する」にチェックを入れて下さい。
チェックが入っていないと、「Discord」ボタンをオンにした際に「DLLの使用を許可されていないため」のエラーが発生します。

次にインプットタブを開き、バッファ番号を選択します。今回はバッファ型のサインのため、先ほど覚えておいたバッファの番号をを設定します。
サイン1のバッファ番号(BUYなど)に0を、サイン2のバッファ番号(SELLなど)に1をプルダウンより選択します。
今回はバッファのみ必要なので「オブジェクトサインも判定する」はfalseのままにします。
※サインがオブジェクト型の場合は、サイン1のバッファ番号(BUYなど)、サイン2のバッファ番号(SELLなど)を未設定に、「オブジェクトサインも判定する」をtrueにします。
ボタンの配置も場合によっては変更しておきましょう。

※ディスコードに画像を送る場合はWebhook URLの入力も必要になります。
ウェブフックURLに関しては動画をご確認下さい。

discord-searchを起動するとボタンが表示されます。
ボタンは緑色の状態がオンで、白色の状態がオフになります。
OPENボタン:オフ(白色)にするとOPEN以外のボタンをすべて非表示にすることが出来ます。
Alertボタン:オン(緑色)にするとサインがでた際にアラートが鳴ります。
Pushボタン:オン(緑色)にするとサインがでた際にプッシュ通知を送ります。
Discordボタン:オン(緑色)にするとサインがでた際にディスコードにスクショ画像を送ります。
Data-Wボタン:Data-Wボタンを押すとデータウィンドウの表示非表示を行います。
discord-searchはMT5専用のインジケーターになります。MT4/MT5のダウンロード方法や、インジケーターの導入方法は関連記事をご確認下さい。


※二次配布や販売、自作発言は禁止です。
※本ツールによる損害の責任は負いかねます。
※学習用としてご活用下さい。
バッファ型のサインとオブジェクト型のサインについて
バッファ型のサインの方が多い
バッファ型のサインとオブジェクト型のサインどちらが多いのかと言えば「バッファ型のサインの方が多い」と思います。
理由としてはバッファ型のサインの方が重くなりにくいからです。
そのような理由もありバッファ型のサインを使う事がおおいので、まずはバッファ型のサインを疑ってみた方がよいと思います。
特殊なマークはオブジェクト型を疑え
バッファ型のサインは動作が軽いメリットがありますが、サインの種類(矢印マーク)が少ないのが欠点と言えます。
オブジェクト型のサインは重たいというデメリットがありますが、独自のマークを表示させることが出来ます。
もし、サインのマークが特殊なものであればバッファ型のサインを疑った方が良いでしょう。


コメントをお待ちしています このようなインジケーターが欲しい、配布されているものに不具合があるなど、可能な限り対応させて頂きます。
無料で使わせて頂きありがとうございます。
discord-searchで一点だけ質問があります。
稀なのですが、移動平均線やサインなどが全て表示されないまま画像が送られてきます。
原因が分かれば対応して頂けると助かります。
コメントありがとうございます。
discord-search は、監視対象のインジケーターでサインを検知した際に、スクリーンショットを撮影するシンプルな仕組みになっております。
そのため、監視対象インジケーターのサインを消すような処理は行っておりません。
また、前提として監視対象のインジケーターはブラックボックスのため、内部の動作までは把握できません。
インジケーターによっては、移動平均線やサインが頻繁に書き直される場合があります。
そのため、書き直しのタイミングでスクリーンショットが撮影されると、移動平均線やサインが表示されていない状態で保存されることがあります。
こうした状況に少しでも対応しやすくするため、「Safety」ボタンを追加いたしました。
「Safety」をオンにしていただくと、サイン検知後にスクリーンショットを3回撮影するようになります。
※3回送信されることで見逃しを防ぎやすくなる一方、少し多く感じられるかもしれません。
3回連続でサインがでない確率はかなり低いのですが、もしそのような現象が起きた際はご連絡頂けると助かります。