SMC Structure Map Order Blocks FVG(MT5)使用说明

SMC Structure Map Order Blocks FVG(MT5)使用说明

25 十月 2026, 07:22
Yang Yu Qun
0
3

1. 这是什么

SMC Structure Map 是 MetaTrader 5 的聪明钱概念(SMC)指标。它按固定、公开的规则自动标注:

  • 市场结构:摆动高低点、BOS、CHoCH;
  • 订单块(OB)和公允价值缺口(FVG),以及它们后来的状态;
  • 流动性扫掠(Sweep);
  • 面板上的多周期方向、共振评分和白话解读,可选溢价 / 折价区间和 OTE。

**所有标记只用已收盘的 K 线。**历史上看到的,就是当时实时会看到的,事后不会重画。


它是分析工具:不下单,不给买卖指令,不承诺收益。完全免费,没有功能阉割,不需要注册,也不连接任何外部服务。

2. 功能一览

市场结构

  • 已确认的摆动高低点,标 HH / HL / LH / LL;两个高点(或低点)几乎一样高时标 EQH / EQL。
  • K 线收盘越过摆动价位时标 BOS(顺势突破)或 CHoCH(性质转变)。
  • 可选内部结构(更短的摆动长度,细线、淡色),它不改变主结构方向。

订单块和 FVG

  • 订单块:结构突破前最后一根反向 K 线。
  • FVG:三根 K 线留下的缺口,带 50% 中线和回补百分比。
  • 价格回来后状态会更新:OB 已回测 / 已失效;FVG 已触及 / 50% / 已回补 / 跳空越过。
  • 默认只画离现价最近的 3 个(每种区域、每个方向),面板会写出还有多少没画。

流动性扫掠

  • K 线冲过已确认的摆动高 / 低点或前一交易日高 / 低点,收盘又回到里面。

高周期叠加(可选)

  • 在当前图上叠加一个更高周期的结构、OB 和 FVG,标签带周期前缀,例如 [H1] OB 。

面板解读

  • 最多 4 个更高周期的主结构方向。
  • 共振评分 0–100%,规则和权重全部公开(见 §5)。它不是胜率,也不是买卖信号。
  • 白话解读:结构、价格在区间里的位置、最近的区域、最近的扫掠,只陈述事实。

溢价、折价和 OTE(可选)

  • 最近一段摆动区间的 50% 中线、溢价区 / 折价区和 61.8%–78.6% OTE 回撤区。

提醒

  • K 线收盘确认后发弹窗、声音或 MT5 手机推送;不补发历史,多张图同一事件只提醒一次,推送限速。

其他

  • 三个显示预设和一键开关,切换不用重新计算。
  • 面板可拖动,按图表记住位置。
  • 中文 / 英文,默认跟随终端语言。
  • 深色 / 浅色图表自动配色,高分屏清晰。
  • 给 EA 开发者的 14 个数据 buffer(§10)。

3. 判定规则

SMC 没有唯一的标准定义,不同指标画出来的东西会不一样。下面是本指标用的规则,全部写在这里,没有隐藏条件。

3.1 摆动点

  • 摆动高点:这根 K 线的高点高于左边 N 根,且不低于右边 N 根。摆动低点反过来。
  • 主结构 N = 5,内部结构 N = 2(参数可改)。
  • 必须等右边 N 根全部收盘才确认。所以摆动点总是在它出现之后第 N 根 K 线收盘时才标出来,这是规则本身的延迟,不是滞后错误。
  • 跟上一个同类摆动点比较,标 HH(更高的高点)、LH(更低的高点)、HL(更高的低点)、LL(更低的低点)。差值不超过 0.1 × ATR(14) 时标 EQH / EQL。

3.2 BOS 和 CHoCH

  • 每套结构只跟踪最新确认的一个摆动高点和一个摆动低点。新的摆动点确认后,就替换掉旧的。
  • 收盘价严格高于这个摆动高点,算向上突破;严格低于摆动低点,算向下突破。只有影线刺穿、收盘没过去,不算。
  • 突破方向和当前结构方向相同 → BOS;相反 → CHoCH,方向随之改变。
  • 刚开始还没有方向时,第一次突破只用来建立方向,不标 BOS 或 CHoCH。
  • 每个摆动价位只会被突破一次。

3.3 订单块(OB)

  • 只由主结构的 BOS / CHoCH 生成。
  • 向上突破:往回找突破前最后一根阴线(收盘低于开盘);向下突破找最后一根阳线。最多往回找 20 根,且不早于最近那个反向摆动点。找不到就不画。
  • 区域 = 这根 K 线完整的最高价到最低价。
  • 后来的 K 线碰到区域 → 已回测;看涨 OB 有 K 线收盘低于下沿(看跌 OB 收盘高于上沿)→ 已失效。

