4、订单流不平衡定义:主动买盘与主动卖盘、买卖压力、订单流不平衡指标(OFI)的计算公式、标准化与平滑处理

订单流不平衡(Order Flow Imbalance, OFI)是微观市场结构理论中衡量买卖压力最核心的量化指标之一。与传统的成交量或持仓量不同,OFI 直接捕捉“主动成交方向”的净效应——即交易者愿意付出流动性成本(吃单)而非被动等待(挂单)的意愿强度。理解 OFI 的构建逻辑、计算公式与平滑方法,是运用订单流数据进行短期价格预测的前提。本章将从主动买卖盘的定义出发,逐步拆解 OFI 的数学表达、标准化处理及实战应用中的关键细节。

OFI 构建链路:从逐笔委托到标准化指标 逐笔委托流 买价Bid / 卖价Ask 委托量Vb / Va 时间戳 t 主动方向判定 主动买盘:成交价 ≥ Ask 主动卖盘:成交价 ≤ Bid Tick规则 / 中间价比较 OFI 计算 OFI = ΔBidQ - ΔAskQ ΔBidQ = BidQ_t - BidQ_{t-1} ΔAskQ = AskQ_t - AskQ_{t-1} 标准化 Z-score Min-Max 平滑(EMA) 买卖压力解释 OFI > 0 → 主动买盘净流入 → 买压上升 OFI < 0 → 主动卖盘净流出 → 卖压上升 OFI ≈ 0 → 多空均衡 短期价格预测应用 信号生成:OFI 突破阈值 回归特征:OFI 与收益相关性 组合因子:OFI + 成交量 + 波动率 高频做市:OFI 实时监控 风险控制:OFI 极端值预警 策略回测:OFI 因子有效性

4.1 主动买盘与主动卖盘:订单流的基本构成

在订单驱动型市场中(如股票、期货、数字货币的连续竞价交易),每一笔成交都必然由一位主动方和一位被动方完成。主动方是指“以对手方价格立即成交”的交易者,被动方则是“挂单等待成交”的交易者。这种主动成交行为直接消耗了订单簿中的流动性,因此被市场参与者视为“真实交易意图”的体现。

主动买盘(Active Buy):当买单以卖一价(Ask)或更高价格成交时,该笔交易被标记为主动买盘。主动买盘意味着买方愿意支付溢价(即越过价差)来确保成交,反映了买方对价格上涨的迫切性。在逐笔成交数据中,主动买盘通常以“B”或“外盘”标记。

主动卖盘(Active Sell):当卖单以买一价(Bid)或更低价格成交时,该笔交易被标记为主动卖盘。主动卖盘意味着卖方愿意接受折价来确保成交,反映了卖方对价格下跌的紧迫感。在逐笔数据中通常以“S”或“内盘”标记。

关键区分:主动买卖盘与“大单买卖”是两个不同概念。主动买卖盘关注的是“谁在吃单”,而大单关注的是“单笔成交量大小”。一笔100手的主动买盘与10笔10手的主动买盘,在OFI计算中可能产生不同的影响,因为前者一次性消耗了盘口深度,后者则可能逐步推动价格。

4.2 买卖压力:从微观行为到市场情绪的映射

买卖压力(Buy/Sell Pressure)是主动买卖盘在时间维度上的累积效应。当主动买盘持续大于主动卖盘时,市场呈现“买方主导”状态,价格倾向于上行;反之,当主动卖盘持续占优时,市场呈现“卖方主导”状态,价格倾向于下行。这种压力并非简单的成交量对比,而是需要结合订单簿深度(Depth)和价格变动幅度来综合衡量。

一个重要的微观结构现象是:买卖压力与价格变动之间存在非线性关系。在流动性充足的市场中,较大的主动买盘可能只会引起较小的价格上涨;而在流动性枯竭时,即使较小的主动买盘也可能引发价格跳变。因此,OFI 的设计初衷就是同时捕捉“主动成交方向”和“订单簿深度变化”两个维度,从而更准确地刻画买卖压力的真实强度。

