MT5指标编译通过 · EX5 17KB 203 27

订单块(供需区)自动识别

XAUOF 官方·1 个月前发布

自动画出最近的看涨、看跌订单块矩形,价格回到区域内时弹窗提醒

订单块(供需区)自动识别

MT5 真机运行截图 · 服务器把编译好的 EX5 挂到黄金 H1 图表上截的,你装上去看到的就是这个样子

OrderBlock_Indicator.mq5预览 35 / 330 行
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#property copyright "Order Block Indicator"
#property link      ""
#property version   "1.00"
#property indicator_chart_window
#property indicator_plots 0

// ========== 可调参数 ==========
input int    MaxBlocks = 5;              // 最多显示订单块数量(推荐3-5个)
input int    ExtendBars = 50;            // 矩形向右延伸K线数(推荐30-100)
input double BreakoutMultiplier = 1.5;   // 突破强度最小倍数(突破K线长度需≥订单块K线×此倍数,推荐1.5-3.0)
input bool   AlertOnReturn = true;       // 价格回到区域时是否弹窗提醒
input color  BullishColor = clrLimeGreen;// 看涨订单块颜色
input color  BearishColor = clrRed;      // 看跌订单块颜色
input int    Transparency = 60;          // 矩形透明度(0-100,越大越透明,推荐 50-70)

// ========== 订单块结构 ==========
struct OrderBlock {
   int type;              // 1=看涨,-1=看跌,0=无效
   double priceTop;       // 矩形上边界
   double priceBottom;    // 矩形下边界
   datetime timeStart;    // 起始时间
   int barIndex;          // 订单块K线索引
   bool alerted;          // 是否已提醒
   string objectName;     // 矩形对象名称
};

OrderBlock blocks[];      // 存储所有订单块
int blockCount = 0;       // 当前订单块数量

