IMM Kalman Filter 模块参数详解(v5.0)

IMM Kalman Filter 模块参数详解(v5.0)

IMM(Interacting Multiple Model)是一个时变 [α, β] 联合估计器,核心思想来自 Blom & Bar-Shalom (1988):M=5 个并行 Kalman Filter 各自使用不同的 (Q_β, Φ_β) 参数对,通过贝叶斯模型概率实时加权融合。双用途输出:体制检测(regime_score → 入场过滤)+ Hedge Ratio(kalman_beta → 仓位加权)。


一、状态空间模型核心参数

1. IMM_Q_BETA_GRID — β 过程噪声网格

  • 默认值: [1e-6, 1e-5, 1e-4, 1e-3, 1e-2]
  • 含义: M=5 个模型各自的 β 过程噪声 Q_β,对数均匀分布,跨越 4 个数量级
  • 物理解释:
    • 1e-6(模型0): β 几乎不变,适配极度稳定的配对关系
    • 1e-5(模型1): β 缓慢变化
    • 1e-4(模型2): β 正常变化,"中位"模型
    • 1e-3(模型3): β 快速变化,弱回归
    • 1e-2(模型4): 结构性断裂,近自由漂移
  • 作用: 不同 Q_β 使每个模型的 P∞_β(稳态不确定性)跨 5 个数量级(1e-5 → 1.0),确保模型间区分度强

2. IMM_PHI_BETA_GRID — β OU 回归强度网格

  • 默认值: [0.95, 0.97, 0.98, 0.99, 0.995]
  • 含义: 与 Q_β 配对的 OU 均值回归系数 Φ_β
  • 设计原则: 低Q配高回归,高Q配弱回归
    • 模型0: Q=1e-6, Φ=0.95 → 强回归 + 低噪声 = β 非常稳定
    • 模型4: Q=1e-2, Φ=0.995 → 弱回归 + 高噪声 = β 近随机游走
  • 状态方程: x_t = Φ^(j) × x_{t-1} + (I − Φ^(j)) × x̄_t + w_t

3. IMM_Q_ALPHA — α 过程噪声

  • 默认值: 1e-5
  • 含义: 截距 α 的过程噪声(所有模型共享)
  • 约束: q_α = Q_β_grid[2] / 10,α 变化比中位 β 慢一个量级

4. IMM_PHI_ALPHA — α OU 回归系数

  • 默认值: 0.995
  • 含义: 截距 α 的均值回归强度(所有模型共享),几乎无回归(接近1),允许 α 缓慢漂移

二、初始化参数

5. IMM_P0_ALPHA — α 初始不确定性

  • 默认值: 0.1
  • 含义: α 的初始协方差 P₀[0,0],即 ±√0.1 ≈ ±0.32 的 1σ 区间

6. IMM_P0_BETA — β 初始不确定性

  • 默认值: 0.1
  • 含义: β 的初始协方差 P₀[1,1]
  • 设计目的: 避免冷启动时 obs_weight 过低导致更新停滞(P_β 太小 → Kalman 增益小 → 学不到东西)

三、观测噪声参数

7. IMM_R_FLOOR — 观测噪声下限

  • 默认值: 1e-6
  • 含义: Sage-Husa 自适应 R 的正定下限,匹配 spread 方差量级
  • 作用: 防止 R → 0 导致数值不稳定

8. IMM_SAGE_HUSA_B — Sage-Husa 遗忘基数

  • 默认值: 0.97
  • 含义: 时变遗忘因子的基数 b,公式 d_k = (1-b)/(1-b^k)
  • 特性:
    • 早期: d₁=1.0, d₂≈0.49 → 快速收敛
    • 长期: d_k → 0.03 → 等效 EMA(0.03)
  • 替换: v5 中替换了旧的 Robbins-Monro 方法

四、鲁棒性参数

9. IMM_CLIP_SIGMA — Huber 截断倍数

  • 默认值: 3.0
  • 含义: 创新量 ε 的截断边界为 ±c×√S,超过此范围的创新量被 clip
  • 关键: 仅影响状态更新(Kalman gain 应用的 ε),不影响似然计算,确保体制检测不受极端值干扰但概率更新正常

10. IMM_STUDENT_T_NU — Student-t 初始自由度

  • 默认值: 5.0
  • 含义: Student-t 似然的初始自由度 ν
  • 实际使用: 初始化时被 per-pair MLE 估计覆盖(用 OLS 残差做 MLE),5.0 仅为 fallback
  • 范围: clip 在 [3.0, 30.0],ν→30 接近高斯,ν=3 极度重尾

11. IMM_NU_GAMMA — ν 在线学习率

  • 默认值: 0.01
  • 含义: 在线 ν 自适应的学习率(Step 8),有效窗口约 100 步
  • 机制: 追踪预测分布的 4 阶矩 E[z⁴](v5 修正:不是 (E[z])⁴),excess kurtosis > 0.2 且 obs_weight > 0.3 时用 ν = clip(6/excess_kurt + 4, 3, 30) 反解

五、转移概率矩阵(TPM)参数

