2. Tick数据字段详解:时间戳、成交价、成交量、成交额、买卖方向、成交编号、逐笔标识
Level2 Tick数据是逐笔成交的微观快照,每个字段都承载着特定的市场信息。理解这些字段的物理含义、精度限制和业务逻辑,是构建高频策略的基础。本章将逐一拆解七个核心字段,并揭示它们在实际策略中的使用陷阱。
2.1 字段全景一览
下表汇总了Tick数据中每个字段的名称、数据类型、精度及核心用途,便于快速查阅:
| 字段名称 | 数据类型 | 精度/格式 | 核心用途 |
|---|---|---|---|
| 时间戳 | INT64 / DateTime | 毫秒级(3位小数) | 事件排序、延迟计算、切片对齐 |
| 成交价 | FLOAT / INT64 | 最小变动价位(如0.01元) | 价格序列构建、价差计算、信号触发 |
| 成交量 | INT32 | 股(A股)或手(期货) | 流动性评估、大单识别、成交量加权 |
| 成交额 | FLOAT / INT64 | 保留两位小数(元) | 资金流向、大额资金监控 |
| 买卖方向 | CHAR / INT8 | 'B'/'S' 或 1/2 | 主动性买卖判定、资金流方向 |
| 成交编号 | INT64 | 交易所唯一流水号 | 去重、订单关联、回放校验 |
| 逐笔标识 | INT32 / STRING | 逐笔序号或分组ID | 大单拆分识别、订单簿重建 |
2.2 时间戳:毫秒级精度与排序陷阱
时间戳是Tick数据中最敏感的字段。Level2行情提供的是交易所撮合主机生成成交记录时的毫秒级时间戳(部分交易所已升级至微秒级)。
- 精度差异:上交所Tick时间戳精确到毫秒(3位小数),深交所早期为秒级,现已升级至毫秒。期货市场(中金所、大商所等)通常提供微秒级时间戳。
- 排序问题:同一毫秒内可能发生多笔成交,仅依赖时间戳无法确定内部顺序。必须结合成交编号进行二次排序。
- 策略应用:计算订单到成交的延迟(latency)、对齐不同股票的时间窗口、检测市场微观结构中的异常停顿。
⚠️ 常见陷阱: 部分数据商提供的时间戳是接收时间而非交易所生成时间。使用前务必确认时间戳来源,否则延迟计算可能完全失真。
2.3 成交价与成交量:价格发现的核心
成交价是买卖双方达成一致的价格,成交量则是该价格下成交的股份数量。两者共同构成Tick数据的价格-数量二元组。
- 成交价:必须落在交易所规定的最小变动价位网格上。A股为0.01元,部分ETF为0.001元,期货则因品种而异。
- 成交量:A股以“股”为单位,期货以“手”为单位。注意区分“成交量”与“持仓量”的变化。
- 成交额:由成交价 × 成交量计算得出,但交易所直接提供该字段可避免浮点舍入误差。
💡 策略提示: 使用成交量加权平均价格(VWAP)时,Tick级别的成交额字段比手动计算更精确,尤其适合大单拆分执行的基准跟踪。
2.4 买卖方向:判定主动性买卖
买卖方向字段标识了该笔成交是由买方主动吃单还是卖方主动砸盘。这是判断资金流向和市场情绪的关键指标。
| 方向标识 | 含义 | 市场含义 |
|---|---|---|
| B(Buy) | 主动性买入 | 买方以卖一价或更高价成交,看多意愿强 |
| S(Sell) | 主动性卖出 | 卖方以买一价或更低价成交,看空意愿强 |
| — | 未知/跨档成交 | 部分交易所不标记方向,需通过价格对比推断 |
在策略中,通常将连续多笔主动性买入的成交量累加,构建主动买盘量指标,用于识别主力资金的介入或离场。
2.5 成交编号与逐笔标识:唯一性与关联性
这两个字段共同解决了Tick数据的唯一标识和订单关联问题。
- 成交编号:交易所为每笔成交分配的全局唯一流水号。用于去重(防止数据重复接收)、排序(同一毫秒内按编号升序排列)、以及回放时的精确校验。
- 逐笔标识:用于将一笔大单拆分成多笔Tick成交时,将这些Tick关联到同一个母单。例如,一个100万股的买单可能被拆成10笔10万股的Tick,它们共享同一个逐笔标识。
🔍 高级用法: 利用逐笔标识可以还原“冰山订单”的真实规模。将同一逐笔标识下的所有Tick成交量累加,即可得到该笔大单的总成交量,从而识别隐藏流动性。
2.6 Tick数据字段关系图
下图展示了七个核心字段之间的逻辑关系与数据流向:
2.7 字段使用避坑指南
在实际策略开发中,以下问题最容易导致回测与实盘不一致:
- 时间戳对齐:不同股票、不同交易所的时间戳可能存在系统偏差,跨品种策略必须做时间同步校准。
- 成交额精度:成交额 = 成交价 × 成交量,但浮点运算可能产生0.01元级别的误差。建议直接使用交易所提供的成交额字段。
- 方向判定歧义:部分交易所(如早期的深交所)不直接提供买卖方向,需要通过成交价与买卖盘口的对比来推断,这会引入额外的计算延迟和误判风险。
- 逐笔标识的缺失:并非所有市场都提供逐笔标识。在缺失该字段时,大单拆分识别只能依赖成交量阈值和相邻Tick的时间间隔来近似判断。
✅ 最佳实践: 在数据预处理阶段,始终保留原始字段不做任何修改。策略逻辑中需要派生字段(如累计成交量、方向累计)时,通过独立的计算模块生成,避免污染原始Tick数据。