# 机构化平衡信号 — 设计规范(MT4,优先支持 XAUUSD_1
机构化平衡信号 — 设计规范(MT4,优先支持 XAUUSD)
概览
- 目标:把机构做单思路(平衡 vs 价格发现 vs 成本/冲击)转成两类可用信号——突破与回归,不使用任何传统技术指标。
- 数据约束:仅使用 O/H/L/C、tick 体量、点差、时间。禁用均线、RSI 等。
- 可验证性:非重绘——只在收盘刻印信号;未收盘仅做“预警”不落标。
- 过滤:多周期过滤(慢周期= M15)基于价值区方向;会话与事件黑名单过滤。
- XAUUSD 优先:在大波动/扩点差环境下自适应抬高门槛以降低误报。
机构化动机与映射
- 平衡区(价值区)≈ 内部化带宽:市场在此区间更容易被动/主动流交汇,价格被“接受”。
- 价格发现(突破):价格脱离价值区,同时出现“流动性变紧+主动成交增强”的微结构迹象。
- 再平衡(回归):价外推进失败,回到价值区,同时交易条件“正常化”(点差回落、速度减弱、失衡缓和)。
- 成本/冲击优先:以点差、速度(波动的波动)、tick 体量失衡作为微结构代理,条件不满足则不交易。
数据与限制
- 输入:图表周期上的
Open, High, Low, Close, tick_volume, spread, time;慢周期数据通过i*系列读取。 - 无订单簿/真实成交量:用 tick_volume 近似活跃度;用 spread 近似流动性松紧。
- 经纪商历史 spread/tick 质量差异较大:需容错与降级策略。
核心组件
1) 价值区构建(快周期)
- 以分钟为窗口(非固定 bar 数):如 480 分钟(≈8 小时),按
minutes*60/PeriodSeconds()换算 bars。 - 以价格直方图表现“在价停留”:bin 大小为
binUsd,权重取max(tick_volume,1),价位用HL2。 - POC:直方图众数;从 POC 向两侧扩展至覆盖
ValueAreaPercent(如 70%),得到VAL/VAH。 - XAUUSD 自适应 bin:
binUsd = max(BinSpreadFactor*点差中位价值, BinRealizedFactor*真实波动中位, MinBinUSD)。
2) 动态阈值与基线
- 点差基线:近 1–3 小时的
spread滚动中位数。 - 实现波动基线:近 N 根
High-Low的中位;价格速度的 MAD 用于 z 归一。 - 突破缓冲:
bufferUsd = max(BufferSpreadFactor*点差中位价值, MinBufferUSD)。 - tick 体量失衡:近
ConfirmBars根,按 K 线涨跌划归(买−卖)/总tick,平盘均分。
3) 风险守卫(抑制噪音/误报)
- 价值区宽度底线:
VAH-VAL >= max(MinVAWidthUSD, MinVAWidthSpreadMult*点差中位价值)。 - Kill-switch:若
|z_speed| >= ExtremeZFactor或spread >= ExtremeSpreadFactor*基线,禁止信号。 - 会话与整点过滤:仅在配置时段内;整点前后 ±N 分钟禁信号。
- 事件黑名单:在给定时间窗口附近抑制信号(格式见下)。
信号定义
突破(价格发现)
收盘刻印,需全部满足:
- 价格越界:
Close > VAH + bufferUsd(多)或Close < VAL - bufferUsd(空)。 - 速度异常:
z_speed = (Close[1]-Close[1+ConfirmBars])/MAD达阈值,方向一致。 - 体量失衡:多向
imbalance >= ImbalanceThreshold;空向<= -ImbalanceThreshold。 - 点差扩张:
spread >= SpreadWidenFactor_Breakout * 点差基线。 - 多周期门控:慢周期 POC 方向支持(如多单要求
Close >= POC_slow)。 - 冷却:同向信号在
CooldownBars根内不重复。
回归(再平衡)
收盘刻印,需全部满足:
- 价外→价内:上一根在价值区外,当前根回到
[VAL, VAH]区内。 - 速度:
|z_speed| >= ReversionSpeedZ且方向支持回归。 - 失衡:回归方向一致或趋零(如自上回归做空,要求失衡 ≤ 0)。
- 点差恢复:
spread <= SpreadNormalize_Reversion * 点差基线。 - 多周期门控:不与慢周期方向冲突;冲突时加严或过滤。
- 冷却:同向冷却与突破一致。
预警(仅观测,不落标)
- 在当前未收盘 K 线上,若多数突破条件已接近阈值(如 ≥80%),显示小状态标签(不画箭头、不留历史)。
- 新 K 线到来或条件回落时清除。
多周期过滤(慢周期 = M15)
- 在
SlowTF=M15上同样按LookbackMinutes与binUsd构建慢价值区。 - 门控逻辑:
- 多头突破:
Close_fast >= POC_slow(或接近慢 VAH)放行;空头突破:Close_fast <= POC_slow放行。 - 一致性增强:快/慢一致时可轻度放宽阈值;相反则加严或直接过滤。
- 多头突破:
- 慢周期仅用于门控,不回写或改动快周期历史(避免重绘)。
会话与事件过滤
- 会话:以经纪商服务器时间配置
[SessionStartHour, SessionEndHour](含端点)。 - 整点:避开整点前后
NoTradeMinutesAroundHour分钟。 - 事件黑名单输入格式(字符串):
"yyyy.mm.dd HH:MM|M;yyyy.mm.dd HH:MM|M;...",M为时间半径(分钟)。- 示例:
2025.01.31 21:30|15;2025.02.01 03:00|10。
非重绘保证
- 仅在新 K 线到来时,对上一根(索引1)进行判定与刻印;索引0(未收盘)不刻印。
- 已刻印的历史箭头与数值不被修改;价值区线为“当时计算”的历史序列,不用未来数据回填。
- 预警只在当前显示,属于临时可视,不写入历史。
建议默认参数
- 窗口与价值区:
LookbackMinutes=480,ValueAreaPercent=70。 - bin 与缓冲(自适应):
BinSpreadFactor=0.5,BinRealizedFactor=0.15,MinBinUSD=0.20;BufferSpreadFactor=1.2,MinBufferUSD=0.10。 - 确认与阈值:
ConfirmBars=5,BreakoutSpeedZ=1.4(M1)/1.2(M5),ReversionSpeedZ=0.8(M1)/0.6(M5),ImbalanceThreshold=0.20。 - 点差状态:
SpreadWidenFactor_Breakout=1.8,SpreadNormalize_Reversion=1.3。 - 风险守卫:
ExtremeZFactor=3.0,ExtremeSpreadFactor=3.0,MinVAWidthUSD=1.0,MinVAWidthSpreadMult=15.0,CooldownBars=10。 - 过滤模式:
UseMTFFilter=true,SlowTF=M15;会话默认7–22,整点 ±1 分钟禁信号。 - 功能开关:
EnableBreakout=true,EnableReversion=true,EnablePrewarn=true。
XAUUSD 专项自适应
- 所有阈值随点差中位与真实波动中位缩放,大波动/扩点差场景下自动提高门槛(宁缺毋滥)。
- 价值区宽度以美元与点差倍数双重下限约束,避免“假平衡”。
- Kill-switch 避免重大新闻/伦敦 PM Fix 等极端波动期的误报。
边界与降级
- 当 tick_volume 或 spread 基线失真(大量 0)时,延长窗口或直接暂停信号。
- 价值区过窄时跳过信号,直到重新形成有效平衡。
- 周末/跳空开盘:设定最小预热期或更严阈值后再恢复。
伪代码(高层)
on_new_bar():
计算 medSpread、medTR、MAD
binUsd = max(BinSpreadFactor*medSpread*Point, BinRealizedFactor*medTR, MinBinUSD)
buffer = max(BufferSpreadFactor*medSpread*Point, MinBufferUSD)
fVA = build_value_area(快周期, LookbackMinutes, binUsd)
sVA = build_value_area(慢周期, LookbackMinutes, binUsd) if UseMTFFilter
if !in_session() or in_event_blackout(): return
if kill_switch() or va_too_narrow(): return
z = (Close[1] - Close[1+ConfirmBars]) / MAD
im = tick_imbalance(ConfirmBars)
spd_wide = spread[1] >= medSpread * SpreadWidenFactor_Breakout
spd_norm = spread[1] <= medSpread * SpreadNormalize_Reversion
gate_long = !UseMTFFilter || (Close[1] >= POC_slow)
gate_short = !UseMTFFilter || (Close[1] <= POC_slow)
if EnableBreakout:
if Close[1] > fVAH + buffer and z>BreakoutSpeedZ and im>ImbalanceThreshold and spd_wide and gate_long and cooldown_ok(LONG):
stamp_long_arrow()
if Close[1] < fVAL - buffer and z<-BreakoutSpeedZ and im<-ImbalanceThreshold and spd_wide and gate_short and cooldown_ok(SHORT):
stamp_short_arrow()
if EnableReversion:
if was_above(fVAH, bar=2) and inside(fVA, bar=1) and z<-ReversionSpeedZ and im<=0 and spd_norm and gate_short and cooldown_ok(SHORT):
stamp_short_arrow()
if was_below(fVAL, bar=2) and inside(fVA, bar=1) and z> ReversionSpeedZ and im>=0 and spd_norm and gate_long and cooldown_ok(LONG):
stamp_long_arrow()
on_tick():
if EnablePrewarn:
计算当前 bar 的近阈值条件(0.8×门槛)
若满足多数突破条件且门控通过:显示小标签;否则清除
验证(类 TCA)
- 分时段:亚洲/伦敦/纽约分别统计触发率、误报率、最大不利波动(MAE)。
- 分点差分位:紧/常/宽点差环境下的表现差异。
- 事件对照:黑名单开/关对误报的影响对比。
- 可交易性代理:信号后 N 根的到达价偏差与简化 VWAP 的滑点估计。
经纪商服务器时区与会话设置(落地指南)
- 目标:让“活跃时段过滤”和“整点避开”与服务器时区一致,减少误报与成本。
- 步骤:
- 确认服务器相对 UTC 的时差与是否采用夏令时(在市场观察窗口查看时间,或对照新闻发布时间与服务器时间差)。
- 选择你的目标活跃时段(建议覆盖伦敦开盘至纽市后半段)。
- 把目标时段从 UTC 转换为服务器时间,填写
SessionStartHour/SessionEndHour。
- 推荐(通用保守):
SessionStartHour=7,SessionEndHour=22(多数经纪商可用)。 - 推荐(常见 UTC+2 服务器)
- 冬令(UTC+2):伦敦 08–17 UTC ⇒ 10–19 服务器;纽约 13–22 UTC ⇒ 15–24 服务器。
- 一体化活跃时段可设:
09–23(更完整),或按你流动性偏好微调。 - 夏令(UTC+3):相应整体向前 1 小时,如设
08–23。
- 整点避开:
NoTradeMinutesAroundHour=1(建议保持)。 - 事件黑名单:将服务器时间戳录入,例如:
2025.03.14 21:30|15;2025.04.10 21:30|15(示例:高影响美数据,半径 15 分钟)。
M1 / M5 默认参数细化(起步建议)
- 共通:
LookbackMinutes=480,ValueAreaPercent=70,AutoBin/AutoBuffer=开启。 - M1(更保守以应对噪声)
ConfirmBars=5BreakoutSpeedZ=1.4,ReversionSpeedZ=0.8ImbalanceThreshold=0.20SpreadWidenFactor_Breakout=1.8,SpreadNormalize_Reversion=1.3BinSpreadFactor=0.5,BinRealizedFactor=0.15,MinBinUSD=0.20BufferSpreadFactor=1.2,MinBufferUSD=0.10MinVAWidthUSD=1.0,MinVAWidthSpreadMult=15.0CooldownBars=10
- M5(噪声更低、信号更少)
ConfirmBars=3BreakoutSpeedZ=1.2,ReversionSpeedZ=0.6- 其余参数与 M1 相同起步;必要时可将
CooldownBars提至 12–15 进一步降频。
信号判定流程图(ASCII)
[新K线产生]
|
计算 medSpread / medTR / MAD
|
动态 binUsd / bufferUsd 生成
|
构建 快周期 VA 与 慢周期 VA
|
会话通过? —— 否 ——> [结束]
|
黑名单窗口? —— 是 ——> [结束]
|
Kill-switch 触发? —— 是 ——> [结束]
|
VA 过窄? —— 是 ——> [结束]
|
计算 z_speed / imbalance
|
MTF 门控(POC_slow)
|
┌─────────────Breakout──────────────┐
| 价越界 + z 达阈 + 失衡达阈 + 点差扩 |——是——> 冷却通过?——是——> [刻印突破箭头]
└───────────────────────────────────┘ |
| 否
| v
┌──────────────Reversion─────────────┐ [结束]
| 价外→价内 + z 达阈 + 失衡支持 + 点差恢 |——是——> 冷却通过?——是——> [刻印回归箭头]
└───────────────────────────────────┘ |
| 否
v v
[结束] [结束]
(Tick 期间)
若 EnablePrewarn:
以 0.8× 门槛评估当前 bar 的突破倾向 & 门控
满足则显示“PREWARN”标签;不满足则清除
后续可扩展
- 基于尾部风险分位的自适应双缓冲。
- 更高一档慢周期(如 H1)在新闻密集时作为增强门控。
- 轻量执行 EA 用不同分单节奏模拟 implementation shortfall。
使用说明(快速上手)
- 安装与加载
- 将
InstitutionalBalanceSignal.mq4放入MQL4/Indicators/,在 MT4“导航器-指标”中编译并加载到XAUUSD的M1/M5图表。 - 首次建议在
M5上观察价值区线是否合理,再切换到M1。
- 将
- 推荐首套设置(可保持为默认)
LookbackMinutes=480,ValueAreaPercent=70;AutoBin/AutoBuffer=true。ConfirmBars=5(M1)/3(M5),BreakoutSpeedZ=1.4/1.2,ReversionSpeedZ=0.8/0.6,ImbalanceThreshold=0.20。SpreadWidenFactor_Breakout=1.8,SpreadNormalize_Reversion=1.3。UseMTFFilter=true,SlowTF=M15;SessionStartHour=7,SessionEndHour=22,NoTradeMinutesAroundHour=1。EnablePrewarn=true(仅显示角落提示,不落标)。
- 事件黑名单
- 在
EventBlackoutCsv录入服务器时间戳与半径(分钟),格式如:2025.03.14 21:30|15;2025.04.10 21:30|15。
- 在
参数速览(按用途分组)
- 窗口与价值区:
LookbackMinutes(分钟窗口)、ValueAreaPercent(覆盖比例)。 - 自适应粒度与缓冲:
AutoBin、BinSpreadFactor、BinRealizedFactor、MinBinUSD;AutoBuffer、BufferSpreadFactor、MinBufferUSD。 - 触发确认:
ConfirmBars、BreakoutSpeedZ、ReversionSpeedZ、ImbalanceThreshold。 - 点差状态:
SpreadWidenFactor_Breakout、SpreadNormalize_Reversion。 - 风险守卫:
ExtremeZFactor、ExtremeSpreadFactor、MinVAWidthUSD、MinVAWidthSpreadMult、CooldownBars。 - 过滤:
UseMTFFilter、SlowTF、SessionStartHour/EndHour、NoTradeMinutesAroundHour、EventBlackoutCsv。 - 模式:
EnableBreakout、EnableReversion、EnablePrewarn。
操作建议
- 先用
M5观察并微调(确认 VAH/VAL/POC 能刻画“停留—离开—再平衡”),再切到M1。 - 强事件前后优先用黑名单抑制;观察
预警而非立即实盘依据信号。 - 当点差异常或价值区过窄时,宁缺毋滥(保持默认的守卫阈值或更严)。
常见问题与调整
- 信号太少:
- 略放宽但保持保守:降低
BreakoutSpeedZ(小幅)、ImbalanceThreshold;缩短CooldownBars;确认UseMTFFilter是否过度门控。 - 仍需谨慎:不要同时大幅放松点差与速度阈值,避免噪声放量。
- 略放宽但保持保守:降低
- 信号过多:
- 提高
SpreadWidenFactor_Breakout、BreakoutSpeedZ;增大CooldownBars;提高MinVAWidthUSD或MinVAWidthSpreadMult。
- 提高
- 价值区不显示/异常:
- 数据不足或窗口过短:增大
LookbackMinutes;确认品种、周期、数据加载无误。
- 数据不足或窗口过短:增大
- 预警不出现:
- 确认
EnablePrewarn=true;检查图表标签是否被遮挡(缩放/切换主题)。
- 确认
非重绘与一致性
- 箭头仅在新K线到来时对上一根刻印,历史不修改;预警仅在当前显示,不留痕迹。
- 多周期(M15)仅作方向门控,不改变快周期历史,回放与实时一致。
