请观看如何免费下载自动交易
请在Telegram上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
指标

Order Block Detector - MetaTrader 5脚本

Olamide Daniel Adebayo
Olamide Daniel Adebayo
MQL5 Developer • Trading Tools • EAs • Products • Articles
Building, learning, and sharing one project at a time.
| Chinese English Русский Español Deutsch 日本語 Português 한국어 Français Italiano Türkçe
显示:
15
等级:
(2)
已发布:
MQL5自由职业者 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务

序列块检测器

其背后的原理

在强劲的推动行情出现之前,通常会出现一根走向“相反”方向的最后一根K线——即价格飙升前的最后一根卖出K线,或是价格暴跌前的最后一根买入K线。 该K线被视为推动行情的订单流“足迹”:其所占据的区域,很可能是突破前大额头寸建仓的位置。 该指标通过三个步骤将这一检测过程系统化:确认真实的分形波动点;观察收盘价是否通过实心冲动K线(而非微弱的十字星推动)果断突破其中一个波动点;然后从该突破点向后追溯,找出最后一支反向K线——该K线的波动范围即构成“订单区块”。

与本系列中的缺口和流动性清扫检测器类似,这里的区域是真正动态的: 在未被突破的情况下,该区域会持续向前延伸至当前K线;一旦价格回调至该区域内,该区域便会精确地锁定在该K线上并(默认)变为灰色——因此,您一眼就能分辨出哪些区域尚未“被测试”,哪些区域已被重新触及。

如何解读

  • 看涨订单区块(默认绿色/白色)——在价格冲高收于近期震荡高点之上之前,最后一根收盘价下跌的K线。未被测试的“供应转需求”区域;通常被视为回调时的潜在支撑位。
  • 看跌订单区块(默认红色)——在价格以推动浪收盘跌破近期震荡低点之前,最后一根收盘价上涨的K线。未被测试的需求转为供应;通常被视为反弹时的潜在阻力位。
  • 延伸(彩色)区域—— 尚未被中和;当启用InpExtendUntilMitigated(默认)时,其右边缘会实时向前移动;若禁用该设置,则在经过固定的InpExtendBars 根K线后停止移动。
  • 冻结的灰色区域——价格已回调至该区域内——该订单区块已被化解,其框线在该K线处精确停止。将InpHideMitigatedOBs 设为“删除”可移除已化解的区域,而非仅将其灰显。
  • “突破”K线与订单区块本身的区别——订单区块是指与之相对的K线,而非推动性K线;推动性K线仅用于确认结构突破,绝不会作为区域本身被绘制出来。

外部变量(输入)

输入 默认值 用途
InpSwingLookback 5 候选K线两侧各需多少根K线,才能将其确认为震荡高点/低点。
InpMinBreakPoints 30 收盘价必须突破摆动水平线至少多少点(以点为单位),才算作真正的结构突破。
InpMinImpulseBodyPercent 50.0 突破K线必须具备的最小实体占波动范围的百分比——用于过滤掉弱势且影线过长的“突破”。
InpMaxSearchBarsForOB 10 从突破K线开始向后搜索多少根K线,以查找相反方向的订单阻挡K线。
InpUseBodyOnly false 在计算区域时,仅使用订单块K线的实体部分,而非其完整的最高价-最低价影线范围。
InpMinZoneSizePoints 30 检测到的订单区块被绘制所需的最小区域大小(以点为单位)。
InpMaxOBsToTrack 30 图表上同时保留的订单区块最大数量;每当有新的订单区块超过此上限时,系统将移除最旧的那个被追踪的区块。
InpExtendUntilMitigated true 当为 true 时,未缓解区块的区域会实时延伸至当前K线;当为 false 时,会在经过固定数量的K线后停止延伸。
InpExtendBars 40 固定的延伸长度(以K线为单位),仅在 InpExtendUntilMitigated 为 false 时使用。
InpRequireFullCloseForMitigation false 当为 true 时,K线必须收盘于该区域内才能消除该区域;当为 false 时,任何触及该区域的影线即可。
InpHideMitigatedOBs false 当设置为 true 时,阻挡区的区域会在被缓解的瞬间被删除,而不是变灰并保留。
InpBullishOBColor / InpBearishOBColor 柠檬黄 / 红色 未被缓解的多头和空头订单区块区域的颜色。
InpMitigatedColor 暗灰色 区域一旦被缓解(且未被隐藏)后,其颜色将变为该色。
InpFillBox true 顺序阻挡区域是填充还是仅绘制轮廓。
InpBoxStyle / InpBoxWidth 实心 / 1 每个区域的边框样式和宽度。
InpShowLabels true 在每个订单块旁边显示一个包含该区域价格的文本标签。

推荐用途

适用于任何符号和任何时间周期;结构突破和订单区块的概念是纯粹的价格走势,没有任何针对特定符号的假设,但与任何分形枢轴方法一样,InpSwingLookback 像本系列中的“流动性扫荡检测器”一样,在水平重要性和检测频率之间进行了权衡。 根据设计,结构突破和缓冲均仅针对完全收盘的K线进行评估,因此当当前K线的高点/低点/收盘价仍在变化时,订单区块不会在K线形成过程中出现或消失。

InpMinImpulseBodyPercent 的存在正是为了避免将微乎其微的收盘价标记为“突破”——那些仅以长影线和短实体勉强触及摆动价位的K线将被排除,因为这更接近于噪音而非真正的价格位位移。 在非常长的图表历史数据中,InpMaxOBsToTrack 会限制对象数量,而非让每个历史订单块无限期累积。该指标仅读取价格数据,绝不会下单、修改或平仓,因此可在任何账户类型上安全运行。

所有图表对象均以单一内部名称前缀创建,并在指标被解除绑定时,通过 OnDeinit() 中的 ObjectsDeleteAll() 函数被彻底清除,因此不会在图表上留下任何残留。



图 1. XAUUSD M15 图表上由冲动性突破K线确认的看涨订单块,随后该趋势被缓解。根据代码库图像指南(750×500 像素)以黑白形式呈现。

由MetaQuotes Ltd译自英文
原代码: https://www.mql5.com/en/code/76878

经纪商分析工具 经纪商分析工具

打印导致同一EA在另一家经纪商处表现不同的符号属性:交易时间、合约规模、点值、点差统计数据、掉期成本以及真实交易时段覆盖范围。仅供查阅,不进行交易。

Market Structure Swing Map MT5 Market Structure Swing Map MT5

一款清晰的MT5市场结构指标,可直接在图表上标注已确认的HH、HL、LH和LL波动点。

加速震荡(AC) 加速震荡(AC)

加速/减速技术指标(AC)用于衡量当前驱动力的加速和减速。

离散 离散

离散技术指标由价格和交易量的变化决定。