1. 课程导入与数据认知
在Level-1行情里,我们看到的是一根根K线和五档盘口;在Level-2行情里,我们能看到每一笔成交和每一笔委托的明细。而“逐笔成交委托同步回放”,要做的不是简单地把数据播一遍,而是把成交(Trade)与委托(Order)两条独立的数据流,按统一的时间轴对齐后还原出市场微观结构的演化过程。理解这两类数据的定义、区别与联系,是后续所有回放、统计与策略验证工作的地基。
一、两类数据的定义与字段语义
逐笔成交描述的是“已经发生了什么”。以沪深交易所Level-2逐笔成交为例,一条记录通常包含:成交时间(精确到毫秒或更细)、证券代码、成交编号、成交价格、成交数量、成交方向(买方主动/卖方主动,部分市场以BS标志或内外盘标识)、买卖双方委托编号等。它回答的问题是:在某一时刻,谁和谁、以什么价格、成交了多少。
逐笔委托描述的是“正在发生什么”。一条委托记录通常包含:委托时间、证券代码、委托编号、委托价格、委托数量、买卖方向、订单类型(限价/市价/本方最优等)、以及撤单标识。它回答的问题是:某一时刻,市场新增了一笔怎样的意图,或者某笔意图被撤销了。
两者的关键差异可以归纳为三点:语义不同(成交是结果,委托是意图)、数量关系不同(一笔委托可能对应零笔、一笔或多笔成交,一笔成交也可能由多笔委托撮合而成)、时间粒度不同(委托流通常比成交流更密集,且存在大量未成交即撤单的记录)。
二、区别之外的联系:委托编号是桥梁
两类数据并非孤立。逐笔成交中的买方委托编号与卖方委托编号,正是连接成交与委托的“外键”。通过这两个编号,可以把一笔成交回溯到它消耗的买方委托和卖方委托,进而计算该委托的剩余数量、成交均价、存活时长等衍生指标。这也是同步回放的核心价值所在:只有把成交与委托按编号和时间对齐,才能重建订单簿的真实演化。
需要特别说明一个常见误区:不能仅凭成交方向推断委托方向。买方主动成交意味着主动方是买方,但被动方(挂单方)的委托可能早已存在于订单簿中。若只看成交数据,会丢失“谁在挂单、挂单被消耗了多少”的信息;若只看委托数据,又无法知道哪些委托真正成交。二者互补,缺一不可。
三、同步回放的价值与典型场景
为什么必须“同步”?因为单独回放成交,只能看到已发生的撮合结果,无法解释价格为何在此处停留、为何突然被击穿;单独回放委托,只能看到意图的堆积与撤销,却不知道哪些意图真正转化为成交。同步回放把两条流放在同一时间轴上,使“意图—撮合—结果”的因果链完整可见。
典型应用场景包括四类。第一,策略研究与回测:用逐笔数据做撮合模拟,比用K线回测更接近真实成交,尤其对高频、做市、套利类策略,滑点和排队位置必须依赖委托流才能估计。第二,市场微观结构分析:研究订单簿不平衡、撤单率、大单冲击成本、主动买卖比等指标。第三,交易复盘与合规审查:还原某一时段的完整市场行为,判断异常交易或验证成交质量。第四,数据质量校验:通过委托编号关联,检查成交与委托是否自洽,发现缺失、重复或时间错位。
四、课程整体实战路线图
本课程共30章,整体按“认知—准备—实现—验证—应用”推进,但不会把每一章都做成线性步骤,而是围绕真实工程问题展开。
- 数据认知与准备(第1~6章):理解逐笔成交/委托字段语义、交易所差异、数据文件格式(如CSV、二进制快照)、时间戳精度与复权处理,完成数据清洗与校验。
- 回放引擎实现(第7~16章):设计统一时间轴与事件队列,实现委托簿的插入、修改、撤销与撮合匹配,处理委托编号关联、部分成交、撤单、集合竞价等边界情况。
- 状态重建与指标计算(第17~23章):从回放中生成订单簿快照、成交明细、委托存活统计、主动买卖比、滑点与冲击成本等衍生指标。
- 验证与调优(第24~27章):用已知快照对账、检查成交与委托一致性、定位时间错位与数据缺口,评估回放性能与内存占用。
- 应用与复盘(第28~30章):将回放用于策略回测、异常交易识别与典型案例复盘,形成可复用的分析流程。