这里的“订单块”是一个价格区域的规则定义,不代表读到了真实的机构挂单。

3.4 公允价值缺口(FVG)

  • 三根连续收盘的 K 线 A、B、C:C 的最低价高于 A 的最高价 → 看涨 FVG;C 的最高价低于 A 的最低价 → 看跌 FVG。
  • 缺口小于 0.2 × ATR(14) 的不画。
  • C 收盘后才出现。
  • 回补按后来 K 线影线到达的最深处计算,只增不减:碰到近端边线 = 已触及,到中线 = 50%,到远端边线 = 已回补。
  • 价格直接跳空越过整个缺口(中间没有成交)时标 跳空越过,不算回补。

3.5 流动性扫掠(Sweep)

  • 参考价位:主结构当前跟踪的摆动高 / 低点,以及前一交易日的最高 / 最低价(只在日线以下周期)。
  • 上方扫掠:K 线最高价严格高于参考高点,收盘又严格低于它。下方扫掠反过来。
  • 只看同一根 K 线内冲过去又收回来。一个价位只算第一次扫掠。
  • 图上标 Sweep ;前一交易日的标 Sweep PDH  / Sweep PDL 。

3.6 高周期

  • 只用已经收盘的高周期 K 线。正在形成的那根高周期 K 线不参与,它收盘后结果才更新。
  • 高周期事件出现在当前图上该高周期 K 线收盘那一刻对应的位置。
  • 首次加载时如果高周期数据还在下载,面板显示 ... (同步中),下载完自动出现。


4. 为什么不重绘

  • 每个标记只在需要的 K 线全部收盘后才画出来,画出来之后位置和价格不再改变。
  • 区域的状态会变(例如从“未回测”变成“已回测”),这是区域后来发生的事,不是改写历史。
  • 失效或回补的区域默认隐藏。打开面板上的 失效区  可以灰色显示它们,历史一条都不会删。
  • 什么情况下历史会重算:修改参数、补齐了缺失的历史数据、改变了分析的 K 线数量。这时候所有结果按新的条件从头算一遍。

开发时用策略测试器逐根推进,跟一次性加载历史比对过,两种算法的结果逐条一致。


5. 面板:多周期、共振评分、白话解读


5.1 多周期方向

从 M15、H1、H4、D1、W1 中取比当前图表高的前 4 个周期,用同样的主结构规则(只用已收盘 K 线)算方向:

图表周期 面板显示的周期
M1 / M5 M15 · H1 · H4 · D1
M15 H1 · H4 · D1 · W1
H1 H4 · D1 · W1
H4 D1 · W1
D1 W1

...  表示数据还在同步, -  表示历史不够。

5.2 共振评分 0–100%

多、空两边各算一个分数,等于下面满足的条件的权重之和。面板显示较高的一边,例如 共振 75% 偏多 ;两边相等时显示 多空相当 。

条件(多头;空头对称) 权重
当前图表主结构向上 25
多周期:每个向上的周期得 20 ÷ 周期数 20
内部结构向上 15
收盘价在折价区得 10;主结构向上且在 OTE 内得 15 15
收盘价在一个有效的看涨 OB 或未回补的看涨 FVG 里 15
最近 20 根已收盘 K 线内有过下方扫掠 10

鼠标停在评分上,可以看到两边的分数和每一项是否满足(√ / ×)。

这个分数只说明当前有多少条已确认的条件指向同一边。它不是胜率,也不是买卖建议:分数高不代表接下来会涨,分数低也不代表会跌。

5.3 白话解读

最多 5 行,只写事实,例如:

  • 主结构向上,最近一次 BOS 突破 4038.37(10.23 14:00);内部结构同向。
  • 价格在区间 31% 处(折价区,OTE 内),区间 3998.40–4061.20。
  • 下方最近:看涨 OB 4020.09–4027.49。
  • 10.23 09:15 跌破前日低点 4001.75 后收回。

内部结构和主结构方向相反时,第一行会写“内部结构反向(回调中)”。

图表太矮放不下时,会从下往上少显示几行,按钮始终可见。


