3. OFI定义与直觉理解

订单流失衡(Order Flow Imbalance,OFI)是高频交易与市场微观结构研究中最常用的短期价格压力指标之一。它的核心思想非常朴素:价格之所以在下一秒上涨或下跌,是因为在最优买卖价位上,主动成交与挂单撤单的力量出现了净差。OFI 把这个"净差"用一个可计算的数值表达出来,从而把盘口快照的离散变化转化为连续的压力信号。

要理解 OFI,先要明确它观察的对象——最优买卖报价(Best Bid / Best Ask)及其挂单量。在任何时刻,盘口最上方一档给出两个价格和两个数量:买一价 P_b 与买一量 Q_b,卖一价 P_a 与卖一量 Q_a。OFI 不关心更深档位,也不直接区分主动买和主动卖,而是通过相邻两个快照之间这四个量的变化,推断净订单流的方向与强度。

从盘口变化到净压力

设当前快照为 t,上一快照为 t-1。OFI 的经典定义(Cont、Kukanov 与 Stoikov 提出)按买侧和卖侧分别计算贡献,再相减得到净压力。买侧贡献 e_b 的规则是:

  • 若买一价上升(P_b^t > P_b^{t-1}),说明买方愿意以更高价格承接,买侧贡献为当前买一量 Q_b^t;
  • 若买一价下降,买侧贡献为负的上一时刻买一量 -Q_b^{t-1};
  • 若买一价不变,买侧贡献为买一量的增量 Q_b^t - Q_b^{t-1}。

卖侧贡献 e_a 完全对称:卖一价上升时贡献为负的上一时刻卖一量 -Q_a^{t-1};卖一价下降时贡献为当前卖一量 Q_a^t;卖一价不变时贡献为卖一量的增量 Q_a^t - Q_a^{t-1}。最终:

OFI_t = e_b - e_a

其中:
e_b = Q_b^t          若 P_b^t > P_b^{t-1}
    = -Q_b^{t-1}     若 P_b^t < P_b^{t-1}
    = Q_b^t - Q_b^{t-1}  若 P_b^t = P_b^{t-1}

e_a = -Q_a^{t-1}     若 P_a^t > P_a^{t-1}
    = Q_a^t          若 P_a^t < P_a^{t-1}
    = Q_a^t - Q_a^{t-1}  若 P_a^t = P_a^{t-1}

这个公式的经济含义可以这样读:OFI 为正,表示买侧净压力占优,价格短期倾向上行;OFI 为负,表示卖侧净压力占优,价格短期倾向下行。数值的绝对值越大,说明失衡越剧烈,价格被推动的潜在力度越强。注意这里的"压力"是相对量,不是绝对成交量,它刻画的是盘口挂单结构在两次快照之间的净变化。

OFI 计算结构:从盘口快照到净订单流压力 快照 t-1 卖一价 P_a 100.05 卖一量 Q_a 300 买一价 P_b 100.00 买一量 Q_b 500 快照 t 卖一价 P_a 100.05 卖一量 Q_a 200 买一价 P_b 100.00 买一量 Q_b 700 价格未变,仅数量变化 买侧贡献 e_b P_b 不变 → e_b = Q_b^t − Q_b^{t-1} e_b = 700 − 500 = +200 卖侧贡献 e_a P_a 不变 → e_a = Q_a^t − Q_a^{t-1} e_a = 200 − 300 = −100 OFI = e_b − e_a = 200 − (−100) = +300 净买压为正 → 短期价格倾向上行

一个可手算的示例

上图给出了一个具体算例。假设某只股票在 t-1 时刻盘口为:买一价 100.00、买一量 500,卖一价 100.05、卖一量 300。到 t 时刻,价格未变,但买一量增至 700,卖一量降至 200。按规则:买一价不变,e_b = 700 − 500 = +200;卖一价不变,e_a = 200 − 300 = −100。于是 OFI = 200 − (−100) = +300。这个正值说明买方在最优价位上净增了 200 手承接,同时卖方净撤了 100 手,两侧合力形成 +300 的净买压,短期价格更可能向上试探。

再看一个价格跳动的例子:若 t 时刻买一价从 100.00 抬升到 100.02,买一量为 400,则 e_b = Q_b^t = 400(因为价格上升,取当前量);若卖一价也从 100.05 抬到 100.07、卖一量 250,则 e_a = −Q_a^{t-1} = −300。此时 OFI = 400 − (−300) = +700,买压更强。可以看到,价格上移本身就被计入了正贡献,这正是 OFI 能捕捉"主动抬价"行为的原因。

理解 OFI 的一个实用直觉:把买侧贡献看成"买方愿意在更优价位上暴露多少量",把卖侧贡献看成"卖方愿意在更优价位上暴露多少量",两者相减就是谁在盘口上更"着急"。OFI 不预测长期趋势,它刻画的是极短周期内盘口结构倾斜的方向。

几个容易踩坑的细节

第一,参照系要统一。OFI 的正负号约定是"买压为正、卖压为负",全文和图示必须一致,不能中途翻转。第二,快照频率决定信号性质。用逐笔(tick-by-tick)快照算出的 OFI 噪声大但灵敏;用秒级或分钟级聚合快照算出的 OFI 更平滑但滞后。实际使用时通常先对 OFI 做短窗口求和或指数平滑,再与未来 1~5 个快照的中间价变化做相关性检验。第三,数量单位要一致,买一量和卖一量必须同为股数或同为手数,否则相减没有意义。第四,价格不变时的增量项容易被忽略,而恰恰是这部分捕捉了挂单的增减与撤单,是 OFI 区别于简单"价格方向"指标的关键。

从经济含义上看,OFI 度量的是净订单流压力:当买方不断在买一加量或抬价,而卖方在卖一撤量或降价时,OFI 持续为正,做市商为平衡库存会被迫上调报价,价格随之上行;反之亦然。它把"谁更急"这个模糊判断,变成了一个可回测、可阈值化、可与成交量或波动率组合使用的数值信号,这也是它在订单流策略中被广泛采用的根本原因。