//+------------------------------------------------------------------+
//| 初始化函数                                                          |
//+------------------------------------------------------------------+
int OnInit() {
   // 设置定时器,每秒检查一次价格回归提醒
   if(AlertOnReturn) {

已显示前 35 行,共 330 行。完整源码仅对 xauusd.team VIP 开放查看与复制。

开通 VIP 查看完整源码
MT5 运行截图 · 完整视图带价格轴和时间轴的整张图表(约 150 根 H1 K 线),上面的封面是它最近 80 根 K 线的放大视图
订单块(供需区)自动识别 在 MT5 上的真实截图

作品说明

思路说明

订单块(Order Block)是 Smart Money 概念中的重要支撑/阻力区域。本指标通过识别「冲动突破前的最后一根反向K线」来标记订单块:

  • 看涨订单块:下跌K线被后续强势上涨突破 → 该下跌K线实体是潜在支撑
  • 看跌订单块:上涨K线被后续强势下跌突破 → 该上涨K线实体是潜在阻力

用半透明矩形标记这些区域并向右延伸,当价格回到区域时可选弹窗提醒,区域被完全突破后自动删除,始终保留最近的有效订单块。

使用说明

安装方法

  1. 将代码保存为 OrderBlock_Indicator.mq5,放入 MT5 的 MQL5/Indicators 文件夹
  2. 在 MetaEditor 中编译(F7),确保无错误
  3. 在图表上右键 → "技术指标列表" → "自定义" → 选择 OrderBlock_Indicator

参数调节

  • 最多显示订单块数量:建议 3-5 个,太多会让图表杂乱
  • 矩形向右延伸K线数:根据交易周期调整,H1 建议 50-100,M15 建议 30-50
  • 突破强度最小倍数:默认 1.5 表示突破K线实体长度需≥订单块K线的 1.5 倍,数值越大过滤越严格
  • 价格回到区域时弹窗提醒:开启后,当价格首次回到订单块区域时会弹窗提示(可能是潜在入场机会)
  • 颜色和透明度:可根据个人喜好调整,透明度建议 70-90 之间

信号解读

  • 绿色矩形(看涨订单块):机构可能在此区域布局多单,价格回到该区域可能获得支撑
  • 红色矩形(看跌订单块):机构可能在此区域布局空单,价格回到该区域可能遇到阻力
  • 订单块被完全突破后会自动删除,说明该区域已失效
  • 最佳入场时机:价格首次回到订单块区域时(配合其他信号确认)

注意事项

  • 订单块不是绝对支撑/阻力,需结合趋势、成交量等多维度分析
  • 在震荡市中订单块可能频繁失效,建议在趋势明确时使用
  • 弹窗提醒只在价格首次进入区域时触发,避免频繁打扰
  • 较小周期(如 M1/M5)订单块失效快,建议用 M15 及以上周期

AI 解读根据源码逐行分析写成,供参考,以实际运行为准

这是什么

这是一个基于 Smart Money 概念的订单块(Order Block)识别指标,用于在图表上自动标记机构可能布局的关键支撑和阻力区域。看涨订单块(绿色矩形)代表潜在支撑,看跌订单块(红色矩形)代表潜在阻力。当价格回到这些区域时,指标会弹窗提醒你可能出现的交易机会。

逻辑原理

订单块的识别逻辑是:找到「被强势突破前的最后一根反向 K 线」。

看涨订单块:前一根是下跌 K 线(收盘低于开盘),当前 K 线是上涨 K 线且最高价突破了前一根的高点,并且当前 K 线实体长度 ≥ 前一根实体长度 × 突破强度倍数(默认 1.5 倍)。此时前一根 K 线的高低点区间被标记为看涨订单块,用整根 K 线(含上下影线)的高低点画矩形。

看跌订单块:前一根是上涨 K 线(收盘高于开盘),当前 K 线是下跌 K 线且最低价跌破了前一根的低点,并且当前 K 线实体长度 ≥ 前一根实体长度 × 突破强度倍数。前一根 K 线的高低点区间被标记为看跌订单块。

矩形向右延伸指定数量的 K 线。当价格完全突破订单块(看涨区间被向下突破或看跌区间被向上突破)时,该矩形自动删除,表示区域已失效。指标始终保留最近的有效订单块(最多保留参数设定的数量)。

定时器每秒检查一次,如果价格回到某个订单块区域内且之前未提醒过,会弹出提示窗口告诉你潜在的入场机会。

参数说明

  • MaxBlocks(默认 5):最多在图表上显示几个订单块。数值越大图表越杂乱,建议 3-5 个。
  • ExtendBars(默认 50):矩形向右延伸多少根 K 线。H1 周期建议 50-100,M15 建议 30-50,根据你的交易周期调整。
  • BreakoutMultiplier(默认 1.5):突破强度的最小倍数。表示突破 K 线的实体长度必须 ≥ 订单块 K 线实体长度的多少倍才算有效突破。数值越大过滤越严格,假信号越少但订单块也会更少。建议 1.5-3.0。
  • AlertOnReturn(默认 true):价格回到订单块区域时是否弹窗提醒。开启后可能打断你的操作,关闭后需要自己盯盘。
  • BullishColor(默认亮绿色):看涨订单块(支撑区)的颜色。
  • BearishColor(默认红色):看跌订单块(阻力区)的颜色。
  • Transparency(默认 60):矩形的透明度,0-100 范围,数值越大越透明。建议 50-70,既能看清区域又不遮挡 K 线。

怎么用

把代码保存为 OrderBlock_Indicator.mq5,放到 MT5 的 MQL5/Indicators 文件夹,在 MetaEditor 里按 F7 编译,确保无错误。然后在图表上右键 → 技术指标列表 → 自定义 → 选择 OrderBlock_Indicator,双击或拖到图表上。

绿色矩形是看涨订单块,价格回到这里可能获得支撑;红色矩形是看跌订单块,价格回到这里可能遇到阻力。矩形被完全突破后会自动消失。如果开启了弹窗提醒,价格首次进入某个区域时会跳出提示框,告诉你可能的入场时机。最佳入场点通常是价格首次回测订单块区域时,结合其他确认信号(比如趋势、K 线形态)再动手。

适用场景

适合有明确趋势的行情,比如 XAUUSD、EURUSD、指数等流动性好的品种。建议用在 M15 及以上周期,H1 和 H4 效果较好。订单块在趋势行情中作为回调入场的参考位置比较有用,上涨趋势中找看涨订单块做多,下跌趋势中找看跌订单块做空。

不适合震荡市和超短周期。在震荡行情里订单块可能频繁失效,假突破多,信号质量差。M1 和 M5 周期的订单块生命周期太短,噪音大,不建议使用。

风险提示

订单块不是绝对的支撑或阻力,它只是一个参考区域。价格可能在区域内反转,也可能直接穿透。不要单独依赖订单块做交易决策,需要结合趋势、成交量、K 线形态等多维度确认。

突破强度的判断是基于 K 线实体长度,不考虑成交量和市场环境,可能出现假突破导致的假订单块。BreakoutMultiplier 参数可以过滤一部分,但无法完全避免。

弹窗提醒只在价格首次进入区域时触发,如果你错过了提醒或者价格在区域内反复震荡,之后不会再提醒(除非价格离开区域后再次回来)。

订单块被突破后会自动删除,但删除的判断是「价格完全突破区域边界」,如果价格只是稍微刺破边界又回来,可能会误删有效的订单块。这是所有订单块指标的通病。

代码里用的是 Bid 价格做判断,点差大的品种可能会有偏差。首次加载时会回看 300 根历史 K 线寻找订单块,如果历史数据不足或者行情波动剧烈,可能找不到足够的订单块。

常见问题

这个指标会重绘吗
不会重绘。订单块一旦生成,矩形的价格区间不会改变,只有被完全突破时才会删除。
可以用在 XAUUSD 以外的品种吗
可以。代码没有品种限制,适合所有流动性好的品种,比如外汇、贵金属、指数。低流动性品种可能假突破多,需自行测试。
MT4 能用吗
不能。这是 MQL5 代码,只能在 MetaTrader 5 平台使用。MT4 需要用 MQL4 重写。
参数默认值适合什么周期
默认参数(ExtendBars=50, BreakoutMultiplier=1.5)比较适合 H1 周期。M15 可以把 ExtendBars 降到 30-40,H4 可以提高到 80-100。BreakoutMultiplier 在震荡市可以提高到 2.0-3.0 过滤假信号。
订单块为什么会突然消失
订单块被完全突破后会自动删除。看涨订单块被价格向下突破(收盘价低于区域下边界),看跌订单块被价格向上突破(收盘价高于区域上边界),说明该区域已经失效。

Order Block Indicator for MT5

Auto-detects bullish and bearish order blocks based on Smart Money Concept. Draws semi-transparent rectangles for supply/demand zones, alerts when price returns, and removes invalidated blocks automatically.

A short source preview is shown above for visitors; full source, copy and compiled EX5 files are available to VIP members.

评论

后可以留言,比如反馈用着怎么样、想加什么功能。

还没有人评论,来抢个沙发。