mql语言 Macd日线周线金叉死叉报警程序
时间: 2023-10-10 08:05:29 浏览: 192
报警程序
以下是MQL语言编写的MACD日线周线金叉死叉报警程序:
```
// 定义MACD指标变量
double macd, signal, hist;
// 定义金叉死叉变量
bool golden_cross, death_cross;
// 定义报警变量
bool alert;
// 定义时间变量
datetime last_alert_time;
// 初始化变量
golden_cross = false;
death_cross = false;
alert = false;
last_alert_time = 0;
// 定义日线和周线的EMA
double ema_day = iMA(NULL, PERIOD_D1, 12, 0, MODE_EMA, PRICE_CLOSE, 0);
double ema_week = iMA(NULL, PERIOD_W1, 12, 0, MODE_EMA, PRICE_CLOSE, 0);
// 计算MACD指标
macd = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
signal = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_SIGNAL, 0);
hist = iMACD(NULL, PERIOD_D1, 12, 26, 9, PRICE_CLOSE, MODE_HIST, 0);
// 判断金叉死叉条件
if (ema_day > ema_week && macd > signal && hist > 0) {
golden_cross = true;
} else if (ema_day < ema_week && macd < signal && hist < 0) {
death_cross = true;
}
// 判断是否需要报警
if (golden_cross || death_cross) {
if (last_alert_time == 0 || TimeCurrent() - last_alert_time > 3600) {
alert = true;
last_alert_time = TimeCurrent();
}
}
// 发送邮件报警
if (alert) {
SendMail("金叉死叉报警", "日线和周线出现金叉死叉。");
}
```
以上代码会计算日线和周线的EMA和MACD指标,并判断金叉死叉条件。如果出现金叉死叉,且距上一次报警已经过了1小时以上,就会发送邮件报警。您可以根据需要进行修改和完善。
阅读全文