Ironframe SMC Gold Order Blocks Liquidity MT5
- 指标
- 版本: 1.37
Range-Bound Edition · v1.31
使用机构实际采用的结构交易黄金
大多数零售 Smart Money Concept(SMC)工具只做一件事:在你的图表上绘制订单块和流动性扫荡,然后让你自己决定是否相信这些信号。Ironframe SMC Gold MT5:Order Blocks, Liquidity 并不止于此。它打印出的每一个信号,都是经过确认的价格行为结构,并进一步与最多三个额外的机构级背景层进行交叉验证——真实期权市场持仓、宏观基本面以及市场情绪——最终将它们综合成一个清晰的信号,而不是让三个指标在你的屏幕上互相“争论”。
它面向已经理解订单块、流动性扫荡以及供需区域的交易者,适合那些希望系统验证市场结构,而不仅仅是把结构画出来的人。
它的优势
-
完整的 SMC 结构引擎 —— 订单块、流动性扫荡以及供需区域,全部基于已经确认并完成收盘的 K 线价格行为构建。K 线一旦收盘,信号即锁定,之后不会重新绘制。
-
多层确认,而不仅仅是结构。 每一个结构性信号在显示到图表之前,都会与背离、衰竭和吸收检测器进行交叉验证——因此你看到的是价格结构与订单流行为之间的一致性,而不只是简单的形态匹配。
-
真实期权市场共振。 直接读取 COMEX 黄金期货期权数据——真实的未平仓量(Open Interest)、Max Pain 以及来自实际黄金期权市场的流动性水平,而不是合成数据——帮助判断大资金在价格到达之前实际集中在哪里。
-
内置宏观意识。 内置数据管道读取美联储资产负债表、CPI/PPI 以及就业数据,使信号与更广泛的宏观市场环境保持一致,而不是忽略宏观背景。
-
市场情绪感知。 CFTC Commitment of Traders(COT)持仓数据与市场 Fear & Greed 数据共同构成真正的逆向过滤器——极端情绪读数被视为潜在的反向交易机会,而不是直接的交易许可。
-
两种专门设计的模式。 面向趋势行情的评分型 Conservative Mode,以及本版本默认的 Range-Bound Mode——该模式经过策略测试调优,专门用于震荡盘整市场,在此类环境中,结构和均值回归比动量更重要。
-
开箱即用,并可随你扩展。 上述高级层全部为可选项。无需配置即可加载,系统从第一根 K 线开始就能够运行纯验证结构。之后可以随时增加期权数据、宏观数据或情绪输入——核心引擎以外的任何功能都不是信号生成的硬性要求。
本手册涵盖从零配置首次运行,到逐步叠加所有可选数据源所需的一切设置。
1. 快速开始
-
将 .mq5 文件复制到终端的 MQL5\Indicators 文件夹(在 MT5 中选择 File → Open Data Folder),然后在 MetaEditor 中进行编译。
-
将指标加载到黄金图表上(它也可以用于其他交易品种,但本文件中的所有默认值和说明均以 XAU 为前提)。
-
保持所有输入参数为默认值。该版本默认使用 Range-Bound Mode——这是本版本经过调优的模式;背离检测保持启用,但其图表标记默认隐藏(第 2 节会解释原因)。
-
加载指标后观察 Experts 日志。如果自动基本面/情绪数据获取失败,日志会明确提示;图表上的信息面板则会一目了然地显示当前模式、市场环境以及信号评分状态。
-
如果需要期权市场共振,请从第 11 节中选择一种数据路径;否则可以完全跳过。指标即使没有期权数据也可以正常运行。
2. 信号模式
enum ENUM_SIGNAL_MODE { MODE_CONSERVATIVE, MODE_RANGEBOUND };
-
Conservative Mode(保守模式) —— 一个点数评分系统。订单块、扫荡、背离、衰竭、吸收、Cluster 共振以及期权共振分别增加评分;只有当总评分超过 MinSignalScore (默认 4)时,信号才会触发。在该模式下,市场环境过滤器(第 12 节的基本面/情绪判断)会主动阻止与当前市场偏向相反的信号。
-
Range-Bound Mode(区间模式) (本版本默认模式) —— 必须满足一个结构条件(订单块 或 当前有效的需求/供给区域)以及一个确认条件(背离、衰竭 或 吸收),同时还必须满足 RangeBoundMinScore 的最低评分要求(默认 2——该数值能够精确复现原始的常驻门控逻辑;只有当你明确希望 Cluster/Options 共振对信号产生更大影响时,才建议提高该值)。该模式下,市场环境过滤器不会阻止某个方向的信号——无论基本面/情绪偏向如何,多空两个方向都保持启用。
重要——在修改 RequireDivergence 、 RequireOrderBlock 或 RequireSweep 之前请先阅读: 这三个参数只适用于 Conservative Mode。在默认的 Range-Bound Mode 中,这些参数完全不起作用,因此无需花时间调整它们。 RequireDivergence 默认设置为 false ,这样即使未来重新切换到 Conservative Mode,也能保持一致的行为。
3. 核心结构检测
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| SwingWing | 3 | K 线两侧各需要多少根 K 线才能确认摆动高点/低点。数值越低 = 摆动点越多(噪音越大);数值越高 = 摆动点越少,但重要性更高。 |
| SwingLookback | 100 | 在检查背离或扫荡结构时,摆动点搜索器向前回溯多少根 K 线。 |
| ATRPeriod | 14 | ATR 周期,用于缩放指标中几乎所有基于距离的阈值,包括位移、衰竭、吸收以及背离摆动过滤。 |
| OBDisplacementMult | 1.0 | K 线实体大小与 ATR 的最低比值;必须达到该比例,该 K 线才有资格成为订单块的位移 K 线。 |
| OBMaxWickRatio | 0.3 | 位移 K 线的影线占整个波动范围的最大比例(0–1)。用于过滤那些虽然波动范围很大、但绝大部分是影线的 K 线,避免被认定为真实位移。 |
| SDMoveMultiple | 3.0 | 后续爆发性移动必须达到“基础”K 线波动范围的多少倍,才有资格认定为供给/需求区域(见第 6 节)。 |
| EquilibriumBandPct | 0.05 | 检测到的区间 50% 水平附近“平衡区”(Equilibrium Band)的宽度。 |
4. 确认检测器
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| EnableExhaustion | true | 衰竭检测器总开关。 |
| ExhaustionWickMult | 0.6 | 一根 K 线要被认定为衰竭 K 线,影线与整个波动范围的最低比例。 |
| ExhaustionBodyMult | 0.3 | 在满足影线条件的同时,实体与整个波动范围允许达到的最大比例。 |
| EnableAbsorption | true | 吸收检测器总开关。 |
| AbsorptionVolFactor | 1.5 | 要认定为吸收,K 线成交量至少必须达到平均成交量的多少倍。 |
| AbsorptionRangeFactor | 0.8 | 相对于 ATR 的最大波动范围比例(吸收 = 高成交量 + 小波动范围)。 |
| AbsorptionRejectPct | 0.2 | 所需的最低影线拒绝比例。 |
| EnableDivergence | true | 背离检测器总开关——即使关闭 DrawDivergenceMarks ,也建议保持开启(见第 2 节)。 |
| DrawDivergenceMarks | false(本版本) | 纯视觉设置——控制是否显示图表上的 DIV_ 标记,不会影响信号生成。 |
| DivergenceMinSwingATR | 1.0 | 两个摆动点进行背离比较之前,摆动点之间必须达到的最小价格差(以 ATR 计),用于过滤噪音级别的摆动。 |
| MaxTickBars | 50 | 最近多少根 K 线允许使用真实买卖 Tick Delta 进行背离计算;更早的数据会自动退回使用原始 Tick Volume。 |
5. Cluster 共振
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| UseClusterScoring | true | 是否让同一根 K 线上同时出现多个确认条件时获得额外评分奖励。 |
| MinClusterSignals | 3 | 必须同时一致的确认条件数量,才能触发 Cluster 加分。 |
| ClusterBonusScore | 2 | 加入信号总评分中的额外分值。 |
6. 供给与需求区域
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| DrawSupplyDemandZones | true | 区域绘制引擎总开关。 |
| SDLookback | 100 | 区域检测器向前搜索多少根 K 线,用于寻找符合条件的“基础 + 爆发移动”形态。 |
| SDMaxBaseCandles | 4 | 爆发性移动之前允许存在的“基础”(盘整)K 线最大数量。 |
| SDDisplacementMult | 0.5 | 从区域离开时的爆发性移动所需的最低实体/ATR 比例(独立于且比 OBDisplacementMult 更宽松——供需区域与订单块是独立检测的)。 |
| SDMaxZonesShown | 3 | 同一时间图表上最多显示的区域数量。 |
| SupplyZoneColor / DemandZoneColor | Red / Blue | 图表显示颜色。 |
7. 高周期过滤器
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| UseHTFFilter | true | 在信号触发之前,是否要求更高周期方向判断与信号方向一致。 |
| HTFTimeframe | H4 | 用于检查的更高时间周期。 |
| HTFLookbackBars | 20 | 趋势判断向前回看多少根已收盘的 H4 K 线。 |
| HTFNeutralPct | 0.05 | 高周期趋势距离完全横盘足够近时,将其视为“中性”(既不阻止做多,也不阻止做空)的阈值。 |
8. 交易时段过滤器
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| AllowedSession | SESSION_ALL | 将信号限制在指定时段: SESSION_ALL 、 SESSION_LONDON 、 SESSION_NEWYORK 或 SESSION_LONDON_NY 。 |
| UTCOffsetHours | 0 | 如果你的经纪商服务器时间不是 UTC,则在这里进行调整。 |
9. 信号冷却与过期区域衰减
| 输入参数 | 默认值 | 分组 | 控制内容 |
|---|---|---|---|
| SignalCooldownBars | 5 | Signal Cooldown | 同一个区域触发两次信号之间必须至少间隔的 K 线数量(或者在价格移动不足时,至少满足规定的价格距离),以防止同一水平被重复触发。 |
| MaxBarAgeForSignal | 25 | Stale Zone Decay | 一个订单块允许存在多少根 K 线,同时仍可作为新信号的有效结构。该参数决定箭头是否会显示,与第 13 节中的提醒时间设置不同。 |
10. 风险管理协议
一旦检测到看涨或看跌订单块,图表会绘制 TP1 / TP2 / TP3,以及一个 BE 参考线,其中斐波那契扩展默认值分别为 1.618 / 2.618 / 4.236。
图表上的规则必须严格按照以下方式执行:TP1 出现后,将止损移动到盈亏平衡点,而不是在订单块信号刚触发时就移动。 BE 线锚定在订单块边缘,用于提供参考水平;真正触发止损移动的条件是 TP1 被触及。这是交易者需要手动执行的操作——指标不会自动修改你的止损。
| 输入参数 | 默认值 |
|---|---|
| EnableFibTargets | true |
| FibTP1 / FibTP2 / FibTP3 | 1.618 / 2.618 / 4.236 |
| FibTP1Color / FibTP2Color / FibTP3Color | Yellow / Orange / Red |
| TrailBEColor | White |
11. 期权共振——两种数据源
你有两种方式可以向“Options Liquidity Confluence”评分奖励模块提供真实的期权市场数据。两者只需要选择一种——即使两种都不使用,指标也可以正常运行。
方案 A —— FlashAlpha Live API(方便,但属于代理数据)
-
在 lab.flashalpha.com 免费获取 API Key。
-
将 UseLiveAPI = true ,并将密钥粘贴到 FlashAlpha_API_Key 。
-
将 FlashAlpha_Expiration 设置为你希望使用的到期日,格式为 yyyy-MM-dd ——这是必需的,因为免费版无法一次查询“所有到期日”。
-
FlashAlpha_Symbol 保持默认值 NEM ,除非你有明确理由更改它。
请明确你实际获得的是什么: FlashAlpha 免费版不提供真实 COMEX 黄金期权,因此这里使用 NEM(Newmont,一家黄金矿业股票)作为具有相关性的代理品种。指标不会直接把代理股票的执行价绘制在黄金图表上(它只使用该代理品种的净 Gamma / GEX 读数);但必须理解:在 Live API 模式下,“Options Confluence”实际上是来自相关资产的情绪代理,而不是黄金本身的真实期权持仓。
方案 B —— Barchart.com 每月 CSV(真实黄金期权,手动刷新)
这里使用的是实实在在的 COMEX 黄金(GC)期货期权数据——不是代理。
-
打开 Barchart 的黄金期货期权链( barchart.com/futures/quotes/GC*0/options ),选择你的合约月份,然后将期权链下载为 CSV。
-
每一行至少需要 13 个逗号分隔的列,其中:
-
第 1 列 = Strike(执行价)
-
第 9 列 = Volume(成交量)
-
第 10 列 = Open Interest(未平仓量)
-
第 13 列 = Option Type(期权类型,必须以 C 或 P 开头;标题行可以存在,程序会自动跳过)
-
-
将文件放入你的终端专属数据文件夹:File → Open Data Folder → MQL5 → Files。
-
将 CSV_File_Name 设置为与文件名完全一致(默认: gcv26-options-monthly.csv )。
-
将 UseLiveAPI = false 。
上述列位置(1、9、10、13)完全按照程序代码的要求定义。Barchart 网站针对每一种“View”设置导出的确切列顺序在这里并没有经过独立验证——如果你的下载文件列顺序不一致,可以先在 Excel 中重新排列列,再保存文件。
期权显示参数调整
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| Min_OI_Threshold | 100 | 一个 Strike 至少需要达到多少未平仓量,才会计入 BSL/SSL。 |
| Min_Volume_Threshold | 200 | 期权相关水平所需满足的最低成交量过滤。 |
| Max_Pain_Buffer | 5 | Max Pain 周围允许的容差范围(以 Strike 数量计)。 |
| Max_Strikes_Processed | 100 | 最多读取多少个执行价,按距离当前价格的远近排序。 |
| Max_Battle_Zones_Shown | 5 | 图表上最多显示的高 OI “Battle Zone”(多空争夺区域)水平数量。 |
| Refresh_Hotkey | R | 在图表上按下该按键,可强制立即刷新期权数据。 |
| Auto_Refresh_Seconds | 60 | 指标每隔多少秒检查一次是否需要刷新(这与 RefreshIntervalHours 并不是同一个参数)。 |
| UseOptionsConfluence | true | 期权共振评分奖励总开关(两种模式均适用)。 |
| OptionsConfluenceATRMult | 0.5 | 当价格距离关键期权水平在多少 ATR 范围内时,才会应用额外评分。 |
| OptionsConfluenceBonus | 1 | 期权共振增加的评分。 |
12. 自动基本面与市场情绪
两者的评分范围均为 0–100:
-
基本面评分:0 = 对黄金看跌,100 = 对黄金看涨。
-
情绪评分:0 = 极度恐惧,100 = 极度贪婪。
-
两者的默认/中性值均为 50。
市场环境判断内置了一个逆向覆盖机制:
-
当情绪 ≥ 85 且基本面 < 80 时,系统转为看跌(逆向交易极端贪婪)。
-
当情绪 ≤ 15 且基本面 > 20 时,系统转为看涨(逆向交易极端恐惧)。
-
其他情况下:
-
任一评分 > 70 → 看涨偏向
-
任一评分 < 35 → 看跌偏向
-
该市场环境数据只会在 Conservative Mode 中对方向进行过滤;在 Range-Bound Mode 中,它仅作为信息参考。
这些属于混合评分,并不是完全自动化的评分。 即使 UseAutoFundamentals = true ,仍然有几个组件没有免费的公开数据源,因此必须始终手动输入:
| 手动输入 | 含义 | 来源 |
|---|---|---|
| ManualFedStance | 0 = 极度鹰派 … 100 = 极度鸽派 | 你自己的判断——不存在干净的标准化数值数据源 |
| ManualCmeCutProb | CME FedWatch 下一次会议降息概率(0–100) | cmegroup.com CME FedWatch Tool |
| ManualNFPActual / ManualNFPExpected | 非农就业,实际值 vs 市场预期(千人) | BLS 提供实际值;市场一致预期并非政府数据 |
| ManualADPActual / ManualADPExpected | ADP 就业,实际值 vs 市场预期(千人) | 原因与 NFP 相同 |
| ManualGeoScore | 地缘政治紧张程度,0–100 | 你自己的判断 |
| BPR_USBanksLong / BPR_USBanksShort | CFTC 银行参与报告,COMEX 黄金 | cftc.gov Bank Participation Reports(月度) |
当 UseAutoFundamentals = true 时,以下组件会自动获取:
-
美联储资产负债表(FRED)
-
CPI/PPI/失业率(BLS)
-
你的经纪商所提供的石油品种价格
对于情绪,当 UseAutoSentiment = true 时,系统会自动读取:
-
CFTC Commitment of Traders(Disaggregated, Managed Money)
-
JM Bullion Fear & Greed 指标
最简单的方式: 将 UseAutoFundamentals = false 和 UseAutoSentiment = false ,然后自行输入一个整体的 FundamentalScore / SentimentScore (0–100)。这样完全不需要任何外部依赖。
获取 FRED API Key
-
在 fred.stlouisfed.org/docs/api/api_key.html 免费注册。
-
将密钥粘贴到 FRED_API_Key 。只有资产负债表组件需要该 API Key。
将所需 URL 加入白名单
在 MT5 中:Tools → Options → Expert Advisors → 勾选 “Allow WebRequest for listed URL:” → 添加你实际使用的每个域名:
13. 警报
| 输入参数 | 默认值 | 控制内容 |
|---|---|---|
| AlertOnSignal | true | 出现新信号时弹出终端警报。 |
| SendPushNotification | false | 通过 MetaTrader App 发送推送通知。 |
| SuppressAlertsOnBackfill | true | 在加载/重新编译时重新计算历史 K 线期间,绝不发送警报。 |
| MaxSignalAgeBarsForLog | 25 | 如果信号所在 K 线收盘已经超过该数量的 K 线,则不进行提醒。该设置独立于历史回补检查,因此如果数据缺口或短暂断开导致信号延迟出现,只要仍处于该范围内,系统仍会提醒你。 |

