メタトレーダー(MT4/MT5)の約定通知をLINEに送る

2018年10月19日

スマートフォン画面

MT4/MT5の約定をスマホで確認する方法はいくつかありますが、今回はLINEに通知する方法をご紹介します。

なぜわざわざLINEに通知するのか?

MT4/MT5でメジャーな通知方法として以下2点があげられます。

  • PC側のMT4/MT5でプッシュ通知の設定を行い、スマホ側のMT4/MT5で通知を受け取る
  • PC側のMT4/MT5でメール通知の設定を行い、スマホ側のメールで確認する

どちらも設定は簡単ですが、何故LINEの話が出てきたのでしょうか?

スマホのMT4/MT5が頻繁に落ちる

もしかしたら私だけの話かもしれませんが、スマホのMT4/MT5を開くと頻繁に落ちます。

また、認証を何度通しても頻繁にログイン画面が出てきて、確認するのに手間がかかります。

通知が多い時はほぼ確認が不可能なので、諦めてPCで直接確認しています。

リアルタイムで受け取る必要性を感じなかった

例えば3時に4つのEAがエントリーした場合、4回通知が来ます。

EAを沢山動かしていると、複数が同じ時間にエントリーすのはよくあることです。

また、トレーリングストップを搭載しているEAでは数分の間に数十回もの通知が来ることもあります。

好みによりますが、10分に1回程度確認して、約定があればまとめて1回で通知してくれれば十分です。

通知が見づらい

用途にもよりますが、私はポジションのOpenとCloseが分かれば問題ないので、Modifyの情報が不要です。

さらに、TP値やSL値も特に把握する必要がないので不要です。

自分で作れば自由にカスタマイズできるので、不要な情報を排除して見やすい通知を考えたいと思います。

見やすければどんな通知でもよい

結論としては、特にLINEである必要はなく見やすければ何でも良いと思います。LINEのほうが配色的に見やすいかなと思った程度です。

作成方針の検討

MQLで書くべきか?

少し悩んだのですが、今回はMQLでは書かないことにしました。

そう考えた理由は以下です。

  • MQLは、基本的にMT4/MT5のチャートのような時系列データを扱うために使いたい
  • チャートにドラッグして動かす形式が今回の用途に合わない
  • Tick毎に送信されるようなミスは迷惑になるため絶対したくない
  • 複数のMT4/MT5の通知を1つのプログラムで書きたい
  • LINE通知を組み込むのが他の言語のほうが効率的

そこで、今回はPythonで書こうと思います。

※MQLでLINE通知をしたい方は、「MQLでLINEにでも何にでも通知できるクラスを作成する|MQL入門(13回目)」をご確認ください。

どのような処理が必要か?

取引の結果は、MT4/MT5の操作履歴タブに表示されます。

操作履歴タブは、単純にYYYYMMDD.logを参照しているだけなので、そのログファイルを直接参照して処理をしていこうと思います。

ざっくり書くと、最低限以下のような処理が必要です。

  1. 10分に1回動くループ
  2. 処理対象フォルダ分ループ(各証券会社分)
  3. 処理対象フォルダの選択
  4. ファイルを開いて出力対象行を選択
  5. LINE通知

通知のイメージ

現在

[Entry時]
order opened #8930102 buy 0.xx USDJPY.oj5k at 112.520 sl: 111.909 tp: 112.609, Scal_USDJPY

[Exit時]
order #8930102 buy 0.xx USDJPY.oj5k at 112.520 closed due take-profit at price 112.609, profit: 3 560 JPY

修正後

[Entry時]
証券会社名
EA名
opend #8930102 buy 0.xx

[Exit時]
証券会社名
Profit
closed #8930102

このような見た目になってくれればとても嬉しいです。

事前準備

MT4/MT5のプッシュ通知設定

今回は楽をするためにMT4/MT5のプッシュ通知設定はONのままとします。

ONの場合は、操作履歴にNotificationという通知用メッセージが出力されるので、それを利用します。

スマホ側は通知は裏で受け取り、ポップアップは出さないように変更しました。

プッシュ通知をONにする方法は、こちらをご参照いただければと思います。

LINEのトークン取得

LINEのトークン取得方法は以下に詳しくまとめられていましたので、そちらをご参照ください。

トークン名は「MT4/MT5」等、分かりやすいものにしましょう。

[超簡単]LINE notify を使ってみる

プログラムを書いて実行

想定していたよりもプログラムが汚くなってしまいましたので、必要な部分のみ参考にしていただければと思います。

[設定ファイル]

[プログラム本体]

通知は以下画面のように思った通りにできましたので、実現自体は問題なくできるかと思います。

LINE通知画面

実際は、Pythonで書いたプログラムをEXEファイルに変換して、そのEXEを実行しました。

結論

問題なくLINEへの通知ができ、さらに見やすく表示されました。

ただ、まだ考慮したい点も多々あり完成まではもう少しかかりそうです。

そう考えると「少し不便でもプッシュ通知で我慢しよう。そうしよう。」という結論に至りました。

LINEへの通知は以下でもやっていますので、興味のある方はご参照ください。

ゴゴジャン(FXON)のフォワード状況をLINEに通知する

MQLでLINEにでも何にでも通知できるクラスを作成する|MQL入門(13回目)