wlxBW5ZoneAlert - MetaTrader 5脚本




基于信号量值的信号指示器加速振荡器和很棒的振荡器Bill Williams 设计的指标,其功能包括向移动设备发送警报、发送电子邮件和推送通知。
为了实施警报、电子邮件消息和推送通知,对指标代码进行了以下更改:
输入 单位条数=1;//信号的柱数 输入 布尔值声音开启=真的;//启用警报 输入 单位警报数量=2;//警报数量 输入 布尔值电子邮件开启=错误的;//启用邮寄信号 输入 布尔值按下=错误的;//启用向移动设备发送信号
//+------------------------------------------------------------------+ //|购买信号功能 | //+------------------------------------------------------------------+ 空白买入信号(细绳信号先生姓名, // 电子邮件和推送消息的指标名称文本 双倍的购买箭头(&B)[], // 带有买入信号的指标缓冲区 常量 整数费率_总计, // 当前柱数 常量 整数前_计算,// 前一个价格变动的柱数 常量 双倍的&关闭[], // 收盘价 常量 整数&传播[]) // 传播 {你//--- 静止的 单位计数器=0; 如果(Rates_total!=Prev_calculated) 计数器=0; 布尔值买入信号=错误的; 布尔值系列测试=数组获取系列(购买箭头); 整数指数; 如果(系列测试)索引=整数(条数); 别的索引=Rates_total-整数(条数)-1; 如果(规范化双精度(BuyArrow[索引],_数字) && BuyArrow[索引]!=空_VALUE) 购买信号=真的; 如果(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句点); }你//--- }//+------------------------------------------------------------------+ //|卖出信号函数 | //+------------------------------------------------------------------+ 空白卖出信号(细绳信号先生姓名, // 电子邮件和推送消息的指标名称文本 双倍的销售箭头(&S)[], // 带有卖出信号的指标缓冲区 常量 整数费率_总计, // 当前柱数 常量 整数前_计算,// 前一个价格变动的柱数 常量 双倍的&关闭[], // 收盘价 常量 整数&传播[]) // 传播 {你//--- 静止的 单位计数器=0; 如果(Rates_total!=Prev_calculated) 计数器=0; 布尔值卖出信号=错误的; 布尔值系列测试=数组获取系列(卖出箭头); 整数指数; 如果(系列测试)索引=整数(条数); 别的索引=Rates_total-整数(条数)-1; 如果(规范化双精度(SellArrow[索引],_数字) && SellArrow[索引]!=空_VALUE) 卖出信号=真的; 如果(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));//---- }
<li>在 OnCalculate() 块中的指标计算周期之后添加了对 BuySignal() 和 SellSignal() 函数的几次调用<pre class="code"><span class="comment">你//--- </span> 买入信号(<span class="string">“wlxBW5ZoneAlert”</span>,BuyBuffer,rates_total,prev_calculated,close,spread);
卖出信号(“wlxBW5ZoneAlert”,SellBuffer,rates_total,prev_calculated,close,spread);你//---
其中 BuyBuffer 和 SellBuffer 是用于存储买入和卖出信号的指标缓冲区的名称。由于指标缓冲区中的空值必须设置为零或 EMPTY_VALUE。
假定对 BuySignal() 和 SellSignal() 函数的唯一一次调用将在指标代码的 OnCalculate() 块中使用。
该指标使用 SmoothAlgorithms.mqh 库类(将其复制到
该指标最初是用 MQL4 编写的,并首次发布于代码库于 2008 年 3 月 8 日。

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