
MT4のスマホ通知を何とかしたい
MT4での取引はスマホアプリ版のMT4で通知を受け取ることができますが、受ける通知の種類を選ぶことができず、すべての取引の通知が飛んできます。
Triple ScalperはポジションのTP(Take Profit:利確ポイント)を頻繁に書き替えるのでその度に大量の通知がスマホに流れ込んできます。
スマホで通知して欲しいのは決済のタイミングと結果利益がいくら出たかと、証拠金が危なくなってきた時ぐらいです。
もしかしたらすでにそんなインジケータやEAがあるのかもしれませんが、ちょっと探しても希望のものが見つからなかったため、自分で作ってみることにしました。
MT4のプログラミング自体は僕自身はできるんですが(元々FXを始めたのはインジケータの作成を依頼されたため)、ゼロから組み立てるのも面倒だし、生成AIを使ってどれくらいのものが作成できるのか興味があったので、今回はGoogleの生成AI「Gemini 2.5 Pro」を使ってインジケータを(会社で契約してるGoogleをこっそり使って)作成してみました。
まずは生成してみる
EAもインジケータもどちらとしても作成できますが、EAは一つの画面に2つは同居できないため、通知だけならEAと同居できるインジケータの方で作成することにしました。
AIに入力するプロンプトもまずは簡単なところからスタートします。
以下の仕様のMT4のインジケータを作成してください。
・証拠金維持率が指定以下になったらスマホ版MT4へ通知
・口座残高が増減した場合スマホ版MT4へ通知
・指定できるパラメーターは次のとおり
- アラートを出す証拠金維持率(%)
出力結果は省略しますが、あっという間にすでに動作しそうなMQLが出力されました。
本当にスゴい時代になりました。5年ぐらい前に一生懸命EAを組み立ててたのが何だか馬鹿らしくなります。
何の指示もしてませんが、証拠金維持率のアラートに関しては2度送信しないような措置や稼働状況を画面に表示するという気の利いた処理まで生成されています。
MetaEdtiorを開き出力をコピペして[コンパイル]ボタンでコンパイルするとエラーが出ました。
OnTick function declared with wrong type or/and parameters
OnCalculate function not found in custom indicator
'AccountPositionsTotal' - function not defined
実は以前も生成AIでの作成は試したことがあったんですが、その時は結構動作しないコード(MQL5と混同したり、古い関数の呼び出し方を出力してエラーになる)で何回か問答して修正しました。
今回はエラーメッセージをそのままGeminiに入力します。
ご指摘ありがとうございます。大変失礼いたしました。
以下がエラーを修正した完全なコードです。お手数ですが、再度こちらのコードをコピーしてコンパイルをお試しください。
さっそく動かして検証です。
デモ口座で決済するとちゃんとスマホに通知が来ました!

動作調整する
ただ気に入らない部分がいくつかあるので調整を行います。
・証拠金維持率が200%がデフォルトなので150%にしたい
・稼働中メッセージ表示位置が左上でEAの表示と被って見にくい、右下にして欲しい
・変動の金額にカンマがなくて見にくい&小数点いらない
・残高だけでなく変動した額も知りたい
ということで、上記の修正を依頼します。
はい、承知いたしました。
ご依頼いただいた4点の修正を反映した新しいバージョンのコードを作成しました。
スマホへの通知は良くなりましたが、稼働中メッセージがちゃんと表示されません。
改行して表示しようとしてますが実際には改行されず、また表示位置が右に寄りすぎてはみ出してしまっているのとフォント指定がなく文字化けしているようです。
どうせなら表示位置、フォントサイズ、色はプロパティで調整できるようにしましょう。
はい、承知いたしました。
ステータス表示のフォントサイズ、色、表示位置をインジケータのプロパティ画面から簡単に変更できるように修正します。また、デフォルトの色はより目立つようにオレンジ色に変更しました。
完成
というわけで、数回のやり取りを経てインジケータが完成しました。


時間としては一時間程度、本当に便利な時代になりました。
今回はインジケータでしたが、ロジックさえ決まればEAの開発も十分に可能と感じました。
機会があれば今回作成したインジケータを公開したいと思います(はてなブログではファイル共有の機能がないのでちょっと考えないといけませんが)。