2、Tick数据字段详解:时间戳、最新价、成交量、成交额、买卖盘口五档、逐笔成交标识
Tick数据是逐笔成交与逐笔委托的原始记录,每个字段都承载着市场微观结构的核心信息。理解每个字段的生成逻辑、精度陷阱与常见异常,是进行标签校准的前提。本章将逐一拆解Tick数据的关键字段,并给出实战中的校验要点。
2.1 字段总览与数据字典
以下表格列出了Tick数据中最核心的六个字段及其基础属性。在实际生产中,不同交易所(如沪深交易所、中金所、大商所)的字段命名和精度可能略有差异,但逻辑一致。
| 字段名称 | 数据类型 | 精度/单位 | 典型示例 | 校准关注点 |
|---|---|---|---|---|
| 时间戳 | datetime / int64 | 毫秒或微秒 | 2025-03-21 14:30:00.123 | 是否单调递增、是否存在重复或回退 |
| 最新价 | float64 | 最小变动价位(如0.01元) | 15.68 | 是否在涨跌停范围内、是否与成交价一致 |
| 成交量 | int64 | 股/手(需区分) | 1000 | 是否为0或负数、是否与逐笔累加一致 |
| 成交额 | float64 | 元 | 15680.00 | 是否等于最新价×成交量(考虑精度) |
| 买卖盘口五档 | struct | 价格/数量对 | 买一:15.67/200 | 价格是否交叉、数量是否异常大 |
| 逐笔成交标识 | string / int | 枚举值 | B / S / 4 | 是否与主买主卖方向一致 |
实战提示: 在数据清洗阶段,建议先对时间戳进行排序和去重检查,再逐字段校验其他字段的合理性。时间戳一旦出错,后续所有基于时间的聚合分析都会产生偏移。
2.2 时间戳:Tick数据的“脊梁”
时间戳是Tick数据中最敏感的字段。它决定了每一笔成交或委托发生的先后顺序。常见的异常包括:
- 时间回退: 后一条记录的时间戳早于前一条,通常由数据拼接错误或系统时钟漂移引起。
- 重复时间戳: 多条记录共享同一个毫秒级时间戳,需要判断是正常的高频并发还是数据重复。
- 精度不一致: 部分数据源提供微秒级(6位小数),部分只提供毫秒级(3位小数),合并时需统一精度。
校准规则: 时间戳必须严格单调递增(允许相等但需标记)。对于回退的记录,建议直接剔除或根据前后记录插值修正。
2.3 最新价与成交量、成交额:价格-数量-金额三角校验
这三个字段构成一个基本的会计恒等式:成交额 ≈ 最新价 × 成交量。由于最小变动价位和舍入规则,实际计算时允许存在微小误差(通常不超过1分钱乘以成交量)。
常见异常场景:
- 成交额与价格×数量不匹配: 可能由数据录入错误或除权除息未调整导致。
- 最新价超出涨跌停范围: 直接判定为异常数据,需与行情快照交叉验证。
- 成交量为0但成交额不为0: 逻辑矛盾,属于无效记录。
# 三角校验示例(Python伪代码)
def check_tick_consistency(row, tick_size=0.01):
expected_amount = round(row['latest_price'] * row['volume'], 2)
actual_amount = row['amount']
if abs(expected_amount - actual_amount) > tick_size * row['volume'] * 0.01:
return False # 标记为异常
return True
2.4 买卖盘口五档:市场深度的快照
买卖盘口五档(买一至买五、卖一至卖五)反映了当前时刻的委托队列。校准的核心在于检查价格优先、时间优先原则是否被违反。
- 价格交叉检查: 买一价必须小于卖一价,否则出现“价格倒挂”,属于严重异常。
- 档位顺序检查: 买一价 ≥ 买二价 ≥ 买三价 ≥ 买四价 ≥ 买五价;卖一价 ≤ 卖二价 ≤ 卖三价 ≤ 卖四价 ≤ 卖五价。
- 数量合理性: 单档挂单数量不应超过该股票的总流通股本或明显超出市场正常范围(如出现天文数字)。
注意: 部分Level-2行情中,盘口数据可能包含“虚挂”或“撤单”导致的瞬间异常,校准时应结合前后Tick的盘口变化进行判断,不要仅凭单点数据直接剔除。
2.5 逐笔成交标识:主买与主卖的判定
逐笔成交标识用于区分一笔成交是由主动买入还是主动卖出触发的。常见的标识方式包括:
- 字母标识: B(Buy,主动买)、S(Sell,主动卖)。
- 数字标识: 如1表示主买,2表示主卖,3表示未知或撮合。
- 方向标识: 部分数据源直接给出“主买”或“主卖”的字符串。
校准要点:
- 与盘口价格对比: 如果成交价等于卖一价,通常为主买;等于买一价,通常为主卖。若标识与盘口逻辑矛盾,需标记。
- 连续相同方向检查: 若连续出现大量同向标识且价格未变,可能存在数据重复或标识错误。
2.6 Tick数据结构与字段关系图
下图展示了Tick数据中各字段之间的逻辑关系与校验流向。时间戳作为全局索引,连接了成交数据与盘口快照,而逐笔成交标识则与最新价、盘口价格共同决定成交方向。
2.7 字段校准优先级与常见异常速查表
在实际清洗流程中,建议按照以下优先级顺序进行字段校准,避免低优先级异常干扰高优先级判断。
| 优先级 | 字段 | 常见异常 | 处理方式 |
|---|---|---|---|
| P0(最高) | 时间戳 | 回退、重复、精度不一致 | 排序、去重、统一精度;无法修复则剔除 |
| P1 | 最新价 | 超出涨跌停、为负值 | 与行情快照比对;异常值置为NaN |
| P2 | 成交量 / 成交额 | 三角校验不通过、量为0额不为0 | 标记并尝试用其他字段修正 |
| P3 | 买卖盘口五档 | 价格交叉、档位顺序错误 | 剔除该条盘口数据,保留成交数据 |
| P4 | 逐笔成交标识 | 与盘口方向矛盾 | 根据盘口价格重新判定方向 |
校准口诀: 先看时间后看价,量额三角不能差;盘口五档防交叉,标识方向再检查。