市场状态 主动买盘 vs 主动卖盘 订单簿深度变化 OFI 特征 价格倾向
强买方主导 买盘显著大于卖盘 买盘深度增加,卖盘深度减少 OFI >> 0,持续为正 快速上涨
弱买方主导 买盘略大于卖盘 买盘深度微增 OFI > 0,但幅度较小 缓慢上涨或横盘
多空均衡 买卖盘接近 深度变化不显著 OFI 围绕 0 波动 区间震荡
弱卖方主导 卖盘略大于买盘 卖盘深度微增 OFI < 0,但幅度较小 缓慢下跌或横盘
强卖方主导 卖盘显著大于买盘 卖盘深度增加,买盘深度减少 OFI << 0,持续为负 快速下跌

4.3 OFI 计算公式:从订单簿快照到不平衡度量

订单流不平衡指标(OFI)最早由 Cont, Kukanov 和 Stoikov(2014)在《The Price Impact of Order Book Events》中系统提出。其核心思想是:价格变动不仅取决于主动成交的方向,还取决于订单簿两端(Bid 和 Ask)挂单量的增减变化。OFI 通过比较相邻两个时间点的订单簿状态,量化买卖压力的净变化。

基础计算公式:

OFI_t = (BidQ_t - BidQ_{t-1}) - (AskQ_t - AskQ_{t-1})

其中:
BidQ_t = 时刻 t 的买一档挂单量
AskQ_t = 时刻 t 的卖一档挂单量
BidQ_{t-1} = 时刻 t-1 的买一档挂单量
AskQ_{t-1} = 时刻 t-1 的卖一档挂单量

这个公式的含义是:如果买一档的挂单量增加(BidQ_t > BidQ_{t-1}),说明有新的买单进入市场,增加了买方压力;如果卖一档的挂单量减少(AskQ_t < AskQ_{t-1}),说明卖单被主动吃掉,同样增加了买方压力。两者相减,得到净的买卖压力变化。

扩展公式(考虑多档深度):

在实际应用中,仅使用买一/卖一档可能信息不足。更稳健的做法是考虑前 N 档(通常 N=5 或 10)的挂单量变化,并对不同档位赋予不同权重(距离最优价越近,权重越高):

OFI_t = Σ_{i=1}^{N} w_i × [(BidQ_i,t - BidQ_i,t-1) - (AskQ_i,t - AskQ_i,t-1)]

其中:
w_i = 第 i 档的权重,通常 w_i = 1/i 或 w_i = (N-i+1)/N
BidQ_i,t = 时刻 t 第 i 档买价对应的挂单量
AskQ_i,t = 时刻 t 第 i 档卖价对应的挂单量
实战提示:在计算 OFI 时,需要特别注意“价格变动”带来的影响。如果买一价从 100 变为 101,那么旧价格 100 处的挂单量应视为“消失”,新价格 101 处的挂单量应视为“新增”。因此,更精确的 OFI 计算需要同时考虑价格变化和数量变化,而不仅仅是数量变化。

4.4 标准化处理:让 OFI 在不同市场间可比

原始 OFI 值受合约规模、价格水平、流动性等因素影响,不同品种或不同时间段的 OFI 值差异巨大。例如,某股票 OFI 为 5000 可能意味着强烈买压,而另一只高价股 OFI 为 5000 可能只是正常波动。因此,标准化处理是 OFI 应用的关键步骤。