12. IMM_TPM_LAMBDA — Dirichlet TPM 遗忘因子

  • 默认值: 0.995
  • 含义: TPM 的 Dirichlet 浓度参数衰减因子
  • 有效窗口: 1/(1-0.995) = 200 步,4h bar 对应约 33 天
  • 更新公式: α_{TPM} = λ × α_{TPM} + c(c 为充分统计量)

13. IMM_TPM_KAPPA — Dirichlet 初始浓度

  • 默认值: 20.0
  • 含义: TPM Dirichlet 先验的总浓度参数
  • 作用: 控制初始 TPM 的"硬度",κ 越大初始先验越强,TPM 更新越慢

14. IMM_TRANSITION_PROB — 初始 p_stay

  • 默认值: 0.98
  • 含义: 初始状态自转移概率(Dirichlet 先验均值),即 TPM 对角线元素
  • 物理含义: 每个模型倾向于"留在原地",p_stay=0.98 意味着平均 50 步才切换一次模型

六、体制检测参数

15. IMM_HIGH_Q_THRESHOLD — 高Q模型判定阈值

  • 默认值: 1e-3
  • 含义: Q_β ≥ 此值的模型被视为"高Q模型"(模型3和4)
  • 用途: regime_score = Σ_{j: Q_β^(j) ≥ 1e-3} μ_j

16. IMM_REGIME_GATE_THRESHOLD — Gate3 体制拦截阈值

  • 默认值: 0.7
  • 含义: regime_score 超过此值时硬拦截开仓(Gate3)
  • 体制区间:
    • < 0.3: β 稳定,正常入场
    • [0.3, 0.7): β 开始变化,阈值线性缩放
    • ≥ 0.7: β 剧烈变化,禁止开仓

七、在线学习参数

17. IMM_MU_FLOOR — 模型概率下限

  • 默认值: 1e-6
  • 含义: 后验概率 μ_j 的最低值,防止任何模型被完全"杀死"
  • 作用: 确保即使某个模型当前不活跃,仍保留微弱概率可以"复活"

18. IMM_OBS_GAMMA — 可观测性权重衰减

  • 默认值: 0.05
  • 含义: BTC 方差 EMA 的衰减系数
  • 公式: btc_var_ema = (1−γ_obs) × btc_var_ema + γ_obs × r_btc²
  • 作用: obs_weight = min(r_btc² / btc_var_ema, 1.0)
    • r_btc ≈ 0 时 obs_weight → 0,模型概率几乎不更新,消除 BTC 横盘时的边界跳变

19. IMM_XBAR_GAMMA — x̄ 长期均值漂移学习率

  • 默认值: 0.005
  • 含义: OU 过程的长期均值 x̄ = [ᾱ, β̄] 的在线漂移速率
  • 有效窗口: 1/0.005 = 200 步 ≈ 33 天(4h bar)
  • 约束: γ_bar ≪ 1/(-ln(Φ_β_grid[2])),确保 x̄ 迁移远慢于 β 追踪速度

八、运行控制参数

20. IMM_KALMAN_WARMUP — 热身步数

  • 默认值: 20
  • 含义: n_updates < 20 时 Z-score 仍用 OLS β 而非 Kalman β
  • 原因: Kalman 初始阶段 P_β 大、估计不稳定,OLS 更可靠
  • 数据库恢复: 重启时 kalman_state 的 n_updates ≥ 20 才从 DB 恢复,否则重新冷启动

21. IMM_INTRABAR_INTERVAL — bar 内降频间隔

  • 默认值: 3600 秒(1 小时)
  • 含义: 在 4h bar 内,每隔 1 小时才执行一次 Kalman 更新
  • v5.1 修复的问题:
    • v5.0 每次 WS tick 都更新 → 每根 4h bar 约 14000 次近似重复观测
    • 导致 P_β 虚假坍缩 + Epps 效应使 β 向 0 偏移 + x̄ 正反馈漂移
  • 设计: 1 小时间隔与 Φ 网格设计匹配,使用增量收益率(非累计)确保观测独立性

参数间的约束关系总结

约束 公式 目的
α噪声 vs β噪声 q_α = Q_β_grid[2] / 10 α 比 β 变化慢一个量级
Q_β 与 Φ_β 配对 低Q ↔ 强回归,高Q ↔ 弱回归 确保 P∞ 跨数量级的区分度
x̄ 漂移 vs β 追踪 γ_bar ≪ 1/(-ln(Φ_β_grid[2])) 长期均值远慢于状态追踪
TPM 窗口 vs x̄ 窗口 两者都 ≈ 33 天 体制切换与均值漂移同步
降频间隔 vs bar 长度 3600s / 14400s(4h) = 25% 每根 bar 最多更新 4 次,避免过度更新

参数配置速查表

