4. 涨停板盘口数据获取与清洗
要估计涨停板上的排队成交概率,第一步不是建模,而是把盘口数据“拿对、拿全、拿干净”。涨停板排队本质上是一个按时间优先、价格固定的队列问题:谁先挂单、挂了多少、前面有多少量、有没有撤单、成交逐笔怎么发生,这些信息决定了某笔委托最终能否成交。普通快照行情(如3秒一笔的Level-1)只能看到买一价上的总封单量,无法区分队列中每一笔委托的先后与撤单行为,因此必须依赖Level-2行情中的逐笔委托与逐笔成交数据。本节围绕数据字段、逐笔数据结构、频率对齐和异常值处理四个环节展开,为后续概率估计打好数据底座。
一、Level-2行情中与排队相关的核心字段
沪深交易所的Level-2行情通常包含快照、逐笔委托、逐笔成交三类消息。与涨停排队直接相关的字段可归纳如下(字段名以常见行情接口为例,不同数据商命名略有差异):
| 数据类别 | 关键字段 | 在排队估计中的作用 |
|---|---|---|
| 逐笔委托 | 委托编号、委托时间、价格、数量、买卖方向、委托类型 | 还原队列中每笔挂单的到达顺序与规模,识别撤单 |
| 逐笔成交 | 成交编号、成交时间、价格、数量、买方委托号、卖方委托号 | 确定队列前端的消耗速度,判断某委托是否已成交 |
| 快照 | 买一价、买一量、卖一价、卖一量、最新价、累计成交量 | 校验逐笔数据完整性,提供封单总量与价格状态 |
| 订单簿状态 | 涨停价、涨跌停标志、交易阶段 | 界定“涨停封板”区间,过滤非涨停时段数据 |
其中“委托类型”字段尤为关键:它区分了限价委托、市价委托以及撤单消息。很多数据源把撤单作为独立的委托类型(如类型值为“D”或“撤”),若不解析该字段,就会把撤单误当成新增挂单,导致队列长度被系统性高估。另一个易错点是委托编号与成交编号的对应关系——逐笔成交中的买方委托号可以反查是哪一笔挂单被成交,这是重建队列消耗过程的核心线索。
二、逐笔委托与成交数据的结构关系
涨停封板期间,卖一档通常为空(或仅有极少量的瞬时卖单),买一价等于涨停价,所有新进买单都排在队尾。此时队列的演化只由两类事件驱动:入队(新增买单)和出队(成交或撤单)。逐笔委托给出入队与撤单事件,逐笔成交给出出队事件,两者按时间戳合并后,才能得到队列长度的真实变化。
上图展示了封板期间队列的三种事件。实际处理时,建议以“事件流”方式合并数据:把逐笔委托和逐笔成交按交易所时间戳排序,逐条更新队列状态。需要注意,交易所时间戳精度通常为毫秒甚至更细,但不同数据源的时间戳可能存在微小时差,合并前应统一时区与精度,否则会出现“成交先于委托”的倒挂现象。
三、数据频率对齐
逐笔数据是事件驱动的,快照数据是固定频率的(常见为3秒一笔),而后续概率模型往往需要按固定时间窗口(如每秒、每5秒)统计封单量、成交速度等指标。频率对齐的核心原则是:把高频事件聚合到低频时间桶,而不是把低频数据插值成高频。具体做法是:
- 确定基准时间桶,例如以秒为单位,桶边界取整秒。
- 将逐笔委托、逐笔成交按事件时间戳落入对应时间桶,分别累计新增买单量、撤单量、成交量。
- 在每个桶结束时,用“上一桶末队列长度 + 本桶入队 − 本桶出队”递推得到桶末队列长度。
- 用同一时刻的快照买一量做交叉校验,若偏差超过阈值(例如5%),标记该桶为可疑并回溯检查。
这里有一个常见陷阱:快照的“买一量”是某一瞬间的队列总量,而逐笔聚合得到的是区间累计值,两者时间点并不严格重合。因此校验时应允许一个桶的容差,或改用“快照买一量序列的差分”与“逐笔净变化”对比,而不是直接比较绝对值。此外,集合竞价阶段与连续竞价阶段的委托处理规则不同,封板通常发生在连续竞价阶段,对齐时应先按交易阶段切分数据,避免把开盘集合竞价的虚拟撮合数据混入。
四、异常值识别与处理
逐笔数据在实际获取中常出现以下几类异常,处理方式应区别对待:
| 异常类型 | 典型表现 | 处理建议 |
|---|---|---|
| 重复推送 | 同一委托编号或成交编号出现多次 | 按编号去重,保留首条 |
| 时间倒挂 | 成交时间早于对应委托时间 | 检查时间戳精度与时区,无法修复则剔除该配对 |
| 数量异常 | 单笔数量为0、为负或远超该股正常单笔规模 | 结合涨跌停价与流通股本设定合理上限,超限标记 |
| 撤单误判 | 撤单被当作新增挂单 | 解析委托类型字段,撤单量从队列中扣减 |
| 数据缺口 | 某时间段逐笔消息缺失,快照买一量突变 | 用前后快照差分估算缺口量,标记为低置信区间 |
异常值处理不应简单删除了事,因为涨停排队数据本身具有“尾部事件”特征——大额撤单往往正是判断封板稳固程度的关键信号。建议采用“标记 + 分级”策略:对每一条异常记录打上类型标签和置信度,在后续概率估计中按置信度加权,而不是直接丢弃。例如,对于数量异常但委托编号连续的记录,可保留其时间与方向信息,仅对数量做截尾处理(如用该股当日单笔成交量的95分位数替代)。
完成上述四步后,得到的是按时间桶对齐、带质量标记的队列状态序列:每个桶包含新增买单量、撤单量、成交量、桶末队列长度及置信度。这份序列就是后续估计“某笔委托在给定时间内成交概率”的直接输入。数据字段选得准、逐笔事件合得对、频率对齐不引入虚假精度、异常值处理保留信息而非粗暴删除,四者共同决定了概率估计结果是否可信。