保持敬畏之心
交易是一场持久战

MQL4(48):配置EA的邮件发送功能

EA可以配置为在发生特定事件时(例如,成功下单、出现交易信号、达到止损/止盈等)通过电子邮件向您发送通知。这可以通过 MQL4内置的 SendMail() 函数来实现。

1. 配置 MetaTrader 的邮件发送功能: 在使用 SendMail() 函数之前,必须在 MetaTrader 客户端中正确配置邮件发送参数:

  • 打开 MetaTrader 终端。
  • 点击菜单栏的“工具” -> “选项”。
  • 在弹出的“选项”对话框中,选择“邮件”选项卡。
  • 关键配置项:
    • 启用: 必须勾选此复选框才能激活邮件发送功能。
    • SMTP 服务器: 填入您的邮件服务提供商的 SMTP 服务器地址和端口号,格式为 服务器地址:端口号(例如:smtp.yourdomain.com:25smtp.gmail.com:465 如果使用SSL)。
    • SMTP 登录账号: 您的邮箱用户名(通常是完整的邮箱地址)。
    • SMTP 密码: 您的邮箱密码或授权码(某些邮箱如Gmail可能需要应用专用密码)。
    • 发件人: 您希望邮件显示的发件人邮箱地址和名称(例如 My EA <my_ea_notifications@example.com>)。
    • 收件人: 您希望接收这些邮件提醒的邮箱地址。
  • 获取信息: SMTP 服务器地址、端口、是否需要SSL以及登录凭据等信息,通常需要向您的电子邮件服务提供商或虚拟主机提供商查询。
  • 测试: 配置完成后,可以使用该对话框中的“测试 (Test)”按钮来发送一封测试邮件,以验证设置是否正确。 (下图 – “工具 – 选项”对话框中的“邮件”设置界面图示)

2. SendMail() 函数的使用:

SendMail() 函数接收两个字符串参数:

bool SendMail(string subject, string some_text); 
  • subject: 邮件的主题行。
  • some_text: 邮件的正文内容。正文中可以使用换行符 (\n)、之前讨论过的转义字符,并且可以动态地将变量(需先转换为字符串)和常量拼接进去,以构建包含具体信息的邮件。

示例代码:

// 假设以下变量已在您的 EA 中定义并赋值:
// int    orderTicket = OrderTicket(); // 假设已获取订单号
// string orderSymbol = Symbol();
// double orderPrice  = Ask; // 或 Bid, 或 OrderOpenPrice()

string emailSubject = "EA 交易提醒: 新买单已下达";
string emailBody = StringFormat(
    "品种: %s\n" +
    "订单类型: 买入\n" +
    "订单号: %d\n" +
    "开仓价格: %.5f\n" +
    "时间: %s",
    orderSymbol,
    orderTicket,
    orderPrice,
    TimeToStr(TimeCurrent(), TIME_DATE|TIME_MINUTES) // 当前服务器时间
);

// 发送邮件
bool mailSent = SendMail(emailSubject, emailBody);
if (mailSent) { // MQL5
    Print("交易提醒邮件已成功发送。");
} else { // MQL5 or if using MQL4 check GetLastError() if it had issues
    Print("发送交易提醒邮件失败。请检查终端的邮件设置和日志。");
}

在这个例子中,当一个买单被下达后,EA 会尝试发送一封包含订单基本信息的邮件。通过合理使用邮件提醒,您可以即使不在电脑旁也能及时了解到EA的重要运行状态和交易活动。

赞(0)
未经允许不得转载:图道交易 » MQL4(48):配置EA的邮件发送功能
分享到