IMM Kalman Beta vs OLS Beta 对 z4h 影响对比分析
IMM Kalman Beta vs OLS Beta 对 z4h 影响对比分析
1. 背景
系统使用 z4h(zscore_4h)作为配对交易的核心入/退场信号。z4h 的计算依赖于 β(hedge ratio) 构建的价差序列(spread)。β 的估计精度直接决定了 z4h 是否真实反映协整关系的偏离。
本文对比分析两种 β 估计方法在快速变化行情中对 z4h 的影响差异。
2. z4h 的构建路径
2.1 计算公式
spread = log(alt_price) - β × log(base_price)
z4h = (spread[-1] - mean(spread[:-1])) / std(spread[:-1])
β 的来源决定了 spread 的质量,进而决定 z4h 的准确性。
2.2 β 替换逻辑
analysis_core.py 中的关键代码(line 566-574):
_kalman_warm = kalman_result is not None and _n_updates >= IMM_KALMAN_WARMUP
beta_for_spread = kalman_result['beta'] if _kalman_warm else beta_ols
- 热身前(n_updates < warmup):使用 OLS β
- 热身后:使用 IMM Kalman β 替换 OLS β 构建 spread → 计算 z4h
- ADF 结构检验始终使用 OLS β(基于完整 beta_window,不受影响)
3. 两种 β 估计方法概述
3.1 原始 OLS β
- 算法:对最近
BETA_WINDOW(100 根 4h K 线)取对数价格做线性回归 - 更新方式:每次 tick 重算整个窗口的 OLS 回归
- 有效滞后:100 × 4h = 400h ≈ 17 天
- 权重分配:窗口内所有数据点等权
3.2 IMM Kalman β
- 算法:M=5 并行 OU Kalman Filter,每个模型使用不同的 (Q_β, Φ_β) 对,通过贝叶斯模型概率实时加权融合
- 更新方式:每根新 bar 或降频间隔到达时增量更新(v5.1)
- 有效滞后:高Q模型激活时 数个 bar 内(Q_β=1e-2 对应 Kalman Gain 最大)
- 权重分配:通过 Student-t 似然自动调节各模型权重
模型网格:
| 模型 j | Q_β | Φ_β | 物理含义 | 稳态 P_∞_β |
|---|---|---|---|---|
| M0 | 1e-6 | 0.950 | β 几乎不变,强回归 | 1.0e-5 |
| M1 | 1e-5 | 0.970 | β 缓慢变化 | 1.7e-4 |
| M2 | 1e-4 | 0.980 | β 正常变化 | 2.5e-3 |
| M3 | 1e-3 | 0.990 | β 快速变化,弱回归 | 5.0e-2 |
| M4 | 1e-2 | 0.995 | 结构性断裂,近自由漂移 | 1.0 |
4. 快速行情中的核心区别
4.1 β 响应速度对比
| 特性 | OLS Beta | IMM Kalman Beta |
|---|---|---|
| 对突变的延迟 | ~17 天(窗口滑动) | 秒级~分钟级(高Q模型激活后快速追踪) |
| 异常值敏感度 | 窗口内等权,异常值影响 1/100 | Student-t 似然 + Huber clipping(3σ)抑制异常值 |
| β 漂移追踪 | 阶梯式跳变(旧数据滑出窗口时突变) | 平滑渐进追踪(x̄ 在线漂移,γ_bar=0.005) |
| 横盘期稳定性 | 稳定(窗口内数据变化小) | 稳定(obs_weight≈0 时模型概率几乎不更新) |
4.2 IMM 的自适应追踪机制
当 β 发生真实结构性变化时:
β 突变 → innovation(观测残差)持续偏大
→ 高Q模型(M3/M4)的 Kalman Gain 更大 → 预测更接近观测
→ 高Q模型似然更高
→ 贝叶斯更新使 μ₃, μ₄ 上升
→ 融合 β = Σ μⱼ × βⱼ 快速偏向高Q模型的估计
→ β_kalman 快速追踪真实 β
而异常值(瞬时噪声,非 β 变化)时:
单次异常观测 → Student-t 似然对异常值惩罚远小于高斯
→ 模型概率变化有限
→ Huber clipping 截断状态更新幅度(±3σ)
→ β_kalman 保持稳定
5. 对 z4h 值的具体影响分析
5.1 场景 1:β 从 0.8 突变到 1.2(联动增强)
背景:基准币暴涨,目标币联动从 0.8 增强到 1.2。
原始 OLS:
- β_ols 仍在 ~0.8 附近(100 根窗口中仅 1-2 根新数据)
spread = log_alt - 0.8 × log_base- 因为真实 β 已是 1.2,base 大涨时
0.8 × log_base低估了应抵消的部分 - spread 系统性偏移 → z4h 虚假放大
- 可能触发本不该触发的入场信号
IMM Kalman:
- 高Q模型概率上升 → effective_q_beta ↑
- β_kalman 在数个 bar 内追踪到 ~1.2
spread = log_alt - 1.2 × log_base- spread 准确反映协整关系偏离
- → z4h 更真实(减少虚假信号)
5.2 场景 2:β 从 1.0 突变到 -0.5(联动反转)
背景:极端行情下配对关系发生方向性变化。
原始 OLS:
- β_ols 仍在 ~1.0(严重滞后)
- spread 计算完全失真 → z4h 既不反映旧关系也不反映新关系
- 持续产生无意义的虚假信号
IMM Kalman:
- M4 模型(Q_β=1e-2, Φ_β=0.995)快速追踪
regime_score飙升到 >0.7 → Gate3 硬拦截,阻止在不确定期开仓- β 稳定后 regime_score 回落,恢复正常交易
5.3 场景 3:瞬时闪崩后恢复(β 未真正改变)
背景:短暂闪崩导致价格剧烈波动,但基本面关系未变。
原始 OLS:
- β_ols 几乎不变(窗口足够大,1-2 根异常 K 线影响有限)
- spread 短暂偏离后回归 → z4h 先飙升后回归
- 可能在闪崩时错误入场
IMM Kalman:
- Student-t 似然(ν≈5-10)对异常值容忍度高,不像高斯那样过度反应
- Huber clipping(3σ)截断极端 innovation 对状态的影响
- β_kalman 保持稳定 → z4h 波动被抑制
- 如果 regime_score 短暂上升,阈值缩放也提供额外保护
6. z4h 特性对比总结
| 维度 | 原始 OLS β | IMM Kalman β |
|---|---|---|
| β 突变后 z4h 偏差 | 大(β 滞后 → spread 系统性偏移 → z4h 虚高/虚低) | 小(β 快速追踪 → spread 更准确) |
| z4h 波动幅度 | 更大(β 不匹配放大了 spread 波动) | 更小更稳定(β 匹配后 spread 主要反映真实均值偏离) |
| 虚假入场风险 | 高(z4h 因 β 滞后而虚假放大) | 低(z4h 更真实 + regime_score 拦截) |
| 虚假退场风险 | 高(持仓中 β 变化 → z4h 突然回归假象) | 低(β 持续追踪,spread 均值回归更真实) |
| 异常值鲁棒性 | 中等(窗口平均有一定平滑效果) | 高(Student-t + Huber clipping 双重保护) |
| 极端行情表现 | 可能连续误入场 | Gate3 硬拦截 + 阈值缩放 |
| 横盘期表现 | 稳定 | 同样稳定(obs_weight≈0 时模型概率冻结) |
7. IMM 的附加保护层:体制检测
IMM 不仅改善了 z4h 的数值精度,还通过 regime_score 引入了额外的风险控制层级:
regime_score = Σ μⱼ (j ∈ 高Q模型)
| regime_score | 含义 | 对 z4h 信号的处理 |
|---|---|---|
| < 0.3 | 低Q模型主导,β 稳定 | 正常使用 z4h 入场 |
| [0.3, 0.7) | β 开始快速变化 | z4h 阈值线性缩放(threshold × scale,最大 2.0) |
| ≥ 0.7 | β 剧烈变化(结构性断裂) | Gate3 硬拦截,无论 z4h 多大都禁止入场 |
阈值缩放公式(strategy.py _IMMRegimeDetector):
t = (regime_score - soft_prob) / (hard_prob - soft_prob) # [0, 1]
threshold_scale = 1.0 + t × (scale_max - 1.0) # [1.0, 2.0]
这意味着在快速行情中,即使 IMM β 已修正了 z4h,体制检测仍会提高入场门槛或直接阻止入场——双重保护。
8. 数据流对比图
原始算法
K 线数据(100 根窗口)
↓
OLS 回归 → β_ols(滞后 ~17 天)
↓
spread = log_alt - β_ols × log_base
↓
z4h = (spread[-1] - mean) / std
↓
直接判断入场/退场(无体制保护)
IMM 算法
K 线数据
↓
┌─────────────────────────────────────────────┐
│ OLS 回归 → β_ols(ADF 检验用) │
│ │
│ IMM Kalman Filter: │
│ M=5 并行模型 → 贝叶斯概率加权 │
│ Student-t 似然 + Huber clipping │
│ Sage-Husa 自适应 R │
│ → β_kalman(快速追踪) │
│ → regime_score(体制检测) │
└─────────────────────────────────────────────┘
↓ ↓
spread = log_alt regime_score
- β_kalman × log_base ↓
↓ ┌─────────────────┐
z4h(更准确) │ < 0.3: 正常入场 │
↓ │ 0.3-0.7: 阈值缩放 │
入场/退场判断 ←──────── │ ≥ 0.7: 硬拦截 │
└─────────────────┘
9. 直觉类比
| 类比 | OLS β | IMM Kalman β |
|---|---|---|
| 汇率换算 | 用过去 17 天的平均汇率——行情平稳时可用,暴涨暴跌时严重失真 | 实时汇率 + 波动异常时发出警告 |
| 温度计 | 每 17 天校准一次——正常天气够用,极端天气读数偏差大 | 持续自校准 + 温度骤变时报警 |
| 导航系统 | 每 17 天更新一次地图——路况稳定时可行,道路改建时导偏 | 实时路况 + 道路施工时建议绕行 |
10. 结论
-
z4h 精度:IMM Kalman β 通过快速追踪真实 β 变化,消除了 OLS β 滞后导致的 spread 系统性偏移,使 z4h 在快速行情中更准确、波动更小。
-
风控增强:IMM 额外输出 regime_score 作为体制检测指标,在 β 不确定期自动提高入场门槛或硬拦截,从根本上避免了在 β 突变期的盲目交易。
-
鲁棒性:Student-t 似然 + Huber clipping 使 IMM β 在异常值(闪崩、流动性缺失)面前保持稳定,避免 z4h 因噪声而产生虚假信号。
-
代价:IMM 引入了额外的计算复杂度和参数(5 模型 × 多个超参数),以及热身期内仍依赖 OLS β 的过渡阶段。但在实际运行中,增量更新的计算开销极低(单次 update 为 O(M²) 矩阵运算,M=5)。