欢迎访问

# 机构化平衡信号 — 设计规范(MT4,优先支持 XAUUSD_1

author emer | 53 人阅读 | 0 人评论 |

机构化平衡信号 — 设计规范(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| >= ExtremeZFactorspread >= 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 上同样按 LookbackMinutesbinUsd 构建慢价值区。
  • 门控逻辑:
    • 多头突破: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=480ValueAreaPercent=70
  • bin 与缓冲(自适应):BinSpreadFactor=0.5BinRealizedFactor=0.15MinBinUSD=0.20BufferSpreadFactor=1.2MinBufferUSD=0.10
  • 确认与阈值:ConfirmBars=5BreakoutSpeedZ=1.4(M1)/1.2(M5),ReversionSpeedZ=0.8(M1)/0.6(M5),ImbalanceThreshold=0.20
  • 点差状态:SpreadWidenFactor_Breakout=1.8SpreadNormalize_Reversion=1.3
  • 风险守卫:ExtremeZFactor=3.0ExtremeSpreadFactor=3.0MinVAWidthUSD=1.0MinVAWidthSpreadMult=15.0CooldownBars=10
  • 过滤模式:UseMTFFilter=trueSlowTF=M15;会话默认 7–22,整点 ±1 分钟禁信号。
  • 功能开关:EnableBreakout=trueEnableReversion=trueEnablePrewarn=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=7SessionEndHour=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=480ValueAreaPercent=70AutoBin/AutoBuffer=开启
  • M1(更保守以应对噪声)
    • ConfirmBars=5
    • BreakoutSpeedZ=1.4ReversionSpeedZ=0.8
    • ImbalanceThreshold=0.20
    • SpreadWidenFactor_Breakout=1.8SpreadNormalize_Reversion=1.3
    • BinSpreadFactor=0.5BinRealizedFactor=0.15MinBinUSD=0.20
    • BufferSpreadFactor=1.2MinBufferUSD=0.10
    • MinVAWidthUSD=1.0MinVAWidthSpreadMult=15.0
    • CooldownBars=10
  • M5(噪声更低、信号更少)
    • ConfirmBars=3
    • BreakoutSpeedZ=1.2ReversionSpeedZ=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“导航器-指标”中编译并加载到 XAUUSDM1/M5 图表。
    • 首次建议在 M5 上观察价值区线是否合理,再切换到 M1
  • 推荐首套设置(可保持为默认)
    • LookbackMinutes=480ValueAreaPercent=70AutoBin/AutoBuffer=true
    • ConfirmBars=5(M1)/3(M5)BreakoutSpeedZ=1.4/1.2ReversionSpeedZ=0.8/0.6ImbalanceThreshold=0.20
    • SpreadWidenFactor_Breakout=1.8SpreadNormalize_Reversion=1.3
    • UseMTFFilter=trueSlowTF=M15SessionStartHour=7SessionEndHour=22NoTradeMinutesAroundHour=1
    • EnablePrewarn=true(仅显示角落提示,不落标)。
  • 事件黑名单
    • EventBlackoutCsv 录入服务器时间戳与半径(分钟),格式如:2025.03.14 21:30|15;2025.04.10 21:30|15

参数速览(按用途分组)

  • 窗口与价值区:LookbackMinutes(分钟窗口)、ValueAreaPercent(覆盖比例)。
  • 自适应粒度与缓冲:AutoBinBinSpreadFactorBinRealizedFactorMinBinUSDAutoBufferBufferSpreadFactorMinBufferUSD
  • 触发确认:ConfirmBarsBreakoutSpeedZReversionSpeedZImbalanceThreshold
  • 点差状态:SpreadWidenFactor_BreakoutSpreadNormalize_Reversion
  • 风险守卫:ExtremeZFactorExtremeSpreadFactorMinVAWidthUSDMinVAWidthSpreadMultCooldownBars
  • 过滤:UseMTFFilterSlowTFSessionStartHour/EndHourNoTradeMinutesAroundHourEventBlackoutCsv
  • 模式:EnableBreakoutEnableReversionEnablePrewarn

操作建议

  • 先用 M5 观察并微调(确认 VAH/VAL/POC 能刻画“停留—离开—再平衡”),再切到 M1
  • 强事件前后优先用黑名单抑制;观察 预警 而非立即实盘依据信号。
  • 当点差异常或价值区过窄时,宁缺毋滥(保持默认的守卫阈值或更严)。

常见问题与调整

  • 信号太少:
    • 略放宽但保持保守:降低 BreakoutSpeedZ(小幅)、ImbalanceThreshold;缩短 CooldownBars;确认 UseMTFFilter 是否过度门控。
    • 仍需谨慎:不要同时大幅放松点差与速度阈值,避免噪声放量。
  • 信号过多:
    • 提高 SpreadWidenFactor_BreakoutBreakoutSpeedZ;增大 CooldownBars;提高 MinVAWidthUSDMinVAWidthSpreadMult
  • 价值区不显示/异常:
    • 数据不足或窗口过短:增大 LookbackMinutes;确认品种、周期、数据加载无误。
  • 预警不出现:
    • 确认 EnablePrewarn=true;检查图表标签是否被遮挡(缩放/切换主题)。

非重绘与一致性

  • 箭头仅在新K线到来时对上一根刻印,历史不修改;预警仅在当前显示,不留痕迹。
  • 多周期(M15)仅作方向门控,不改变快周期历史,回放与实时一致。
还没有人打赏,支持一下