Waddah_Attar_Trend_Alert - MetaTrader 5脚本



真实作者:工程师。瓦达·阿塔尔
Waddah_Attar_趋势指示器具有警报、电子邮件和推送通知功能。
为了实现警报、电子邮件消息和推送通知,对指标代码进行了以下更改:
//---- 警报输入 输入 单位条数=1; //信号的柱数 输入 布尔值声音开启=真的; //启用警报 输入 单位警报数量=2; //警报数量 输入 布尔值电子邮件开启=错误的; //启用邮寄信号 输入 布尔值按下=错误的; //启用向移动设备发送信号
//+------------------------------------------------------------------+
//|购买信号功能 |
//+------------------------------------------------------------------+
空白买入信号(细绳信号先生姓名,// 电子邮件和推送消息的指标名称文本
双倍的&颜色数组[],// 颜色索引缓冲区
整数颜色指数,// 用于生成信号的颜色索引缓冲区中的颜色索引
常量 整数费率_总计,// 当前柱数
常量 整数前_计算,// 前一个价格变动的柱数
常量 双倍的&关闭[],// 收盘价
常量 整数&传播[])// 传播
{
//---
静止的 单位计数器=0;
如果(Rates_total!=Prev_calculated) 计数器=0;
布尔值买入信号=错误的;
布尔值系列测试=数组获取系列(颜色数组);
整数索引,索引1;
如果(系列测试)
{
索引=整数(条数);
索引1=索引+1;
}
别的
{
索引=Rates_total-整数(条数)-1;
索引1=索引-1;
}
如果(ColorArray[index1]!=ColorIndex && ColorArray[index]==ColorIndex) BuySignal=真的;
如果(BuySignal && 计数器<=NumberofAlerts)
{
计数器++;
Mql日期时间TM;
构建时间(时间当前(),tm);
细绳文字=字符串时间(时间当前(),TIME_DATE)+” “+细绳(tm.小时)+“:”+细绳(tm.分钟);
系列测试=数组获取系列(关闭);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
双倍的 问=关闭[指数];
双倍的 出价=关闭[指数];
系列测试=数组获取系列(传播);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
出价+=_观点*传播[索引];
细绳问=双精度转字符串(问,_数字);
细绳出价=双精度转字符串(出价,_数字);
细绳sPeriod=GetStringTimeframe(图表周期());
如果(声音打开)警报("买入信号 \n 询问=",问,“\n 出价=”,出价,“\n 当前时间=”,文本,“\n 符号=”,象征(),“句号=”,s 期间);
如果(电子邮件)发送邮件(信号先生姓名+“:买入信号提醒”,“在询问处买入信号=”+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
如果(推开)发送通知(信号先生姓名+": 在 Ask=" 处买入信号+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
}
//---
}
//+------------------------------------------------------------------+
//|卖出信号函数 |
//+------------------------------------------------------------------+
空白卖出信号(细绳信号先生姓名,// 电子邮件和推送消息的指标名称文本
双倍的&颜色数组[],// 颜色索引缓冲区
整数颜色指数,// 用于生成信号的颜色索引缓冲区中的颜色索引
常量 整数费率_总计,// 当前柱数
常量 整数前_计算,// 前一个价格变动的柱数
常量 双倍的&关闭[],// 收盘价
常量 整数&传播[])// 传播
{
//---
静止的 单位计数器=0;
如果(Rates_total!=Prev_calculated) 计数器=0;
布尔值卖出信号=错误的;
布尔值系列测试=数组获取系列(颜色数组);
整数索引,索引1;
如果(系列测试)
{
索引=整数(条数);
索引1=索引+1;
}
别的
{
索引=Rates_total-整数(条数)-1;
索引1=索引-1;
}
如果(ColorArray[index1]!=ColorIndex && ColorArray[index]==ColorIndex) 卖出信号=真的;
如果(SellSignal && 计数器<=NumberofAlerts)
{
计数器++;
Mql日期时间TM;
构建时间(时间当前(),tm);
细绳文字=字符串时间(时间当前(),TIME_DATE)+” “+细绳(tm.小时)+“:”+细绳(tm.分钟);
系列测试=数组获取系列(关闭);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
双倍的 问=关闭[指数];
双倍的 出价=关闭[指数];
系列测试=数组获取系列(传播);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
出价+=_观点*传播[索引];
细绳问=双精度转字符串(问,_数字);
细绳出价=双精度转字符串(出价,_数字);
细绳sPeriod=GetStringTimeframe(图表周期());
如果(声音打开)警报("卖出信号 \n 询问=",问,“\n 出价=”,出价,“\n 当前时间=”,文本,“\n 符号=”,象征(),“句号=”,s 期间);
如果(电子邮件)发送邮件(信号先生姓名+“:卖出信号警报”,“卖出信号在询问=”+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
如果(推开)发送通知(信号先生姓名+": 在 Ask=" 时卖出信号+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
}
//---
}
//+------------------------------------------------------------------+
//|获取字符串形式的时间范围 |
//+------------------------------------------------------------------+
细绳获取字符串时间范围(ENUM_TIMEFRAMES大体时间)
{
//----
返回(字符串子串(枚举转字符串(大体时间),7,-1));
//----
}
//|购买信号功能 |
//+------------------------------------------------------------------+
空白买入信号(细绳信号先生姓名,// 电子邮件和推送消息的指标名称文本
双倍的&颜色数组[],// 颜色索引缓冲区
整数颜色指数,// 用于生成信号的颜色索引缓冲区中的颜色索引
常量 整数费率_总计,// 当前柱数
常量 整数前_计算,// 前一个价格变动的柱数
常量 双倍的&关闭[],// 收盘价
常量 整数&传播[])// 传播
{
//---
静止的 单位计数器=0;
如果(Rates_total!=Prev_calculated) 计数器=0;
布尔值买入信号=错误的;
布尔值系列测试=数组获取系列(颜色数组);
整数索引,索引1;
如果(系列测试)
{
索引=整数(条数);
索引1=索引+1;
}
别的
{
索引=Rates_total-整数(条数)-1;
索引1=索引-1;
}
如果(ColorArray[index1]!=ColorIndex && ColorArray[index]==ColorIndex) BuySignal=真的;
如果(BuySignal && 计数器<=NumberofAlerts)
{
计数器++;
Mql日期时间TM;
构建时间(时间当前(),tm);
细绳文字=字符串时间(时间当前(),TIME_DATE)+” “+细绳(tm.小时)+“:”+细绳(tm.分钟);
系列测试=数组获取系列(关闭);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
双倍的 问=关闭[指数];
双倍的 出价=关闭[指数];
系列测试=数组获取系列(传播);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
出价+=_观点*传播[索引];
细绳问=双精度转字符串(问,_数字);
细绳出价=双精度转字符串(出价,_数字);
细绳sPeriod=GetStringTimeframe(图表周期());
如果(声音打开)警报("买入信号 \n 询问=",问,“\n 出价=”,出价,“\n 当前时间=”,文本,“\n 符号=”,象征(),“句号=”,s 期间);
如果(电子邮件)发送邮件(信号先生姓名+“:买入信号提醒”,“在询问处买入信号=”+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
如果(推开)发送通知(信号先生姓名+": 在 Ask=" 处买入信号+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
}
//---
}
//+------------------------------------------------------------------+
//|卖出信号函数 |
//+------------------------------------------------------------------+
空白卖出信号(细绳信号先生姓名,// 电子邮件和推送消息的指标名称文本
双倍的&颜色数组[],// 颜色索引缓冲区
整数颜色指数,// 用于生成信号的颜色索引缓冲区中的颜色索引
常量 整数费率_总计,// 当前柱数
常量 整数前_计算,// 前一个价格变动的柱数
常量 双倍的&关闭[],// 收盘价
常量 整数&传播[])// 传播
{
//---
静止的 单位计数器=0;
如果(Rates_total!=Prev_calculated) 计数器=0;
布尔值卖出信号=错误的;
布尔值系列测试=数组获取系列(颜色数组);
整数索引,索引1;
如果(系列测试)
{
索引=整数(条数);
索引1=索引+1;
}
别的
{
索引=Rates_total-整数(条数)-1;
索引1=索引-1;
}
如果(ColorArray[index1]!=ColorIndex && ColorArray[index]==ColorIndex) 卖出信号=真的;
如果(SellSignal && 计数器<=NumberofAlerts)
{
计数器++;
Mql日期时间TM;
构建时间(时间当前(),tm);
细绳文字=字符串时间(时间当前(),TIME_DATE)+” “+细绳(tm.小时)+“:”+细绳(tm.分钟);
系列测试=数组获取系列(关闭);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
双倍的 问=关闭[指数];
双倍的 出价=关闭[指数];
系列测试=数组获取系列(传播);
如果(系列测试)索引=整数(条数);
别的索引=Rates_total-整数(条数)-1;
出价+=_观点*传播[索引];
细绳问=双精度转字符串(问,_数字);
细绳出价=双精度转字符串(出价,_数字);
细绳sPeriod=GetStringTimeframe(图表周期());
如果(声音打开)警报("卖出信号 \n 询问=",问,“\n 出价=”,出价,“\n 当前时间=”,文本,“\n 符号=”,象征(),“句号=”,s 期间);
如果(电子邮件)发送邮件(信号先生姓名+“:卖出信号警报”,“卖出信号在询问=”+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
如果(推开)发送通知(信号先生姓名+": 在 Ask=" 时卖出信号+问+“,出价=”+出价+“,日期=”+文字+“符号=”+象征()+“句号=”+s句点);
}
//---
}
//+------------------------------------------------------------------+
//|获取字符串形式的时间范围 |
//+------------------------------------------------------------------+
细绳获取字符串时间范围(ENUM_TIMEFRAMES大体时间)
{
//----
返回(字符串子串(枚举转字符串(大体时间),7,-1));
//----
}
//---
买入信号(“Waddah_Attar_Trend_Alert”,ColorIndBuffer,0,rates_total,prev_calculated,close,spread);
卖出信号(“Waddah_Attar_Trend_Alert”,ColorIndBuffer,1,rates_total,prev_calculated,close,spread);
//---
买入信号(“Waddah_Attar_Trend_Alert”,ColorIndBuffer,0,rates_total,prev_calculated,close,spread);
卖出信号(“Waddah_Attar_Trend_Alert”,ColorIndBuffer,1,rates_total,prev_calculated,close,spread);
//---
其中 ColorIndBuffer 是用于存储线条颜色作为索引的颜色索引缓冲区的名称,而 0 和 1 是颜色索引缓冲区中颜色的数量。
假定对 BuySignal() 和 SellSignal() 函数的唯一一次调用将在指标代码的 OnCalculate() 块中使用。
该指标使用 SmoothAlgorithms.mqh 库类(将其复制到

图1.图表上的 Waddah_Attar_Trend_Alert 指标
图2. Waddah_Attar_Trend_Alert 指标。生成警报
附件下载
📎 SmoothAlgorithms.mqh (130.2 KB)
📎 Waddah_Attar_Trend_Alert.mq5 (27.15 KB)
Source: MQL5 #16832
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