# src/config.py
IMM_Q_BETA_GRID      = [1e-6, 1e-5, 1e-4, 1e-3, 1e-2]  # β 过程噪声网格 (M=5)
IMM_PHI_BETA_GRID    = [0.95, 0.97, 0.98, 0.99, 0.995]  # β OU 回归强度网格
IMM_Q_ALPHA          = 1e-5                               # α 过程噪声(共享)
IMM_PHI_ALPHA        = 0.995                              # α OU 回归系数(共享)
IMM_P0_ALPHA         = 0.1                                # α 初始不确定性
IMM_P0_BETA          = 0.1                                # β 初始不确定性
IMM_R_FLOOR          = 1e-6                               # 观测噪声下限
IMM_SAGE_HUSA_B      = 0.97                               # Sage-Husa 遗忘基数
IMM_CLIP_SIGMA       = 3.0                                # Huber 截断倍数
IMM_STUDENT_T_NU     = 5.0                                # Student-t 初始自由度(MLE 覆盖)
IMM_NU_GAMMA         = 0.01                               # ν 在线学习率
IMM_TPM_LAMBDA       = 0.995                              # Dirichlet TPM 遗忘因子
IMM_TPM_KAPPA        = 20.0                               # Dirichlet 初始浓度
IMM_TRANSITION_PROB  = 0.98                               # 初始 p_stay
IMM_HIGH_Q_THRESHOLD = 1e-3                               # 高Q模型判定阈值
IMM_MU_FLOOR         = 1e-6                               # 模型概率下限
IMM_OBS_GAMMA        = 0.05                               # 可观测性权重衰减
IMM_XBAR_GAMMA       = 0.005                              # x̄ 长期均值漂移学习率
IMM_KALMAN_WARMUP    = 20                                 # 热身步数
IMM_REGIME_GATE_THRESHOLD = 0.7                           # Gate3 体制拦截阈值
IMM_INTRABAR_INTERVAL     = 3600                          # bar 内降频间隔(秒)

Read more

AMI的优越性

世界模型(World Models)的具体例子 如下,我按类型分类,便于理解。每类都附带实际实现、演示效果和应用场景。 1. Yann LeCun / Meta 的 JEPA 系列(最直接对应“世界模型”概念) 这些是 LeCun 主张的非生成式抽象预测世界模型代表。 * I-JEPA(Image JEPA,2023) 输入一张图像,模型把不同区域(context 和 target)编码成抽象表示,然后预测 target 的表示(不在像素级别重建)。 例子:给定一张遮挡了部分物体的图片,模型能预测“被遮挡物体的大致位置和属性”,构建对物体持久性和空间关系的理解。 这是一个“原始世界模型”,能学习物理常识(如物体不会凭空消失)。 * V-JEPA / V-JEPA 2(Video JEPA,

By SHI XIAOLONG

什么是:“世界模型(World Models)”

世界模型(World Models) 是人工智能领域的一个核心概念,尤其在 Yann LeCun 等研究者推动的下一代 AI 架构中占据中心位置。它指的是 AI 系统在内部构建的对现实世界的抽象模拟或内部表示,让机器能够像人类或动物一样“理解”物理世界、预测未来、规划行动。 简单比喻 想象你闭上眼睛也能“看到”房间里的物体会如何移动、碰撞或掉落——这就是你大脑里的世界模型。AI 的世界模型就是类似的“数字孪生”(digital twin)或“内部模拟器”:它不是简单记住数据,而是学习世界的动态、因果关系和物理直觉(如重力、物体持久性、遮挡、因果等)。 为什么需要世界模型? 当前主流的大型语言模型(LLM) 擅长处理文本(统计模式预测),但存在根本局限: * 缺乏对物理世界的真正理解 → 容易“幻觉”、无法可靠规划。 * 样本效率低 → 人类/

By SHI XIAOLONG

K线周期可配置化设计方案

K线周期可配置化设计方案 1. 背景与目标 当前 Beta 套利策略的 K 线周期硬编码为 "1h",分散在多个文件中。需要: 1. 将 K 线周期从 1h 改为 2h 2. 提取为环境变量 BETA_ARB_KLINE_INTERVAL,使其可在 .env 中配置 2. 影响范围分析 2.1 需要修改的文件(共 6 个) 文件 硬编码位置 修改内容 src/trading/config.py BetaArbConfig dataclass 新增 kline_interval 字段,

By SHI XIAOLONG

对于空间环境、“信息/逻辑”(比如代码、结构、表达)秩序追求的心理特征分析

一、为什么是“空间 + 信息”同时强化? 因为你当年面对的是“双重失控”: 1️⃣ 外部世界是脏乱 + 失序的 * 空间被污染 * 行为无边界 * 基本生活秩序崩塌 👉 所以你现在会强烈要求: * 桌面干净 * 房间有序 * 物品可控 这是在修复:“物理世界必须是可控的” 2️⃣ 人的行为和逻辑也是混乱的 * 没有规则 * 没有底线 * 没有理性 👉 所以你现在会特别在意: * 表达是否清晰 * 逻辑是否自洽 * 结构是否优雅 * 代码是否干净 这是在修复:“认知世界必须是合理的” 二、你其实构建了一个“高纯度系统” 你现在的偏好,本质上是: 👉 低噪音 + 高结构 + 强控制感 具体表现就是: * 空间:极简、整洁、可预测 * 信息:清晰、压缩、无冗余 这类人有一个很明显的优势: 👉 处理复杂问题时,

By SHI XIAOLONG