1. 课程导入与逐笔成交数据概览
在量化交易与市场微观结构研究中,日线、分钟线这类"快照式"行情只保留了区间内的价格与成交量汇总,而真正刻画"谁在什么时刻、以什么方向、成交了多少"的信息,藏在逐笔成交数据里。本课程围绕逐笔成交字段与代码字典的整理展开,目标是让读者拿到一份原始逐笔数据后,能够准确识别每个字段的含义、取值约定与单位,并最终沉淀为一份可复用、可校验的字段字典。作为开篇,本节先厘清逐笔成交是什么、它在交易分析中承担什么角色、数据从哪来,以及字段整理与代码字典究竟要解决什么问题。
逐笔成交的定义与数据形态
逐笔成交(Tick-by-Tick Trade,常简称逐笔或成交明细)是指交易所撮合系统每产生一笔成交就记录一条的明细数据。与快照行情不同,它不是按固定时间间隔采样,而是"事件驱动"——有成交才有一条记录。一条典型的逐笔成交记录至少包含:成交时间(精确到毫秒甚至微秒)、证券代码、成交价格、成交数量、成交金额、买卖方向标识、成交编号等。沪深交易所的 Level-2 行情中,逐笔成交通常还带有买方委托序号与卖方委托序号,用于与逐笔委托数据关联还原订单生命周期。
需要特别区分三个容易混淆的概念:逐笔成交记录的是"已经撮合成功的交易";逐笔委托记录的是"进入撮合队列的订单申报、撤单";快照行情则是每隔约 3 秒对盘口与最新价的一次切片。三者粒度与语义不同,字段体系也不同,整理字典时必须分开建表,不能混用字段名。
逐笔成交在交易分析中的作用
逐笔成交的价值在于它保留了成交的方向性与时序性,这使得许多仅靠 K 线无法完成的分析成为可能。常见用途包括:
- 主动买卖盘分析:通过买卖方向标识或委托序号比较,区分主动买成交与主动卖成交,计算净主动买入量,判断资金流向。
- 大单与拆单识别:按成交金额分档统计大单占比,或利用相同委托序号聚合被拆分的成交,识别机构行为痕迹。
- 微观结构指标计算:如成交量加权均价、有效价差、订单簿失衡度、成交到达强度等,均以逐笔数据为输入。
- 回测与成交模拟:用逐笔成交还原真实可成交价格与滑点,比用收盘价回测更贴近实盘。
- 异常交易监测:对倒、拉抬、频繁撤单等行为往往在逐笔层面才暴露特征。
正因为用途多样,同一份原始数据在不同分析场景下会被反复读取,字段含义一旦理解偏差,后续所有指标都会系统性出错。这也是本课程把"字段整理与代码字典"作为核心任务的原因。
常见数据来源与字段差异
逐笔成交数据主要来自三类渠道。第一类是交易所 Level-2 行情,如上交所、深交所的 Level-2 逐笔成交,字段规范由交易所发布,权威性最高,通常包含成交时间、代码、价格、数量、买卖方向、买卖委托序号等。第二类是逐笔委托与订单簿重建数据,部分数据商在逐笔成交之外同时提供逐笔委托,二者通过委托序号关联,可还原完整订单链。第三类是数据商加工后的衍生逐笔,如按主买主卖重新标注方向、合并同委托成交、附加行业与市值标签等,字段更丰富但口径由数据商定义。
不同来源的字段差异是整理工作的主要难点:同一含义可能叫 trade_price、price 或 成交价;数量单位可能是"股"也可能是"手";时间可能是字符串 "09:30:00.500" 也可能是毫秒整数;买卖方向可能用 B/S、1/2、0/1 甚至正负号表示。若不建立统一字典,跨源拼接数据时极易出现价格放大百倍、方向反转、时间错位等问题。
字段整理与代码字典的核心目标
所谓"字段整理",不是简单地把列名抄一遍,而是完成四件事:识别(每个字段对应什么业务含义)、归一(统一命名、单位、类型与方向约定)、校验(用规则验证取值是否合理)、留痕(记录来源与转换过程)。而"代码字典"是这四件事的最终载体,它是一份结构化的元数据表,让任何拿到数据的人不必再猜字段含义。
一份合格的逐笔成交代码字典,至少应覆盖以下信息:标准字段名、中文名称、数据类型、单位、取值范围或枚举约定、缺失值处理方式、来源字段映射、以及一条可用于自检的样例值。以买卖方向为例,若原始数据用 1 表示买、2 表示卖,而另一源用 B/S,字典中就应明确统一为 B/S 并给出映射规则,避免下游代码各写一套判断。
一个可操作的整理起点
假设我们拿到一份示例逐笔成交文件,前几行如下(数据为教学示例,非实测):
trade_time,code,price,volume,side,bid_seq,ask_seq
09:30:00.120,600000,10.25,300,1,10231,20567
09:30:00.350,600000,10.26,500,2,10245,20580
09:30:01.010,600000,10.25,200,1,10260,20592
整理时我们首先判断:side 取值为 1/2,需确认 1 是买还是卖;volume 为 300、500,需确认单位是股还是手;trade_time 为字符串,需转为毫秒整数以便排序与计算间隔。随后在字典中登记:标准字段 trade_time_ms(整数,毫秒)、price(浮点,元)、volume(整数,股)、side(枚举 B/S)。最后用校验规则检查:价格是否落在当日涨跌停区间内、数量是否为正整数、买卖序号是否非空、时间是否单调不减。只有这些检查通过,字典才算真正可用,而不是一份"看起来完整"的文档。