OFI信号过滤机制(动态阈值、波动率调整、成交量标准化)
一、为什么「原始 OFI」几乎不能直接用?
先给一个结论:
不经过过滤的 OFI,本质是一个“高噪声、强状态依赖”的微观统计量
问题主要有四个:
- 不同时间段强度完全不同(开盘 vs 盘中 vs 收盘)
- 不同市场状态不可比(高波动 vs 低波动)
- 不同流动性阶段失真(深度薄时 OFI 被放大)
- 极端值多、尾部厚(order cancel / spoof 会炸)
所以专业策略的第一步不是“如何用 OFI 下单”,而是:
如何把 OFI 变成一个“状态无关、尺度稳定”的信号
这正是下面三种方法的目的。
二、动态阈值(Dynamic Threshold)
1️⃣ 为什么要动态阈值?
如果你用:
if OFI > 100: buy
if OFI < -100: sell
那么你已经犯了一个致命错误:
你假设 OFI 的统计分布是稳定的
现实是:
- 不同时段 OFI 的均值、方差完全不同
- 同一阈值在不同时刻含义不一样
2️⃣ 专业做法:分布自适应阈值
方法 A:滚动 Z-Score(最常见)
定义:
z_OFI(t) = (OFI(t) - μ_OFI(t)) / σ_OFI(t)
其中:
- μ、σ 是 滚动窗口(如最近 1–5 分钟)
- 阈值用 统计显著性 表示
例如:
if z_OFI > 2.0 → 买方显著占优
if z_OFI < -2.0 → 卖方显著占优
📌 专业点:
- 不固定窗口长度
- 用 EWMA(指数加权)而不是简单滑窗
方法 B:分位数阈值(HFT 很爱)
直接用历史分布:
Upper = Q95(OFI)
Lower = Q5(OFI)
触发条件:
OFI > Upper → 极端买压
OFI < Lower → 极端卖压
优点:
- 对厚尾分布更稳
- 对 spoof / cancel 冲击不敏感
3️⃣ 专业判断标准
一个好的动态阈值应满足:
✅ 信号触发频率稳定
✅ 不随交易时段剧烈漂移
✅ 不因流动性变化误触发
如果你回测发现:
不同时间段信号强度一致
说明你做对了。
三、波动率调整(Volatility Scaling)
1️⃣ 为什么必须做波动率调整?
同样的 OFI = 500:
- 在 低波动市场 → 极强信号
- 在 高波动市场 → 普通噪声
如果不调整,你会在:
- 高波动时 过度交易
- 低波动时 错失机会
2️⃣ 专业做法:OFI / 波动率
基础形式
OFI_scaled = OFI / σ_price
其中 σ_price 可以是:
- 高频 realized volatility
- mid-price returns 的 EWMA std
- micro-price volatility
更专业版本(状态感知)
OFI_scaled = OFI / (σ_price × √Δt)
👉 把 OFI 映射到“单位风险暴露下的压力”
3️⃣ 实战意义
波动率调整后:
- 信号 ≈ “单位价格风险下的订单流强度”
- 可直接用于:
- 仓位大小(position sizing)
- 执行 aggressiveness
例如:
position ∝ tanh(OFI_scaled)
📌 很多做市/alpha 执行策略都是这么干的
四、成交量标准化(Volume / Liquidity Normalization)
1️⃣ 为什么成交量是 OFI 的“隐形放大器”?
OFI 本身是:
数量 × 方向
但在不同流动性环境下:
- 同样的订单变化,对价格冲击不同
举例:
- 100 手 OFI / 深度 10,000 → 几乎没影响
- 100 手 OFI / 深度 300 → 灾难级冲击
2️⃣ 专业做法 1:按盘口深度归一化
OFI_norm = OFI / (Depth_bid + Depth_ask)
Depth 可以是:
- L1 深度
- L1–L5 加权深度
- 有时用 sqrt(depth) 防止过度缩放
3️⃣ 专业做法 2:按成交量节奏归一化
OFI_norm = OFI / Volume_window
本质上:
衡量「在当前交易活跃度下,这个 OFI 是否异常」
4️⃣ 更高级:流动性状态条件化
实盘里常见的是:
OFI_adj = OFI × f(spread, depth, volume)
例如:
- 点差扩大 → OFI 权重下降
- 深度变薄 → 提高 OFI 过滤阈值
五、三者组合后的「专业 OFI 信号」
一个真实可用的 OFI 信号,往往长这样:
Signal(t) =
zscore(
OFI(t)
/ σ_price(t)
/ Depth(t)
)
然后:
if Signal > 2 → long
if Signal < -2 → short
并且:
- 仓位 ∝ |Signal|
- 执行方式随流动性自适应
六、行业共识总结(非常重要)
OFI ≠ alpha 本身
OFI = 市场微观状态的“放大镜”
专业团队使用 OFI 的方式是:
| 用途 | 是否直接交易 |
|---|---|
| 预测极短期价格方向 | ❌ 单独不用 |
| 确认已有信号 | ✅ |
| 执行强度调节 | ✅ |
| 做市风险管理 | ✅ |
| Alpha 组合输入 | ✅ |