常用标准化方法:

  1. Z-score 标准化:将 OFI 减去其滚动均值,再除以滚动标准差。公式为:Z_OFI = (OFI - μ_OFI) / σ_OFI。Z-score 将 OFI 转换为标准正态分布,便于设定统一的阈值(如 ±2 作为异常信号)。
  2. Min-Max 归一化:将 OFI 映射到 [0, 1] 区间。公式为:Norm_OFI = (OFI - Min_OFI) / (Max_OFI - Min_OFI)。适用于需要固定输出范围的场景,但对异常值敏感。
  3. 百分比排名:将 OFI 转换为过去 N 个周期的百分位排名。例如,当前 OFI 处于过去 100 个周期的第 95 百分位,表示当前买压非常强烈。
  4. 除成交量标准化:将 OFI 除以同期成交量或成交额,得到“单位成交量的不平衡度”,用于衡量买卖压力的“效率”。
注意:标准化参数(均值、标准差、最小值、最大值)应使用滚动窗口计算,而非全样本静态计算。因为市场状态会变化,静态参数会导致标准化后的 OFI 在波动率变化时失真。建议使用 50-200 个周期的滚动窗口。

4.5 平滑处理:去除噪声,提取趋势

逐笔或逐 tick 计算的 OFI 序列通常包含大量噪声,直接用于信号生成会产生频繁的假信号。平滑处理可以滤除微观噪声,提取 OFI 的中期趋势。常用的平滑方法包括:

  • 简单移动平均(SMA):对过去 K 个 OFI 值取平均。优点是简单直观,缺点是对近期变化反应滞后。
  • 指数移动平均(EMA):赋予近期数据更高权重。公式为:EMA_t = α × OFI_t + (1-α) × EMA_{t-1},其中 α = 2/(K+1)。EMA 比 SMA 反应更快,更适合捕捉趋势转折。
  • 加权移动平均(WMA):对不同时间点的 OFI 赋予线性递减权重。
  • 中位数滤波:取过去 K 个 OFI 值的中位数,对异常值不敏感,适合去除尖峰噪声。
平滑方法 计算公式 优点 缺点 适用场景
SMA (OFI_t + OFI_{t-1} + ... + OFI_{t-K+1}) / K 简单、稳定 滞后明显 低频交易、趋势确认
EMA α × OFI_t + (1-α) × EMA_{t-1} 反应快、权重合理 参数敏感 中高频交易、信号触发
WMA Σ (w_i × OFI_i) / Σ w_i 灵活控制权重 计算稍复杂 自定义衰减速度
中位数滤波 median(OFI_t, ..., OFI_{t-K+1}) 抗异常值 丢失部分信息 噪声较大的数据

4.6 案例拆解:OFI 在股指期货分钟级预测中的应用

背景与约束:某量化团队针对沪深300股指期货(IF)主力合约,构建分钟级短期方向预测模型。数据源为 Level-2 快照数据(每 500ms 一次),包含前 5 档买卖挂单量。目标是在未来 1 分钟预测价格涨跌方向,用于日内高频交易信号。

初始现象:团队最初直接使用原始 OFI 作为特征,发现模型在样本内表现良好,但样本外回测中信号频繁翻转,胜率仅 52%,且交易成本后几乎无盈利。进一步分析发现,原始 OFI 序列的噪声极大,且不同时段(早盘、午盘、尾盘)的 OFI 分布差异显著。

关键输入数据:

时间戳      买一价   买一量   卖一价   卖一量   买二量   卖二量   ...
09:30:00.0  3850.0   120      3850.2   80       150      95
09:30:00.5  3850.0   115      3850.2   75       145      100
09:30:01.0  3850.2   90       3850.4   110      130      120
09:30:01.5  3850.2   85       3850.4   105      125      115
...

分析判断过程:

  1. 首先计算原始 OFI(使用前 5 档加权,权重 w_i = 1/i),发现 OFI 序列在正负之间剧烈震荡,自相关性极低。
  2. 对 OFI 进行 Z-score 标准化(滚动窗口 60 期),标准化后的 OFI 分布更稳定,但信号仍然偏噪。
  3. 引入 EMA 平滑(α = 0.3),平滑后的 OFI 趋势性明显增强,与未来 1 分钟收益的相关系数从 0.08 提升至 0.21。
  4. 进一步按交易时段分段标准化(早盘 09:30-10:00、午盘 10:00-11:30、下午 13:00-14:00、尾盘 14:00-15:00),各时段分别计算均值和标准差,解决了不同时段 OFI 分布差异的问题。

