MetaTraderからスマホに通知を送るには? スマホ版「MetaTrader」で試す
更新履歴:
2024/11/27:新規作成
2024/12/12:「はじめに」を修正
2025/08/21:
LINE Notifyのサービス終了に伴い記事を更新
利用規約を修正
サンプルソースコードを修正
2025/08/22:
サンプルソースコードのヘッダーコメントを修正
2025/09/02:
サンプルソースコードのヘッダーコメントを修正
MyNotifyライブラリのサブセット版ソースコードを追加
上記のソースコード追加に伴い、有料部分の価格を改定
はじめに
前回は「Discord」で試しましたが、今回はスマホ版MetaTraderに通知を送ります。ここでは「MetaTrader」は「MT」と記載します。「MT4」「MT5」のようにバージョンを付けることもあります。
PC版MTからスマホ版MTへの通知は、お互いMTなので、MetaTraderプラットフォームとしては王道の方法なのかもしれません。
LINEやDiscordへの通知のときは、WebRequest関数を利用していたため、インジケーターからはメッセージを送信できませんでした。今回の方法では大丈夫です。SendNotificationという関数を利用します。
少し補足しておきます。MetaTraderは外部DLLの関数を呼び出すことができます。つまり「wininet.dll」から必要な関数を呼び出せば、WebRequest関数を使わずに同等の処理が可能です。この方法だと、LINEやDiscordでもインジケーターからメッセージを送信できます。
今回をもちまして、「MetaTraderからスマホに通知するには?」シリーズは終了とさせていただきます。
つきましては、本記事の一番下の有料部分に、過去の記事の内容を網羅した通知関数のサンプルソースコードをご用意いたしました。LINE Messaging API、Discord、スマホ版MTの3つのプラットフォームへのメッセージ送信に対応しておりますので、ご参考になれば幸いです。(LINE Notifyはサービスを終了しました。)
この度、「MetaTraderからスマホに通知するには?」シリーズに関連し、より高度な機能を有するMetaTraderライブラリに関する記事を別途公開いたしました。
これに伴い、本記事の有料部分では、公開ライブラリのサブセット版ソースコードをダウンロードいただけるようにいたしました。
MetaQuotes IDを介して通知
MetaTraderのプラットフォームでは、モバイルデバイスに「MetaQuotes ID」を付与してデバイスを識別します。MetaTraderは、このMetaQuotes IDを介して通知する機能を提供しています。
MetaQuotes ID は独自のユーザー ID で、モバイルデバイス上でMetaQuotes Software Corp.のサービスからのプッシュ通知やアプリケーションを受信可能にします。MetaQuotes ID はターミナルのモバイルバージョンをインストールするとユーザーに届けられます。
SendNotification関数は、MetaQuotes IDを持つモバイルデバイスにプッシュ通知することができます。MetaQuotes IDは、MetaTrader本体の設定で指定します。
事前準備
PC版MTとスマホ版MTが必要になります。予めアカウントを準備して、PCとスマホにインストールしてください。PC版MTをmacOSにインストールする方法は、こちらの記事を参考にしてください。
事前準備は、以下の2つになります。
通知先のスマホ版MTのMetaQuotes IDを調べる。
PC版MTでプッシュ通知機能を有効にして、通知先のMetaQuotes IDを指定する。
なお、MetaTraderは、「4」でも「5」でも構いません。異なったバージョン間でもプッシュ通知可能です。
MetaQuotes IDを調べる
Android版MT4を起動します。iPhone版での調べ方は、こちらを参考にしてください。

画面の右下の吹き出しをタップします。Android版MT5の場合は、画面の右下の「メッセージ」をタップします。

右上の「MQID」をタップします。

「MetaQuotes ID」が表示されます。これを控えておいてください。
PC版MTの設定
プッシュ通知機能を有効にして、通知先のMetaQuotes IDを指定します。
まず、PC版MT4を起動します。ここでは楽天MT4を使用しています。


「ツール」→「オブション」メニューをクリックします。

「通知機能」タブをクリックします。

「プッシュ通知機能を有効にする」にチェックします。MetaQuotes IDのフィールドに、控えておいたMetaQuotes IDを入力します。複数のMetaQuotes IDを指定するときは、カンマ区切り(「,」で区切って入力)です。

次に、指定したMetaQuotes IDで、スマホに通知が届くかどうかをテストします。「テスト」ボタンをクリックしてください。

通知が送信された旨のメッセージが表示されますので、スマホのMT4を確認します。

テストメッセージが届けば、指定したMetaQuotes IDは正しいです。PC版MT4のオプション画面で「OK」ボタンをクリックして終了します。
以上で事前準備は完了です。
PC版MTから送信
LINEやDiscordのときと同様に、EAからメッセージを送信します。以下のように、OnInit関数の中で、SendNotification関数を使って通知します。この関数の仕様はこちらです。文字列を引数に渡すだけのシンプルな関数です。
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit() {
// SendNotificationの実行
SendNotification("はじめての通知です。よろしく");
return INIT_SUCCEEDED;
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason) {
//---
}
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
//| Expert tick function |
//+------------------------------------------------------------------+
void OnTick() {
//---
}
//+------------------------------------------------------------------+但し、以下の注意事項があります。
SendNotification() 関数には厳格な使用制限が設定されており、呼び出しは毎秒 2 以下と毎分 10 以下に限られています。 使用頻度は動的に監視されます。制限違反の場合にはこの関数は無効にされることが出来ます。
では、EAを実行してみましょう。

スマホ版MTに通知は届いたでしょうか? 上のようにメッセージが届けば成功です。今回は、比較的簡単だったと思います。
お疲れ様でした。
最後に
ここまで読んでいただき、ありがとうございました。今回をもちまして、「MetaTraderからスマホに通知するには?」シリーズは終了とさせていただきます。
ソースコード
このソースコードは、『MetaTraderからスマホに通知するには?「LINE」で試す』で紹介したものをベースに改変したものです。前回の記事と今回の記事の内容を理解していれば、ご自身で同様の改変も可能かと思います。
主な変更点は以下の通りです。
メッセージ送信処理の関数化
エラー処理の追加
通知先および設定をEAのパラメーターで指定可能
メッセージの先頭にEA名とデモ口座利用の有無を付加する機能(デフォルト値はオフ)
また、送信するメッセージにエンコード処理を施しています。LINE Notifyの場合、URLエンコード処理が必要となるためです。Messaging APIの場合は、JSON形式に合わせて「\」「"」「\r」「\n」などのエスケープ処理しています。(LINE Notifyはサービスを終了しました。)
本ソースコードはMetaTrader4および5に対応しています。MetaTrader5でご利用の場合は、拡張子を「.mq5」に変更してください。MetaTrader4のみでご利用になる場合は、互換処理部分(「#ifdef __MQL5__」から「#endif」)を削除することで、コードを簡略化できます。
加えて、冒頭でもご案内いたしました通り、別途公開しております「MyNotifyライブラリ」のサブセット版ソースコードもダウンロードいただけます。詳細な利用方法につきましては、関連記事をご参照ください。
コンパイルして動作をご確認ください。ご参考になれば幸いです。
なお、本ソフトウェアのご利用にあたっては、以下の利用規約への同意が必要です。必ず記事を購入する前に、利用規約をご確認ください。記事の購入をもって、利用規約のすべてに同意したものとみなされます。
ここから先は
¥ 500
よろしければ応援お願いします!
