WRB Hidden Gap,WRB隐藏缺口,MetaTrader 免费公式!(指标教程)

WRB Hidden Gap MetaTrader 指标用于检测和标记宽范围的柱体(非常长的柱体)或宽范围的烛身(具有非常长实体的阴阳烛)。此指标可以识别WRB中的隐藏跳空,并区分显示已填补和未填补的隐藏跳空,方便用户一眼识别当前市场状态。当价格首次进入未填补的隐藏跳空或出现新的WRB或隐藏跳空时,用户可选择启用提醒功能。此指标适用于MT4和MT5平台。

输入参数说明:

  • Timeframe(默认为 PERIOD_CURRENT): 计算宽幅区间K线(WRB)和隐藏跳空(HG)的时间周期,不能低于当前周期。
  • UseWholeBars(默认为 false): 若设置为true,则指标寻找宽范围的柱体而非烛身。
  • WRB_LookBackBarCount(默认为 3): 在比较WRB时考虑的历史柱体数量。
  • WRB_WingDingsSymbol(默认为 115): 标记WRB的符号,默认为小钻石。
  • HGcolor:设置各类型隐藏跳空的颜色,包括看涨看跌、已突破和未突破的状态。
  • HGstyle(默认为 STYLE_SOLID): 隐藏跳空矩形的线型。
  • StartCalculationFromBar(默认为 100): 回顾期内标记宽范围烛身和隐藏跳空的柱体数量。
  • HollowBoxes(默认为 false): 若为true,则标记的隐藏跳空矩形为未填充的。
  • AlertBreachesFromBelow(默认为 true)、AlertBreachesFromAbove(默认为 true)、AlertHG(默认为 false)、AlertWRB(默认为 false)、AlertHGFill(默认为 false): 各类型提醒的启用设置。
  • EnableNativeAlerts(默认为 false)、EnableEmailAlerts(默认为 false)、EnablePushAlerts(默认为 false): 提醒的发送方式,需要在MetaTrader设置邮件和通知。
  • ObjectPrefix(默认为 "HG_"): 图表对象的前缀,以便与其他指标兼容。


示例:在EUR/USD日线图表上使用默认设置标记的隐藏跳空。宽范围烛身的WRB条形图内绘制红色菱形框,不同颜色的矩形用于绘制隐藏跳空。未填充的缺口以跨至图表右边缘的矩形显示。此指标不生成交易信号,仅提供价格行为信息,辅助交易者利用其他策略生成的进场和离场信号。隐藏跳空也可作为支撑/阻力区域或价格缺口使用。

部分代码展示


