見出し画像

【MQL】LINE・Discordへ通知するEA・クラスのソースコード Ver2(チャート画像を通知)

ご閲覧頂きありがとうございます。

今回、FXでお馴染みのMT4を使ってDiscord、Lineへチャート画像を通知できるEAを作成しましたので紹介します。【ソースコードは有料】

※前に作成した記事『【MQL】LINE・Discordへ通知するEA・クラスのソースコード(自作EAに組込み可能)』の機能強化版です。

この記事の対象は自作EAなど開発しており、通知部分を追加で実装したいような方が対象となります。MT4からDiscordへの通知部分などはweb情報も少ないため参考にして頂ければ幸いです。

【2020/9/26追記】
チャート画像をLINEやDiscordへ送る処理は『curl』と呼ばれるプログラムを利用しています。curl は Windows10 RS4以降(バージョン1803) に標準搭載されていますが、他Windows関連のOS(Windows Server 2012 etc)には無い場合があります。その場合は、curlを扱えるように設定する必要がありますのでご承知おきください。 ※curl を扱う設定方法は目次 2.④ に追記

1.EAの機能

このEAは定期時刻に、LINEもしくはDiscordへ通知を行います。

機能は下記となります。

・定期時刻になったタイミングで、
・設定した通知タイプ(LINE or Discord)に、
・残高と有効証拠金を通知
【新規機能】チャート画像を通知

画像1
画像2

2.通知の事前準備

事前に行っておくことは大きく3つあります。
 ①LINEのAPIトークン発行(LINEを使う場合)
 ②DiscordのWebhook URL発行(Discordを使う場合)
 ③MT4の通知許可を設定
 ④curl コマンドを利用可能にする設定 ※2020/9/26追記

《2.①.LINEのAPIトークン発行(LINEを使う場合)》
下記などを参考にし、トークン発行まで進めてください。

《2.②.DiscordのWebhook URL発行(Discordを使う場合)》
下記などを参考にし、Webhook発行まで進めてください。

《2.③.MT4の通知許可を設定》
MT4ではWebへのリクエストを送信できるURLを指定する必要があります。また、今回チャート画像を通知するためにDLL(外部プログラム)を使用していますので、DLLの使用も許可します。

まずMT4を立ち上げて、メニューバーから「ツール」→「オプション」→「エキスパートアドバイザ」の画面を開きます。

その画面にて、下記の2つを設定します。
(1)『DLLの使用を許可する』に✓
(2)『WebRequestを許可するURLリスト』に✓+リクエスト送信先URLを追加

画像3

追加するURLは下記となります。
LINE → https://notify-api.line.me/api/notify
Discord → 発行したWebhook URL(※) 

※(DiscordのURLについて補足)
上記画像の例のように全てのURLが必要というわけではなく、Webhook URLの前半部分(上位)のみ登録しておくだけでもOKです。
 例)https://discord.com/api/webhooks ←これだけでもOK

《2.④.curl コマンドを利用可能にする設定》 ※2020/9/26追記
LINEやDisocrodへチャート画像を送る処理には curl と呼ばれるプログラムを利用しています。Windows10 RS4以降(バージョン1803) には標準搭載されていますが、その他OSでは使用できない場合がありますので、お使いのPCにて curl を利用可能か確認した上で必要であれば curl を扱えるように設定して下さい。

 --- curl が利用可能か確認する方法 ---
 1. PCのコマンドプロンプトを起動
 2. curl --help とタイプしてエンター
 3. 下記のように curl コマンドのヘルプ情報が表示されればOK
  (この場合は、 curl が利用可能なので問題ありません)

画像6

 --- curl が利用できない場合 ---
 下記などを参考にして、お使いのPCが curl を扱えるよう設定して下さい

3.プログラムの全体像

今回のプログラムに関する全体像は下記となります。

画像5

チャート画像をLINE・Discordへ通知する方法はMQL単体だと上手くいかなかったため、別プログラム(bat)ファイルを通して処理させています。

パッケージ構成は下記となります。

MQL4
|-Experts
|    |-MonitoringLD2.mq4 -> EA
|
|-Files
|    |-upload_image_file_line.bat -> LINEへ画像をアップするバッチファイル
|    |-upload_image_file_discord.bat -> Discordへ画像をアップするバッチファイル
|
|-Include
|  |-Original
|      |-Notification
|          |-NotificationLD2.mqh -> 通知クラス

画像をアップする bat ファイルの置き場所はどこでも良かったのですが、チャート画像が保存される上記『Files』フォルダの直下に保管するようにしました。

※参考までですが、『Files』フォルダにはMQLのChartScreenShot関数で抽出されるチャート画像ファイルが保存されます。

4.ソースコード【有料】

ここから有料記事となります。

ここから先は

14,296字 / 1画像 / 1ファイル

¥ 700

期間限定 PayPay支払いすると抽選でお得に!

この記事が気に入ったらサポートをしてみませんか?