MT4

MT4のEAが約定したさいにメール送信させる方法

MT4のEAが約定したさいにメール送信させる方法

MetaTrader 4(以下、MT4)は、世界中のトレーダーによって広く使用されている人気のある取引プラットフォームです。MT4では、自動取引を行うための専用のプログラムであるエキスパートアドバイザー(EA)を活用することができます。EAを使用することで、特定の条件が満たされた時に自動的に取引を行ったり、通知を送ったりすることが可能です。この記事では、MT4のEAが約定した際に自動でメールを送信する方法について解説します。

1. MT4のメール設定の確認
まず最初に、MT4がメール送信機能を使用するために必要な設定を確認しましょう。MT4でメールを送信するには、以下の手順が必要です。

・メール設定の有効化: MT4の設定画面で、ツール -> オプションを選択します。そこで、「Eメール」タブをクリックし、メール送信を有効にします。SMTPサーバーの設定もこの画面で行います。

・SMTPサーバーの設定: メールを送信するためには、SMTPサーバーの設定が必要です。一般的には、自分のメールサービス(例: Gmail)のSMTPサーバーを使用することができます。SMTPサーバーのアドレス、ポート番号、ログイン情報(ユーザー名とパスワード)を設定します。

2. EAのコードにメール送信機能を組み込む
次に、EAのコードにメール送信機能を組み込みます。EAのプログラムは、MetaEditorを使用して開くことができます。以下は、EAが約定した時にメールを送信するための基本的なコード例です。

// メール送信関数の定義
void SendMail(string subject, string body) {
    string to = "your_email@example.com";  // 送信先のメールアドレス
    string from = "your_mt4_account@example.com";  // 送信元のメールアドレス
    string server = "smtp.example.com";  // SMTPサーバーのアドレス
    int port = 25;  // SMTPサーバーのポート番号

    // メールの送信
    int result = SendMail(from, to, subject, body, server, port, "", "");
    if (result < 0) {
        Print("メールの送信に失敗しました。エラーコード: ", result);
    } else {
        Print("メールを送信しました。");
    }
}

// オーダー約定時の処理
void OnTrade() {
    for (int i = OrdersTotal() - 1; i >= 0; i--) {
        if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
            if (OrderType() == OP_BUY || OrderType() == OP_SELL) {
                string symbol = OrderSymbol();
                double lots = OrderLots();
                double price = OrderOpenPrice();
                string direction = (OrderType() == OP_BUY) ? "Buy" : "Sell";
                string subject = "Order Executed - " + symbol + " " + direction;
                string body = "Order executed for " + lots + " lots at " + price;
                SendMail(subject, body);  // メール送信
                break;
            }
        }
    }
}

3. EAのインストールと設定
最後に、完成したEAをMT4にインストールし、設定します。

・EAのインストール: MetaEditorでコンパイルし、MT4の「ナビゲーター」ウィンドウからEAをドラッグ&ドロップしてチャートに配置します。

・EAの設定: EAのプロパティでメール送信の設定を行います。メールの送信に必要な情報(SMTPサーバー、送信元・送信先のメールアドレス)を入力します。

以上の手順を踏むことで、MT4のEAが約定した際に自動でメールを送信することができます。これにより、トレードの約定をリアルタイムで把握し、迅速に反応することが可能となります。