//+------------------------------------------------------------------+
//|                                               WRB-Hidden-Gap.mq4 |
//|                                Copyright © 2009-2024, www.QChaos.com |
//|                                          https://www.qchaos.com/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 量化混沌, www.qchaos.com"
#property link      "https://www.qchaos.com"
#property version   "1.05"
#property strict
#property description "---------------------------------------------"
#property description "EA、指标公式分享"
#property description "EA、指标编写业务承接"
#property description "---------------------------------------------"
#property description "更多资源,关注公众号:量化程序"
#property description "微  信:QChaos001"
#property description "手机号:134-8068-5281"
#property description "---------------------------------------------"#property description "Identifies Wide Range Bars and Hidden Gaps. Supports MTF."
#property description "WRB and HG definitions are taken from the WRB Analysis Tutorial-1"
#property description "by M.A.Perry from TheStrategyLab.com."#property indicator_chart_window
#property indicator_buffers 1#property indicator_color1 clrRed
#property indicator_type1  DRAW_ARROW
#property indicator_label1 "WRB"
#property indicator_width1 3input ENUM_TIMEFRAMES Timeframe = PERIOD_CURRENT;
input bool UseWholeBars = false;
input int WRB_LookBackBarCount = 3;
input int WRB_WingDingsSymbol = 115;
input color HGcolorNormalBullishUnbreached       = clrDodgerBlue;
input color HGcolorIntersectionBullishUnbreached = clrBlue;
input color HGcolorNormalBearishUnbreached       = clrIndianRed;
input color HGcolorIntersectionBearishUnbreached = clrRed;
input color HGcolorNormalBullishBreached         = clrPowderBlue;
input color HGcolorIntersectionBullishBreached   = clrSlateBlue;
input color HGcolorNormalBearishBreached         = clrLightCoral;
input color HGcolorIntersectionBearishBreached   = clrSalmon;
input ENUM_LINE_STYLE HGstyle = STYLE_SOLID;
input int StartCalculationFromBar = 100;
input bool HollowBoxes = false;
input bool AlertBreachesFromBelow = true;
input bool AlertBreachesFromAbove = true;
input bool AlertHG = false;
input bool AlertWRB = false;
input bool AlertHGFill = false;
input bool EnableNativeAlerts = false;
input bool EnableEmailAlerts = false;
input bool EnablePushAlerts = false;
input string ObjectPrefix = "HG_";double WRB[];int totalBarCount = -1;
bool DoAlerts = false;
datetime AlertTimeWRB = 0, AlertTimeHG = 0;
string UnfilledPrefix, FilledPrefix;int OnInit()
{if (PeriodSeconds(Timeframe) < PeriodSeconds()){Alert("The Timeframe input parameter should be higher or equal to the current timeframe. Switching to current timeframe.");}IndicatorShortName("WRB+HG");SetIndexArrow(0, WRB_WingDingsSymbol);SetIndexBuffer(0, WRB);UnfilledPrefix = ObjectPrefix + "UNFILLED_";FilledPrefix = ObjectPrefix + "FILLED_";if ((EnableNativeAlerts) || (EnableEmailAlerts) || (EnablePushAlerts)) DoAlerts = true;return INIT_SUCCEEDED;
}//+------------------------------------------------------------------+
//| Intersect: Checks whether two bars intersect or not.             |
//| Return codes are unused. 0 - no intersection.                    |
//+------------------------------------------------------------------+
int intersect(double H1, double L1, double H2, double L2)
{if ((L1 > H2) || (H1 < L2)) return 0;if ((H1 >= H2) && (L1 >= L2)) return 1;if ((H1 <= H2) && (L1 <= L2)) return 2;if ((H1 >= H2) && (L1 <= L2)) return 3;if ((H1 <= H2) && (L1 >= L2)) return 4;return 0;
}//+------------------------------------------------------------------+
//| checkHGFilled: Checks if the hidden gap is filled or not.        |
//+------------------------------------------------------------------+
void checkHGFilled(int barNumber)
{string Prefix = UnfilledPrefix;int L = StringLen(Prefix);int obj_total = ObjectsTotal(ChartID(), 0, OBJ_RECTANGLE);// Loop over all unfilled boxes.for (int i = 0; i < obj_total; i++){string ObjName = ObjectName(0, i, 0, OBJ_RECTANGLE);if (StringSubstr(ObjName, 0, L) != Prefix) continue;// Get HG high and low values.double box_H = ObjectGet(ObjName, OBJPROP_PRICE1);double box_L = ObjectGet(ObjName, OBJPROP_PRICE2);color objectColor = (color)ObjectGet(ObjName, OBJPROP_COLOR);datetime startTime = (datetime)ObjectGet(ObjName, OBJPROP_TIME1);double HGFillPA_H = High[barNumber];double HGFillPA_L = Low[barNumber];if ((HGFillPA_H > box_L) && (HGFillPA_L < box_H)) // Breach, but not necessarily filling.{// Only color should be updated.if (objectColor == HGcolorNormalBullishUnbreached) objectColor = HGcolorNormalBullishBreached;else if (objectColor == HGcolorIntersectionBullishUnbreached) objectColor = HGcolorIntersectionBullishBreached;else if (objectColor == HGcolorNormalBearishUnbreached) objectColor = HGcolorNormalBearishBreached;else if (objectColor == HGcolorIntersectionBearishUnbreached) objectColor = HGcolorIntersectionBearishBreached;ObjectSetInteger(ChartID(), ObjName, OBJPROP_COLOR, objectColor);}int j = 0;while ((intersect(High[barNumber + j], Low[barNumber + j], box_H, box_L) != 0) && (barNumber + j < Bars) && (startTime < Time[barNumber + j])){if (High[barNumber + j] > HGFillPA_H)  HGFillPA_H = High[barNumber + j];if (Low[barNumber + j]  < HGFillPA_L)  HGFillPA_L = Low[barNumber + j];if ((HGFillPA_H > box_H) && (HGFillPA_L < box_L)){ObjectDelete(ObjName);string ObjectText = FilledPrefix + TimeToString(startTime, TIME_DATE | TIME_MINUTES); // Recreate as a filled box.ObjectCreate(ObjectText, OBJ_RECTANGLE, 0, startTime, box_H, Time[barNumber], box_L);ObjectSetInteger(ChartID(), ObjectText, OBJPROP_STYLE, HGstyle);// Filled HG is necessarilly a breached one.if (objectColor == HGcolorNormalBullishUnbreached) objectColor = HGcolorNormalBullishBreached;else if (objectColor == HGcolorIntersectionBullishUnbreached) objectColor = HGcolorIntersectionBullishBreached;else if (objectColor == HGcolorNormalBearishUnbreached) objectColor = HGcolorNormalBearishBreached;else if (objectColor == HGcolorIntersectionBearishUnbreached) objectColor = HGcolorIntersectionBearishBreached;ObjectSetInteger(ChartID(), ObjectText, OBJPROP_COLOR, objectColor);ObjectSetInteger(ChartID(), ObjectText, OBJPROP_BACK, !HollowBoxes);if ((AlertHGFill) && (IndicatorCounted() > 0)) // Don't alert on old fillings.{string Text = "WRB Hidden Gap: " + Symbol() + " - " + StringSubstr(EnumToString((ENUM_TIMEFRAMES)Period()), 7) + " - HG " + TimeToString(startTime, TIME_DATE | TIME_MINUTES) + " Filled.";if (EnableNativeAlerts) Alert(Text);if (EnableEmailAlerts) SendMail("WRB HG Alert", Text);if (EnablePushAlerts) SendNotification(Text);}break;}j++;}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/455330.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GEE数据集:1984-2022 年间加拿大 6.5 亿公顷森林生态系统的年度优势树种(也称主要树种)地图

目录 简介 数据集说明 空间信息 变量 代码 代码链接 下载链接 引用 许可 网址推荐 0代码在线构建地图应用 机器学习 简介 加拿大长期树种&#xff08;1984-2022 年&#xff09;∥在该数据集中&#xff0c;我们利用空间分辨率为 30 米的 Landsat 时间序列图像&…

etl-查询错误log日志和oracle删除数据表空间

查看weblogic日志的目录 建立连接ssh root192.168.30.1xx 密码hygd123 找到下面路径中的文件 cd /home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/bapp-logs 查看log日志 tail -f -n 400 Adminservers.log oracle删除表空间&#xff08;切换到dba用户…

家庭宽带的ip地址是固定的吗?宽带ip地址怎么修改‌

在家庭网络环境中&#xff0c;IP地址的分配和管理是用户常关注的问题。本文将探讨家庭宽带IP地址的固定性&#xff0c;并介绍如何修改宽带IP地址&#xff0c;以满足用户的不同需求。 一、家庭宽带的IP地址是否固定? 关于家庭宽带的IP地址是否固定&#xff0c;答案并非一概而论…

【深入学习Redis丨第八篇】详解Redis数据持久化机制

前言 Redis支持两种数据持久化方式&#xff1a;RDB方式和AOF方式。前者会根据配置的规则定时将内存中的数据持久化到硬盘上&#xff0c;后者则是在每次执行写命令之后将命令记录下来。两种持久化方式可以单独使用&#xff0c;但是通常会将两者结合使用。 一、持久化 1.1、什么…

【Android】使用 Compose 自定义 View 实现从 0 ~ 1 仿 EChat 柱状图

目录 前言DrawScopeDrawScope Api 绘制柱状图绘制 X 轴绘制 Y 轴绘制柱状背景绘制柱状前景完整代码最终效果 存在的问题 前言 本文讲的是使用 compose 去自定义 View &#xff0c;如果您未曾通过继承 View 的方式去实现自定义 View&#xff0c;那么&#xff0c;我建议在观看本…

监控-08-skywalking监控告警

文章目录 前言一、准备二、配置skywalking2.1 修改alarm-settings.yml2.2 重启skywalking 三、收到告警邮件总结 前言 skywalking根据监控规则&#xff0c;通过webhook调后端微服务接口&#xff0c;从而发送告警邮件。 一、准备 根据上几章内容&#xff0c;保证skywalking能监…

离散数学实验二c语言(输出关系矩阵,输出矩阵性质,输出自反闭包,对称闭包,传递闭包,判断矩阵是否为等价关系,相容关系,偏序关系)

离散数学实验二 一、算法描述&#xff0c;算法思想 &#xff08;一&#xff09;相关数据结构 typedef struct Set *S; //存放集合 struct Set {int size; //集合的元素个数char *A; //存放该集合的元素 }; Set存放有限集合A&#xff0c;该集合的元素个数为size&#xff0…

Kafka-Windows搭建全流程(环境,安装包,编译,消费案例,远程连接,服务自启,可视化工具)

目录 一. Kafka安装包获取 1. 官网地址 2. 百度网盘链接 二. 环境要求 1. Java 运行环境 (1) 对 java 环境变量进行配置 (2) 下载完毕之后进行解压 三. 启动Zookeeper 四. 启动Kafka (1) 修改Conf下的server.properties文件&#xff0c;修改kafka的日志文件路径 (2)…

海外云手机实现高效的海外社交媒体营销

随着全球化的深入发展&#xff0c;越来越多的中国企业走向国际市场&#xff0c;尤其是B2B外贸企业&#xff0c;海外社交媒体营销已成为其扩大市场的重要手段。在复杂多变的海外市场环境中&#xff0c;如何有效提高营销效率并降低运营风险&#xff0c;成为了众多企业的首要任务。…

无人机悬停精度算法!

一、主要算法类型 PID控制算法&#xff1a; PID控制算法是一种常用的闭环控制算法&#xff0c;通过计算目标值与当前值的误差&#xff0c;并根据比例&#xff08;P&#xff09;、积分&#xff08;I&#xff09;、微分&#xff08;D&#xff09;三个参数来调整控制输出&#x…

SQL高级查询03

SQL查询语句的下载脚本链接&#xff01;&#xff01;&#xff01; 【免费】SQL练习资源-具体练习操作可以查看我发布的文章资源-CSDN文库​编辑https://download.csdn.net/download/Z0412_J0103/89908378https://download.csdn.net/download/Z0412_J0103/89908378 1 查询employ…

聚链成网,趣链科技参与 “跨链创新联合体”建设

近日&#xff0c;2024全球数商大会在上海举办。大会由上海数据集团和上海市数商协会联合主办&#xff0c;上海市数据局和浦东新区人民政府支持&#xff0c;以“数联全球&#xff0c;商通未来——‘链’接数字经济新未来”为主题&#xff0c;聚焦区块链技术和应用场景展开。 会上…

PostGis空间(下):空间连接与空间索引

目录 1、简介2、空间连接3、空间索引3.1 索引操作3.2 空间索引的工作原理3.2.1 R-Tree 3.3 空间索引函数3.4 仅索引查询3.5 ANALYZE3.6 VACUUMing3.7 函数列表 PS 1024到啦&#xff01;&#xff01;&#xff01; 先祝各位程序员或者想成为程序员正在奋斗中的伙伴1024程序员节快…

JavaScript进阶:手写代码挑战(二)

​&#x1f308;个人主页&#xff1a;前端青山 &#x1f525;系列专栏&#xff1a;JavaScript篇 &#x1f516;人终将被年少不可得之物困其一生 依旧青山,本期给大家带来JavaScript篇专栏内容:JavaScript手写代码篇 在现代Web开发中&#xff0c;JavaScript 是不可或缺的编程语言…

Linux系统基础-进程间通信(5)_模拟实现命名管道和共享内存

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 Linux系统基础-进程间通信(5)_模拟实现命名管道和共享内存 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…

Mac 使用 zsh 终端提示 zsh: killed 的问题

我的脚本的内容为&#xff1a; #!/bin/bashset -epids$(ps -ef | grep consul | grep -v grep | awk {print $2})for pid in $pids; doecho "kill process: $pid"kill -9 $pid donecd $(dirname $0)nohup ./consul agent -dev > nohup.log &可以看到这是一个…

阿里云项目启动OOM问题解决

问题描述 随着项目业务的增长&#xff0c;系统启动时内存紧张&#xff0c;每次第一次启动的时候就会出现oom第二次或者第n的时候&#xff0c;就启动成功了。 带着这个疑问&#xff0c;我就在阿里云上提交了工单&#xff0c;咨询为什么第一次提交失败但是后面却能提交成功尼&a…

Matlab学习01-矩阵

目录 一&#xff0c;矩阵的创建 1&#xff0c;直接输入法创建矩阵 2&#xff0c;利用M文件创建矩阵 3&#xff0c;利用其它文本编辑器创建矩阵 二&#xff0c;矩阵的拼接 1&#xff0c;基本拼接 1&#xff09; 水平方向的拼接 2&#xff09;垂直方向的拼接 3&#xf…

shell脚本-函数

文章目录 一、函数介绍什么是函数、为什么使用函数、如何使用函数 二、shell脚本中如何定义函数Way1Way2Way3 三、shell脚本中如何调用函数四、shell脚本中使用内置变量(1、#、?、2等等)五、函数的返回值、shell脚本中函数的返回值函数的返回值概念shell脚本中函数的返回值ret…

梦金园三闯港交所上市:年营收200亿元,靠加盟模式取胜

近日&#xff0c;梦金园黄金珠宝集团股份有限公司&#xff08;以下简称“梦金园”&#xff09;向港交所递交IPO申请&#xff0c;中信证券为其独家保荐人。贝多财经了解到&#xff0c;这已经是梦金园第三次向港股发起冲击&#xff0c;此前曾于2023年9月、2024年4月两度递表。 继…