OFI(订单流失衡,订单簿模型)
OFI 即 Cont、Kukanov 与 Stoikov 意义上的订单流失衡(order flow imbalance),是一个带符号的净压力度量,由挂单簿的变化逐档计算而来:买方挂单的增加与撤走,卖方挂单的逼近与后撤。它与足迹图上的失衡不同,后者比较的是已成交的主买与主卖量。
Senzoukria · 术语表 · 更新于 2026 年 9 月
同一个说法,不同的对象
交易里有两样东西都被叫作订单流失衡。足迹图那一版比较的是在卖价上成交的量与在买价上成交的量,通常是对角比较,并标出某一侧占优的单元格。作为模型的 OFI 读的是订单簿而不是成交:它累加最优档位上挂单量的每一次变化,因此即便还没有任何成交,价格也能登记到压力。一张很大的卖单被撤掉,和一张市价买单把它吃掉一样,都计为买入压力。
每一档的贡献怎么算
- 买方一侧:某档买价上移时,新的挂单量计为买入压力(正)。价格不变时,计入挂单量的变化。买价后撤时,原有挂单量计为压力消失(负)。
- 卖方一侧镜像:卖价逼近或变大是卖出压力(负);卖价后撤或变小则移除卖出压力(正)。
- 各项贡献在一个区间上求和。单档形式只用最优买价和最优卖价;积分形式在最优的前 N 档上分别计算再加总。
- 原始 OFI 的单位是手数。除以每档的平均深度之后,不同时段、不同品种之间才可比;少了这一步,同一个数字在清淡的夜盘订单簿上是一次猛推,在繁忙的开盘上则什么都不是。
它解释什么,不解释什么
Cont、Kukanov 与 Stoikov 的原始论文(2014)报告说,OFI 对同期价格变化的解释力优于带符号的成交量;后续关于多档积分形式的研究报告了同样的次序。原因在于,推动价格的大部分东西从来不会打印在明细流上:订单在成交之间不断被挂出和撤回,订单簿一直在重塑。而它的局限同样重要:这种关系是同期的。OFI 描述的是同一个区间内正在发生的那段行情;用它去预测下一个区间,它不携带任何可靠的内容。请把它当作订单簿的一次状态读数,在一个因为别的理由选定的价位上,用作印证。
在 Senzoukria 里
OFI 是 Microstructure (quant)(微观结构,quant)指标中 QI / OFI 仪表盘上的第二个数字,位于指标面板的 Quant models 分组下。它的参数是 OFI levels(1 到 20,默认 10)和 OFI smoothing——在可配置数量的订单簿事件上做 EMA(默认 20)。显示出来的数值已按深度归一化。仪表盘使用 ±0.15 的死区:高于 +0.15 染绿,低于 −0.15 染红,中间保持中性。指标自己的说明写明:这个读数是同期的,不具预测性。它需要深度数据;只送成交而不送订单簿更新的数据源算不出它,而深度权限由数据供应商计费。
常见误区
- 把 OFI 和足迹图的失衡比值混为一谈;一个读的是挂单量,另一个读的是已成交量。
- 使用未经归一化的原始数值,再拿夜盘读数和日盘读数比较。
- 把 OFI 读成对下一根 K 线的预测,而不是对当前这一根的解释。
- 在只发送最优档的数据源上运行它,却指望得到一个十档的积分结果。
相关内容
其他语言版本
常见问题
- OFI 和累计 delta 哪个更好?
- 它们回答的是不同的问题。累计 delta 是明细流:真正成交了什么、在哪一侧。OFI 是订单簿:什么在等待、在出现、在消失。一段 CVD 上升而 OFI 平坦的上涨,吃掉的是一个不再补充的订单簿——这条信息,两个度量单独都给不出来。
- 我的 OFI 读数为什么跳得这么厉害?
- 逐事件的 OFI 天然嘈杂,因为每一次撤单、每一张新订单都会改变它。在一定数量的订单簿事件上做平滑(Senzoukria 默认 20),呈现的是资金流的方向而不是闪烁。把平滑设为 1 则显示原始数值。
- OFI 在加密货币上能用吗?
- 这项计算只需要一条带档位变化的深度数据流,而加密货币交易所提供这个。在 Senzoukria 里,加密货币交易对仅供分析使用;OFI 的精度取决于交易所提供多少档深度、更新有多频繁。