2. 盘口数据基础与预处理实战

盘口异常行为识别的前提,是先把原始行情数据变成“可信、对齐、可计算”的订单簿序列。Level-1 与 Level-2 行情在字段粒度、更新频率和语义上差异明显,若直接混用或跳过清洗,后续的挂撤单异常、虚假封单、扫单识别都会建立在错误基础上。本节围绕字段解析、清洗对齐、重采样、订单簿重建与质量检查五个环节,给出可落地的处理思路与示例参数。

一、Level-1 与 Level-2 字段解析

Level-1 通常只提供最优一档买卖价与量、最新价、成交量、成交额等快照字段,更新频率多为 3 秒一次;Level-2 则提供十档甚至逐笔委托与逐笔成交,包含委托序号、买卖方向、价格、数量、撤单标识等。解析时最关键的是明确每个字段的时间语义:交易所时间戳表示撮合事件发生时刻,本地接收时间表示策略收到数据的时刻,两者之差即链路延迟。异常识别中判断“瞬时撤单”必须用交易所时间,而评估策略可执行性则要看本地时间。

以常见的逐笔委托字段为例,一条记录至少应解析出:证券代码、交易所时间(精确到毫秒或微秒)、委托序号、买卖方向(B/S)、价格、数量、订单类型(限价/市价/本方最优等)。逐笔成交则需解析成交序号、买卖双方委托序号、成交价与成交量。示例参数:某标的逐笔委托单日约 8 万条,逐笔成交约 6 万条,十档快照约 4800 条(按 3 秒一档计)。解析阶段应统一价格单位为元、数量单位为股,并保留原始字符串以便回溯。

二、数据清洗与对齐

原始数据常见问题包括:重复推送(同一委托序号出现多次)、乱序到达(后发先至)、字段缺失(价格为 0 或空)、跨市场代码混入。清洗规则建议按以下顺序执行:先按(代码,委托序号)去重并保留交易所时间最早的一条;再按交易所时间稳定排序,时间相同则按委托序号升序;随后剔除价格为 0、数量为 0 或方向非法的记录;最后校验代码属于目标股票池。

对齐的核心是把逐笔事件与快照、成交数据放到同一时间轴上。推荐以交易所时间为基准,采用“事件时间对齐”而非“接收时间对齐”。对于逐笔委托与逐笔成交,可用委托序号建立关联:成交记录中的买方/卖方委托序号应能在委托表中找到对应记录,找不到则标记为“孤儿成交”,这类记录往往来自集合竞价或数据缺失,需单独统计比例。示例判断:若某日孤儿成交占比超过 0.5%,应检查数据源完整性而非直接进入建模。

盘口数据预处理流水线与订单簿重建 Level-1 快照 最优一档 / 3秒 Level-2 十档 多档挂单快照 逐笔委托/成交 事件流 / 毫秒级 清洗与对齐 去重(代码+序号) 按交易所时间排序 剔除非法价格/数量 孤儿成交标记 代码池校验 统一单位(元/股) 时间序列重采样 事件时间 → 固定栅格 1s / 3s / 5s 桶 桶内取最后快照 成交量差分聚合 空桶前向填充 标记填充来源 订单簿重建 初始快照建簿 委托:插入/更新 撤单:删除档位 成交:扣减数量 价格档聚合 与快照交叉校验 数据质量检查与异常值初步处理 孤儿成交率 · 快照与重建簿价差 · 空桶比例 · 价格跳变 · 数量负值 · 时间倒流 超阈值 → 隔离该时段 / 回退重放 / 标记不可用,不进入异常识别模型

三、时间序列重采样

逐笔事件是稀疏且不等间隔的,而多数异常指标(如单位时间撤单率、挂单量变化率)需要固定时间栅格。重采样时建议以交易所时间划分左闭右开的桶,例如 1 秒桶 [t, t+1)。对快照类字段取桶内最后一条记录;对成交量、成交笔数取桶内差分或计数;对委托与撤单取桶内事件计数。空桶处理要谨慎:短暂无事件可前向填充快照,但必须新增“是否填充”标记列,避免把填充值当作真实观测。

示例:以 3 秒桶统计某标的,若某桶内撤单事件为 12 笔、委托事件为 40 笔,则撤单率 30%;若该桶为前向填充且无真实事件,撤单率应记为缺失而非 0。这个区分直接影响后续“异常撤单”判定的分母。

四、订单簿重建方法

订单簿重建的常用做法是“快照建簿 + 事件增量维护”。先用一条十档快照初始化买卖档位;随后按交易所时间顺序回放逐笔委托与成交:新委托按价格插入对应档位并累加数量;撤单按委托序号找到原记录并从对应档位扣减;成交则同时扣减买卖双方对应委托的数量。每处理完一个事件,可将重建簿的最优价与下一时刻真实快照比对,价差超过 1 个最小变动价位即视为重建偏差,需定位是漏单还是乱序导致。

实操中要注意:部分市场逐笔委托不披露全部撤单明细,此时只能依赖快照差分近似;集合竞价阶段的委托与连续竞价语义不同,应分段重建。示例参数:以某标的 09:30–11:30 时段回放,若重建簿与快照的最优价一致率低于 99%,优先检查委托序号是否连续、是否存在跨日残留订单。

五、质量检查与异常值初步处理

进入异常识别前,至少完成以下检查并形成日报:孤儿成交率、重建簿与快照价差分布、空桶比例、价格跳变次数(相邻快照价差超过 5 个最小变动价位)、数量负值或超大盘记录的条数、时间戳倒流条数。对超阈值时段采取隔离或回退重放,而不是用插值“修补”后继续使用。异常值初步处理的原则是先标记、后隔离、再决定是否剔除,保留原始记录与处理标记,确保后续复盘可追溯。只有通过质量门槛的数据,才适合送入盘口异常行为分类模型。