2. 订单流特征体系概览
逐笔成交与逐笔委托数据本身只是原始事件流:每一行记录着时间戳、价格、数量、方向标记和委托编号。要把这些事件变成量化模型可用的因子,中间必须经过一条清晰的特征加工链路。本节的任务不是逐个实现特征,而是先建立一张“地图”——知道订单流特征分为哪几类、每类刻画什么微观结构现象、它们在因子构建流程中处于什么位置,以及特征工程在整条量化研究链条中究竟承担什么职责。
一、从事件流到特征矩阵的四级链路
订单流数据的加工可以概括为四个层级,每一层的输出都是下一层的输入:
- 事件层:原始逐笔成交(trade)与逐笔委托(order)记录,粒度是“一笔”,包含价格、数量、主动方向、委托类型等字段。
- 切片层:按固定时间窗(如 1 秒、10 秒、1 分钟)或按成交量/笔数桶(volume bar、tick bar)把事件聚合为快照,形成买卖盘口、成交量分布、委托簿状态等中间量。
- 特征层:在切片上计算流动性、波动性、订单失衡、价格发现四类微观结构指标,得到每个切片一个特征向量。
- 因子层:对特征做标准化、中性化、平滑、横截面排序等处理,形成可输入预测模型或组合优化的因子值。
这条链路的关键在于:特征层决定信息上限,因子层决定信息可用性。切片粒度过粗会抹掉微观结构信号,过细则噪声占比升高;特征计算若引入未来信息(例如用当前切片之后的成交计算失衡),因子在实盘中会迅速失效。因此链路设计的第一原则是严格因果:任一时刻的特征只能使用该时刻及之前已发生的事件。
二、四类特征各自刻画什么
流动性特征回答“在这个市场里交易要付出多少成本、能容纳多大仓位”。最直接的是买卖价差(最优卖价减最优买价),以及盘口前若干档的累计挂单量(深度)。Amihud 非流动性用“单位成交额引起的价格变动”衡量冲击成本,适合跨股票横向比较。流动性特征往往是风险因子而非纯 alpha 来源,但在小盘股或流动性骤降时,它对收益的解释力会显著上升。
波动性特征回答“价格在这段时间里动了多少”。已实现波动率用切片内成交收益率平方和开方得到;高低价差范围是更粗糙但更稳健的替代;成交价跳跃频次则捕捉离散的大幅变动。波动性特征常被用作状态变量——在高波动状态下,订单失衡类因子的预测能力往往更强,因此它更适合做条件分层而非单独选股。
订单失衡特征是订单流研究中最具特色的一类,回答“买卖双方谁在施压”。委托簿失衡用(买挂单量 − 卖挂单量)/(买挂单量 + 卖挂单量)计算;主动成交失衡用(主动买成交量 − 主动卖成交量)/ 总成交量计算;大单方向占比则先按成交量分位数筛出大单,再统计其净方向。三者分别对应“被动意愿”“主动冲击”和“知情交易者行为”,信息含义并不相同,不能混为一谈。
价格发现特征回答“新信息以多快速度、从哪个方向融入价格”。信息份额(如 Hasbrouck 信息份额)衡量某只股票的价格变动中有多少来自新信息而非噪声;有效价差分解把价差拆成订单处理成本与逆向选择成本;价格领先滞后则刻画相关资产之间谁先动。这类特征计算复杂度较高,通常用于研究性因子或作为其他因子的解释变量。
三、特征工程在量化研究中的定位
特征工程不是“多算几个指标”,它在研究链条中承担三个明确职责。第一是信息压缩:把每秒数百笔事件压缩成每切片几十维向量,使模型可在合理算力下处理。第二是结构注入:把“买卖压力会推动价格”“流动性差会放大冲击”这类市场微观结构先验,以特征形式显式写入模型,降低模型从零学习这些规律的样本需求。第三是可解释性与风控接口:当因子回撤时,能追溯到是流动性恶化、失衡反转还是价格发现效率变化,而不是面对一个黑箱。
需要强调的是,特征工程与因子构建之间不是单向流水线。因子评估结果(IC 衰减、分层单调性、换手率)应当回流到特征层:若某失衡特征 IC 很高但换手率过大,可能需要加长切片或做指数平滑;若某流动性特征在特定市值分组失效,则应考虑分组标准化。上图中的虚线回流箭头正是表达这一迭代关系。
四、一个可执行的最小示例
假设我们有一只股票的逐笔成交数据,切片窗口取 10 秒,构造三个基础特征。以下为示意性计算逻辑(数值为教学假设,非实测结果):
# 每个 10 秒切片内
主动买量 V_buy = Σ 成交量[方向 == 主动买]
主动卖量 V_sell = Σ 成交量[方向 == 主动卖]
总成交量 V = V_buy + V_sell
# 订单失衡特征
OFI = (V_buy - V_sell) / V # 取值 [-1, 1]
# 波动性特征(切片内成交收益率 r_i)
RV = sqrt( Σ r_i^2 )
# 流动性特征(切片末盘口)
Spread = (最优卖价 - 最优买价) / 中间价
# 因子层:对 OFI 做 5 切片指数平滑后横截面排序
OFI_smooth = EMA(OFI, span=5)
factor = rank_cross_section(OFI_smooth)
判断这套特征是否可用,应观察三点:OFI 与下一期收益的秩相关是否稳定为正;RV 升高时 OFI 的预测力是否增强(条件分层检验);Spread 是否在极端值区间与未来收益呈负相关(流动性风险溢价)。若三点均符合预期,再进入因子层做中性化与组合测试;若不符合,应回到切片粒度与特征定义上排查,而不是急于叠加更多特征。