【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)に、
・残高と有効証拠金を通知
・【新規機能】チャート画像を通知
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を追加
追加する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 が利用可能なので問題ありません)
--- curl が利用できない場合 ---
下記などを参考にして、お使いのPCが curl を扱えるよう設定して下さい
3.プログラムの全体像
今回のプログラムに関する全体像は下記となります。
チャート画像を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.ソースコード【有料】
ここから有料記事となります。
ここから先は
¥ 700
この記事が気に入ったらサポートをしてみませんか?