6. 溢价、折价和 OTE


  • 区间:取最近确认的摆动高点和摆动低点,从较早那个开始到最后一根已收盘 K 线,这段的最高价和最低价。
  • 中线 = 50%。上半是溢价区(Premium),下半是折价区(Discount)。
  • OTE:主结构向上时,是从高点往下回撤 61.8%–78.6% 的那一段;向下时从低点往上回撤 61.8%–78.6%。方向还没确认时不画 OTE。
  • 只画当前这一个区间,不画扩展目标位。
  • 默认关闭,点面板上的 区间  打开。关着的时候也照常计算,评分和解读会用到它。

7. 安装和第一次使用

  1. 从 Market 下载 SMC Structure Map Order Blocks FVG:[商品链接]。
  2. 打开一张图(例如 XAUUSD M15),在「导航器 → 指标 → Market」里把它拖到图上,点「确定」。
  3. 几秒后图上出现结构和区域,左上角出现面板。默认参数不改就能用。
  4. 想要高周期叠加:点面板上写着周期名的按钮(默认 H1 )。想换成别的周期,在指标属性里改 Higher timeframe 。
  5. 想要提醒:在指标属性的 Alerts  分组里打开 Alerts (master switch) (见 §9)。

面板怎么用

位置 作用
第一行 当前主结构方向(向上 / 向下 / 未确认);打开高周期时显示高周期方向。右边 中  / EN  切换语言, -  / +  收起 / 展开面板
多周期行、评分行 见 §5
结构  区域  完整 三个显示预设(见下表)
主结构  内部结构  OB  FVG 单独显示 / 隐藏
扫掠  H1  失效区  区间  解读 扫掠、高周期叠加、灰色显示失效区域、溢价折价区间、面板解读
最下面两行 区域显示了几个、还有几个没画;分析范围(从哪天起,共多少根)
预设 显示
结构 主结构线、方向和摆动点
区域(默认) 主结构 + 最近的有效 OB / FVG
完整 主结构、内部结构、OB、FVG、扫掠
  • 预设只管显示,不改变计算。单独点了某个开关之后,预设按钮会变成都不亮(自定义组合)。
  • 高周期、失效区、区间、解读四个开关独立于预设。
  • 按住面板空白处可以拖到任意位置。位置和开关状态按图表保存,切周期、重启终端后保持。
  • 鼠标停在任何标记上,可以看到它的类型、价格、来源时间、确认时间和当前状态。

8. 参数

面板上能切换的项目(预设、语言、颜色、失效区、解读、区间、高周期开关),参数里的值只在第一次加载时生效,之后以面板为准。这样切换显示不用重新计算。

参数 默认 说明
Draw on the chart true 设 false = 只计算不画图,给 EA 读数据用(§10)
Structure
Swing length 5 主结构摆动点左右各要几根 K 线。越大结构越大、确认越晚
Internal structure swing length 2 内部结构的摆动长度
Bars to analyse 3000 分析多少根 K 线。改它会改变计算起点,最早的结构可能不同
ATR period 14 用于 FVG 最小尺寸和 EQH / EQL 容差
Equal high / low tolerance (x ATR) 0.1 差值不超过多少倍 ATR 算 EQH / EQL,只影响标签
Zones
Order block lookback (bars) 20 往回找反向 K 线最多几根
Minimum FVG size (x ATR) 0.2 小于这个尺寸的缺口不画
Zones shown per type and direction 3 每种区域、每个方向最多画几个
Which zones to show Nearest Nearest = 离现价最近;Newest = 最新形成
Higher timeframe
Show one higher timeframe false 也可以用面板按钮开关
Higher timeframe H1 必须高于当前图表周期,否则面板提示原因,不会自动改成别的周期
Display(仅首次生效)
Display preset Zones Structure / Zones / Full
Also show invalidated / filled zones false 灰色显示失效、已回补的区域
Language Auto Auto(跟随终端)/ English / 中文
Colors Auto Auto(按图表背景)/ Dark / Light
Panel summary true 多周期、评分、白话解读
Premium / discount range and OTE false 区间和 OTE
Alerts 见 §9

9. 提醒

在指标属性的 Alerts (on candle close)  分组里设置:

参数 默认 说明
Alerts (master switch) false 总开关
BOS / CHoCH true 当前周期主结构
First touch of an OB / FVG true OB 首次回测、FVG 首次触及
OB invalidated, FVG 50% / filled / gapped false 其余区域状态变化
Sweeps false 扫掠
Higher-timeframe BOS / CHoCH false 需要同时打开高周期
Pop-up / Sound / Push true / false / false 手机推送需要在「工具 → 选项 → 通知」里填 MetaQuotes ID
  • 提醒在 K 线收盘确认后才发,所以会比价格碰到晚一根 K 线。
  • 加载指标、切换周期、重启终端时不补发历史事件;断线重连后积压的旧事件也不补发。
  • 同一终端里几张图是同一品种、同一周期时,同一事件只提醒一次。
  • 同一根 K 线超过 3 个事件合并成一条。手机推送每分钟最多 6 条,超出合并发送。
  • 策略测试器里不弹窗、不响铃、不推送。

