SendMail()関数|メールを送信

MetaTrader4(MT4)を使用して自動売買EAを開発する際、特定の条件が満たされたときにメールを送信する機能を追加することができます。この記事では、メールを送信する方法と、その使用例について解説します。初心者でも理解しやすいように、各ステップを詳しく説明します。

SendMail()関数|メールを送信する方法

MT4でメールを送信するには、SendMail()関数を使用します。なお、メールの利用には事前にMetaTrader4でメール送信用のSMTPサーバを登録しておく必要があります。

SendMail()関数の仕様
void SendMail(string subject, string some_text)
– subject:メールのタイトル
– some_text:メールの本文

この関数は戻り値を持ちません。メールの送信中にエラーが発生した場合は、GetLastError()関数を使用して詳細なエラー情報を取得することができます。

以下に、具体的なサンプルコードを示します。

サンプルコード
double last_close_price = Close[0];
double signal_value = 1.2000;  // ここはユーザーの条件に応じて変更
int start() {
    // 直近のクローズ価格が指定したシグナル値を下回った場合にメールを送信する
    if(last_close_price < signal_value) {
        string email_subject = “Notification from your expert";
        string email_message = “Price has dropped below " + DoubleToStr(last_close_price, Digits);
        SendMail(email_subject, email_message);
    }
}

実際の利用例

特定のトレード条件が満たされたときにメールでアラートを送信することで、リモートで状況を把握することができます。

トレードアラートの送信
double buy_signal_value = 1.1100;  // 買いシグナル価格
double sell_signal_value = 1.2000;  // 売りシグナル価格
int start() {
    double current_price = Close[0];
    // 現在の価格が買いシグナル価格を下回った場合にメールを送信
    if(current_price < buy_signal_value) {
        string email_subject = “Buy Signal Alert";
        string email_message = “Current price is below the buy signal: " + DoubleToStr(current_price, Digits);
        SendMail(email_subject, email_message);
    }
    // 現在の価格が売りシグナル価格を上回った場合にメールを送信
    if(current_price > sell_signal_value) {
        string email_subject = “Sell Signal Alert";
        string email_message = “Current price is above the sell signal: " + DoubleToStr(current_price, Digits);
        SendMail(email_subject, email_message);
    }
}

まとめ

MT4でのメール送信方法について解説しました。メールを活用することで、特定のトレード条件が満たされた際にリモートで通知を受け取ることができます。サンプルコードを参考に、自動売買EAの機能をさらに拡張してください。

MQL4

Posted by 佐川直弘