4. 盘口特征工程实战

盘口风险评分的效果,很大程度上不取决于模型本身,而取决于特征是否把“盘口正在发生什么”表达清楚。逐笔委托与逐笔成交是两类最原始的高频数据:前者记录委托的进入、撤单与变更,后者记录真实撮合。本节的任务是把这两类流水数据加工成三类可用特征——时序特征、窗口统计量和盘口不平衡指标,并保证它们在时间轴上严格对齐、无未来信息泄漏。

一、先明确数据口径与时间参照

动手前必须先固定三件事,否则后续所有特征都会失真。第一是时间戳口径:交易所逐笔数据通常带“委托时间”和“成交时间”,本地还需记录“接收时间”。特征计算一律以交易所时间为准,接收时间只用于评估延迟。第二是方向约定:本节统一采用“主动买为外盘、主动卖为内盘”,即成交价等于卖方委托价时记为主动买(+1),等于买方委托价时记为主动卖(−1),无法判定时记 0。第三是快照与流水的对齐:逐笔流水是事件驱动,盘口快照是固定频率(如每 3 秒),特征需按事件时间聚合后再对齐到快照时点,且只使用该时点之前的数据。

一个常见的泄漏陷阱是:用 10:00:00 的快照去匹配 10:00:00 至 10:00:03 之间的成交。正确做法是特征窗口右端取快照时间戳,左端取“快照时间 − 窗口长度”,且窗口内事件严格满足 event_time <= snapshot_time。

二、时序特征:把事件流变成等间隔序列

逐笔数据本身是稀疏、不等间隔的。时序特征的目标是刻画“节奏”和“方向持续性”。可构造的典型特征包括:

  • 事件到达强度:单位时间内的委托笔数、撤单笔数、成交笔数,反映活跃度突变;
  • 委托生存时间:每笔委托从进入到撤单或成交的时长,取窗口内中位数,短生存时间往往对应高频挂撤;
  • 成交方向序列的自相关:对主动买卖标记序列(+1/−1)计算一阶自相关,衡量买卖压力的持续性;
  • 价格变动间隔:相邻两次中间价变化之间的成交笔数,间隔缩短说明价格发现加速。

实现上建议用“事件时间桶”而非固定时钟桶:以 500 毫秒或 1 秒为桶宽,把事件落入桶内聚合,再对桶序列做滚动计算。这样既保留了高频信息,又避免了逐笔数据量过大导致的计算抖动。

三、窗口统计量:多尺度刻画盘口状态

单一窗口容易失真,实践中常用 1 秒、5 秒、30 秒三个尺度并行计算,形成“短看冲击、中看趋势、长看背景”的层次。每个窗口内可计算:

统计量计算方式风险含义
成交量加权均价偏移(VWAP − 中间价) / 中间价成交偏离越大,短期冲击越强
撤单率撤单笔数 / 委托笔数高撤单率常伴随虚假挂单
大单占比超过阈值(如 50 手)的成交量 / 总成交量大单集中度反映主力参与度
波动率窗口内中间价对数收益的标准差波动骤升是风险评分的重要输入
成交笔数偏度主动买笔数与主动卖笔数之差 / 总笔数方向性压力的粗粒度度量

示例参数(教学假设):某标的中间价 10.00 元,5 秒窗口内成交 120 笔、共 8000 股,VWAP 为 10.006 元,则 VWAP 偏移约 +0.06%;同期委托 300 笔、撤单 210 笔,撤单率 70%。这两个数值组合在一起,比单独看任一项更能提示“挂单虚、成交偏买”的盘口状态。

四、盘口不平衡指标:从挂单结构看压力

盘口不平衡(Order Book Imbalance, OBI)刻画买卖两侧挂单量的相对强弱。最基础的形式是:

OBI_L1 = (BidVol_L1 − AskVol_L1) / (BidVol_L1 + AskVol_L1)

取值在 [−1, +1],正值表示买侧更厚。但仅看一档容易被单笔大单误导,实践中常做两点改进:一是多档加权,越靠近盘口的档位权重越高,例如权重取 1/档位序号;二是撤单修正,把窗口内买侧撤单量与卖侧撤单量之差纳入,得到“有效不平衡”:

OBI_eff = OBI_weighted − λ · (CancelBid − CancelAsk) / (CancelBid + CancelAsk)

其中 λ 为调节系数(示例取 0.3)。当买侧挂单厚但撤单也集中时,OBI_eff 会被拉回,避免把“虚厚”误判为真实买压。此外还可构造成交不平衡:主动买成交量与主动卖成交量之差除以总成交量,与 OBI 形成“挂单—成交”双视角交叉验证。

逐笔委托与成交 → 三类盘口特征的数据流 逐笔委托流 进入 / 撤单 / 变更 逐笔成交流 价格 / 数量 / 方向 盘口快照 多档买卖挂单量 时间对齐 事件时间桶 500ms / 1s 右端 ≤ 快照时刻 方向标记 +1/−1/0 时序特征 事件到达强度 委托生存时间 方向自相关 窗口统计量 1s / 5s / 30s VWAP偏移 · 撤单率 大单占比 · 波动率 盘口不平衡 OBI 多档加权 撤单修正 OBI_eff 成交不平衡 特征向量 按快照时点对齐 缺失值前向填充 标准化后入模 供风险评分使用

五、工程实现要点与结果判读

落地时建议按“事件表 → 桶聚合表 → 快照特征表”三层组织。第一层保留原始字段与方向标记;第二层按桶宽聚合出计数、量、额、撤单数;第三层以快照时间为键,用滚动窗口函数取各尺度统计量,并做缺失值处理——窗口内无事件时,计数类填 0,比率类用前值填充并附“无事件”标记位,避免把“无成交”误读为“均衡”。

判读时可关注几个组合信号:撤单率高于 60% 且 OBI_eff 与原始 OBI 符号相反,提示挂单虚厚;VWAP 偏移与成交不平衡同向且绝对值放大,提示短期冲击真实;事件到达强度骤增而波动率未同步上升,可能是挂撤频繁但未成交的“试探”状态。这些组合判断正是后续风险评分与可解释性分析的输入基础。特征构造阶段就应保留每个指标的窗口长度、方向约定和修正系数,以便评分结果可以回溯到具体盘口现象。