提醒示例: SMC XAUUSD M15|看涨 BOS 4123.45(M15 10:15 收盘确认) 。语言跟随面板,时间是交易服务器时间。


10. 给自己的 EA 用(buffer)

用 iCustom  + CopyBuffer  读取。第一个参数传 false ,得到一个只计算、不画图、不发提醒的副本:

int h = iCustom(_Symbol, _Period, "Market\\SMC Structure Map Order Blocks FVG", false);

从 Market 安装的指标在 MQL5\Indicators\Market\  下,所以路径要带 Market\\ 。

Buffer 含义 值
0 主结构方向 -1 向下、0 未确认、1 向上
1 主结构事件 ±1 BOS、±2 CHoCH、±3 初始突破;正数 = 向上
2 被突破的价位 摆动点价格
3 内部结构事件 同 Buffer 1
4 / 5 新看涨 OB 下沿 / 上沿 只在生成它的 BOS / CHoCH K 线上有值
6 / 7 新看跌 OB 下沿 / 上沿 同上
8 / 9 新看涨 FVG 下沿 / 上沿 只在第三根 K 线(C)上有值
10 / 11 新看跌 FVG 下沿 / 上沿 同上
12 上方扫掠的参考价位 一根 K 线有多个时取离收盘价最近的
13 下方扫掠的参考价位 同上
  • 没有事件时是 EMPTY_VALUE 。正在形成的 K 线(shift 0)全部是 EMPTY_VALUE ,请读 shift 1 及更早。
  • 事件写在确认它的 K 线上,之后不再改变。EA 在新 K 线开盘时读 shift 1 即可。
  • 首次加载要等历史算完: BarsCalculated(h)  小于 Bars(_Symbol,_Period)  时先不读,下一个 tick 再试。
  • 要改其他参数时,按参数顺序依次传;每个分组标题也占一个位置,用 ""  占位。例如关闭高周期:

    iCustom(_Symbol,_Period,"Market\\SMC Structure Map Order Blocks FVG", false,"",5,2,3000,14,0.1,"",20,0.2,3,0,"",false);

    漏掉分组位置会让后面的参数全部错位,指标报 invalid inputs 。
  • 这些是计算 buffer,MT5 的「数据窗口」里看不到, CopyBuffer  读取不受影响。
  • 只提供当前图表周期的数据。面板上的多周期、评分和解读不进 buffer。

11. 常见问题

现象 原因 / 解决
摆动点比价格晚出现几根 K 线 正常:要等右边 5 根(Swing length)K 线收盘才确认
价格碰到区域了,提醒没马上来 提醒在 K 线收盘后才发
图上区域比我想的少 默认每种、每个方向只画 3 个离现价最近的;面板最下面写着还有几个没画。可以改 Zones shown per type and direction
一个 OB / FVG 不见了 它失效或被回补了。打开面板上的 失效区  可以灰色看到
改了参数里的语言 / 预设,好像没变化 改了参数会以新值覆盖一次;平时请直接用面板按钮
高周期按钮显示 ... 高周期数据还在下载,稍等会自动出现
面板写着“H1 必须高于 H1” 高周期要高于当前图表周期,换一个更高的周期
和别的 SMC 指标画得不一样 SMC 没有统一定义,本指标的规则见 §3
手机收不到推送 在「工具 → 选项 → 通知」里填 MetaQuotes ID 并启用
同一品种开了几张图,只收到一次提醒 正常,同一事件只提醒一次
EA 读到的 shift 0 全是空值 正常,请读 shift 1
策略测试器 可以运行,可视化模式下能看到逐根形成的过程;测试器里不发提醒

12. 局限

  • 只支持 MetaTrader 5。
  • SMC 的各个概念没有统一定义。本指标按 §3 的规则画图,别的工具可能画法不同。
  • 只用价格(开高低收)和 ATR,不用成交量、订单簿或任何外部数据。“订单块”“流动性”是对价格形态的称呼,不代表读到了真实的机构订单或止损分布。
  • 确认本身有延迟:摆动点要等几根 K 线,突破要等收盘。这是为了不重绘必须付出的代价。
  • 共振评分和白话解读描述的是当前状态,不预测行情,不是交易建议。