实际操作步骤:

1. 数据清洗:剔除成交量为 0 的快照,处理价格跳空(涨跌停)时的异常值。
2. 计算多档 OFI:使用前 5 档挂单量,权重 w_i = 1/i。
3. 标准化:按交易时段分组,每组使用滚动 60 期 Z-score。
4. 平滑:对标准化后的 OFI 应用 EMA(α=0.3)。
5. 信号生成:当平滑 OFI > 1.5 时做多,< -1.5 时做空,|OFI| < 0.5 时平仓。
6. 回测验证:使用 2023 年 1-6 月数据训练参数,7-12 月数据验证。

结果对比:

方案 胜率 平均盈亏比 夏普比率 最大回撤
原始 OFI(无标准化、无平滑) 52.3% 0.95 0.8 4.2%
Z-score 标准化 + 无平滑 54.1% 1.02 1.1 3.5%
Z-score + EMA 平滑 57.8% 1.18 1.6 2.1%
分段标准化 + EMA 平滑 59.2% 1.25 1.9 1.6%

风险与代价:分段标准化虽然提升了表现,但增加了参数数量(每个时段需要独立的均值和标准差),存在过拟合风险。此外,EMA 平滑引入了 2-3 个 tick 的滞后,在极端行情下可能错过最佳入场点。

复盘经验:OFI 的标准化和平滑不是“越多越好”,需要根据交易频率和市场特征进行调优。对于分钟级预测,EMA(α=0.3) 配合分段 Z-score 是较优组合;对于 tick 级高频交易,可能需要更短的平滑周期(α=0.5 或 0.6)以保持响应速度。

核心结论:OFI 的实战价值不在于单点数值,而在于其经过标准化和平滑后的趋势变化。标准化解决了“可比性”问题,平滑解决了“噪声”问题,两者结合才能将 OFI 转化为可交易的信号。建议交易者在应用 OFI 时,始终将“计算 → 标准化 → 平滑 → 信号生成”作为完整链路来设计和验证。

4.7 常见误区与总结复盘

误区一:忽略价格变动对 OFI 的影响。当买一价或卖一价发生跳变时,仅比较挂单量变化会产生误导。例如,买一价从 100 升至 101,同时买一量从 100 降至 80,如果只看数量变化,会误判为买方压力减弱;但实际上价格上移本身反映了买方强势。正确的做法是同时考虑价格和数量的联合变化。

误区二:使用全样本静态标准化参数。市场波动率具有时变性,使用固定均值和标准差会导致 OFI 在低波动期被过度放大、在高波动期被过度压缩。滚动窗口(如 50-200 期)是更稳健的选择。

误区三:过度平滑导致信号滞后。虽然平滑可以降低噪声,但过度平滑会让 OFI 对突发性大单反应迟钝。建议同时监控“原始 OFI”和“平滑 OFI”,当两者方向一致时信号更可靠,背离时则需警惕。

误区四:忽视不同档位权重的选择。使用等权重(w_i = 1)会高估远档挂单的影响,而远档挂单往往流动性较差、撤单率高。推荐使用 1/i 或指数衰减权重,更贴近价格发现的真实过程。

总结:OFI 是连接微观订单流与短期价格预测的桥梁。其核心价值在于将“主动买卖方向”和“订单簿深度变化”融合为一个可计算的指标。通过合理的标准化和平滑处理,OFI 能够有效捕捉买卖压力的动态变化,为短期价格预测提供高质量的特征输入。在实际应用中,交易者需要根据自身交易频率、品种特性和数据质量,灵活调整 OFI 的计算参数、标准化方法和平滑策略,并通过严格的回测验证其有效性。