4. 订单簿快照与逐笔数据解析

在9点20分之后的竞价阶段,订单簿的变化速度会明显加快,而交易所或行情商提供的原始数据通常分成两类:一类是订单簿快照,按固定时间间隔(例如每3秒)拍下当前买卖盘口的“照片”;另一类是逐笔委托与逐笔成交,记录每一笔报单、撤单和撮合的明细。要分析竞价订单变化,必须先把这两类数据读懂、洗干净、对齐到同一时间轴上,否则后续的撤单率、委托增量、盘口失衡等指标都会失真。

一、订单簿快照的结构

快照数据本质上是某一时刻的盘口切片,常见字段包括:时间戳、最新价、成交量、成交额,以及买一至买十、卖一至卖十的价格与数量。以常见的十档快照为例,一条记录可以抽象为:

时间戳        最新价   买一价  买一量  买二价  买二量 ... 卖一价  卖一量 ...
09:20:03     10.52    10.51   3200    10.50   5800  ... 10.52   2100  ...

快照的关键特征是离散、等间隔、只保留盘口状态。它看不到“谁在什么时候下了单”,只能看到“此刻盘口长什么样”。因此快照适合刻画盘口形态、买卖压力对比和价格重心,但不适合直接还原单笔委托行为。另外要注意,快照中的“买一量”是该价位所有未成交委托的汇总,不是某一笔订单,这一点在后续与逐笔数据核对时非常关键。

二、逐笔委托与逐笔成交的结构

逐笔数据是“流水账”,每一条对应一次事件。逐笔委托通常包含:时间戳、委托编号、方向(买/卖)、价格、数量、委托类型(限价/市价/本方最优等)。逐笔成交则包含:时间戳、成交编号、买委托号、卖委托号、成交价、成交量。二者通过委托编号关联,可以还原“某笔委托下了多少、成交了多少、撤了多少”。

逐笔数据的核心价值在于可追溯:能识别大单挂出、快速撤单、对倒撮合等行为。但它也有两个坑:一是时间戳精度可能只到秒或毫秒,同一时间戳内存在多条事件,顺序需要靠委托编号或成交编号辅助判断;二是部分行情源的逐笔委托只包含“新增委托”,撤单以独立事件或成交回报形式出现,需要按规则合并。

快照与逐笔数据的时间轴对齐 09:20:00 09:20:03 09:20:06 09:20:09 快照S1 快照S2 快照S3 买委托 10.51×800 撤单 委托#A17 卖委托 10.52×500 成交 10.52×300 S1→S2 区间内逐笔事件聚合,用于解释盘口变化 快照S1 买一量 3200 S2 买一量 4000 增量 +800 与买委托吻合 S2 卖一量 2100 S3 卖一量 1600 减少 500 与成交+撤单核对

三、数据清洗:先修“脏”,再谈分析

原始数据到手后,第一步不是急着算指标,而是清洗。常见问题与处理方式如下:

  • 时间戳格式不统一:快照可能是“HH:MM:SS”,逐笔可能是毫秒时间戳。统一转换为“当日毫秒数”,并明确时区与是否含日期。
  • 重复记录:行情重传会导致同一委托编号出现多次,按委托编号+时间戳去重,保留首次出现。
  • 缺失与异常值:价格为0、数量为负、买一价大于卖一价(交叉盘口)的记录要标记并剔除,不能直接参与统计。
  • 撤单识别:若逐笔委托中没有显式撤单类型,可用“原委托数量 − 已成交量”与后续盘口变化交叉验证,或依据行情商文档中的撤单标志位处理。
  • 集合竞价特殊规则:9:20后不可撤单(沪深规则不同,需按标的与板块确认),清洗时应把该时段内出现的“撤单”事件视为异常并单独核查,避免误判为真实撤单行为。
注意:不同行情源对“逐笔委托”的定义不同,有的只含新增委托,有的含撤单,有的把成交也并入逐笔流。清洗前必须先读数据字典,确认字段含义,否则对齐结果会系统性偏差。

四、对齐方法:把两条时间轴拧成一条

快照与逐笔的对齐,核心是区间聚合:把相邻两个快照之间的所有逐笔事件归入同一区间,用这些事件解释盘口从S1到S2的变化。具体做法是:

  1. 以快照时间戳为分界点,构造区间 [S1, S2)、[S2, S3)……左闭右开,避免边界事件重复计入。
  2. 将逐笔委托、撤单、成交按时间戳落入对应区间。
  3. 对每个区间统计:新增买量、新增卖量、撤买量、撤卖量、成交量,并与快照盘口差值核对。
  4. 核对公式(以买一为例):S2买一量 ≈ S1买一量 + 区间内该价位新增买量 − 该价位成交量 − 该价位撤买量。若偏差超过阈值(如5%),说明存在未捕获事件或数据源口径差异,需回查。

举个教学示例(数据为合理假设):S1时刻买一价10.51、买一量3200;区间内出现一笔买委托10.51×800,无成交、无撤单;则S2买一量应为4000。若实际S2显示3900,差额100就需要排查是否有部分成交未被逐笔成交记录覆盖,或快照本身存在延迟。这个核对过程,就是把“看起来对”变成“验证过对”的关键一步。

五、对齐后的可用字段

完成清洗与对齐后,每条快照区间可以派生出一组分析字段,例如:区间新增委托笔数与数量、撤单笔数与撤单率、主动买卖成交量、盘口失衡度(买一量−卖一量)/(买一量+卖一量)。这些字段才是9点20分后竞价订单变化分析的直接输入。建议把对齐结果整理成一张区间明细表,字段包括:区间起止时间、新增买量、新增卖量、撤买量、撤卖量、成交量、快照买一量变化、核对偏差。偏差列是数据质量的“体检指标”,长期偏大的区间应回溯数据源。

实操建议:先用一小段(如9:20:00–9:20:30)数据跑通“清洗→分区间→核对”的闭环,确认偏差在可接受范围后,再扩展到全竞价时段。对齐逻辑一旦写错,后面所有指标都会跟着错,先小后大是最稳妥的验证路径。

总结来说,快照回答“盘口变成了什么样”,逐笔回答“是谁、在什么时候、做了什么”,对齐则是把两者用时间区间缝合起来,并用盘口差值做交叉验证。掌握这套结构解析与清洗对齐方法,后续的撤单行为识别、委托增量分析和竞价异动判断才有可靠的数据基础。