2018年7月27日金曜日

MetaTrader の EA から Android, iOS に通知を送る方法

EA を使った自動売買派でも、MetaTrader のモバイルアプリは便利に使えます。

特に通知機能。 注文が通った時など、EA の中から任意のタイミングでモバイル端末に通知を送る事が出来ます。 EA からメールを送信することも出来ますが、通知の方が速く届くことが多いです1

設定の仕方は以下の通り。

モバイルアプリをインストールする

まずはモバイルアプリをインストールします。例によって、MetaTrader 4 と 5 があるので注意しましょう。

MetaQuotes ID (MQID) を確認する (方法1)

モバイルアプリをインストールしたらチャットページを開き、MQID をクリックします。

Android アプリの場合は右下のアイコン&メニューバーのアイコンです。

MetaQuotes ID が表示されるので、これをメモします。

MetaQuotes ID (MQID) を確認する (方法2)

MetaQuotes ID は設定画面でも確認することが出来ます。

メニュー → 設定

メッセージ

余談ですが、デフォルトの通知音はメール等と一緒です。 この設定画面で変更できるので、変更しておくと分かりやすくて良いでしょう。

2013/8/8 追記

現在、通知音の設定が反映されない不具合があるようです。
[MT4] Android 版で Notification の音が変更できない | Strategy of C

MetaTrader に MetaQuotes ID を設定する

PC 版 MetaTrader を開いたら、MetaQuotes ID を設定します。

ツール → オプション

通知機能の MetaQuotes ID に先ほど確認した ID を入力します。

  • 「プッシュ通知機能を有効にする」のチェックを外すと、プッシュ通知されなくなります。一時的に無効にしたい場合などに使うとよいでしょう。
  • 「トレード処理を通知する」は EA を使う場合は外しておいた方がよいでしょう。意図しないタイミングでも通知が飛んでくることになり、混乱の元です。

「テスト」ボタンを押すと、テストメッセージが送られてきます。

もし、テストが届かない場合、ID が間違っている可能性があります。 ID が正しいのに届かない場合、ネットワークや PC の環境が影響している可能性がありますので、以下をお試しください。

  • 少し時間をおいてみる
  • 別の PC で試してみる

EA から通知を送る

EA から通知を送るには、SendNotification() を使用します。

1
2
3
4
string notification = StringFormat("Order Opened.\r\n\r\n%s\r\n%s",
            MQLInfoString(MQL_PROGRAM_NAME);
            OrderSymbol());
SendNotification(notification);

なお、送信メッセージの作成には、上記のように StringFormat() を使うと便利です。

私はプッシュ通知は必要最低限のメッセージだけ送るようにして、メールやログで残りの情報を補完するようにしています2

  1. 特に Build 1129 以降はプッシュ通知になった模様 
  2. 少し前まで、通知の一部が切れたりして見にくかったという事情もあります。今は直っていて見やすいですが、通知は短いほうが直感的にもわかりやすくて良いと思っています。 
?