Emailイメージ

ここでは、MetaTrader4のEAやインジケーターにメール発信機能を搭載する方法を解説します。

MT4でメール送信設定がまだの方は、記事【[MT4設定]メール機能の設定方法】を参考に設定してください。

記事【[MT4設定]メール機能の設定方法】へ

SendMail()関数を利用する

Dr.EADr.EA

今回解説するコードがこちらじゃぞい

   static int last_send_bar = 0; // 前回メール送信時のローソク足の数
   if (last_send_bar != Bars)    // ローソク足の数が更新した場合
   {
      // メールタイトル
      string subject = "SendMail Test";
      
      // メール本文
      string body = "【" + Symbol() + (string)Period() + "】\n";
      body += "ローソク足合計: " + (string)Bars + "本";
      
      SendMail(subject, body);   // メール送信
      
      last_send_bar = Bars;      // メール送信時のローソク足の数を代入
   }

上記のコードをEAのOnTick()関数内や、インジケーターのOnCalcutate()関数内に追加することで、例えばUSDJPYの1分足で実行するとローソク足が更新するたびに次のようなメールが送信されます。

件名:SendMail Test
本文:
【USDJPY1】
ローソク足合計: 201912本

SendMail()関数について

SendMail()関数について

SendMail()関数の()括弧内は次のように指定します。

SendMail(件名, メール本文)

件名
件名を文字列で指定します。日本語文字を使用すると文字化けする場合があるのでアルファベットを使用することをおすすめします。

メール本文
メール本文を文字列で指定します。改行には「\n」を使用します。

ストラテジーテスターでは、SendMail()関数は実行されません。

あとがき

ティック毎にSendMail()関数が実行されるような場合、メール送信キューがいっぱいになってエラーが発生するので、注意しましょう。
では、今回はこのへんで^^