3. 标签口径定义:什么是标签口径、常见标签类型

在高频交易与量化分析中,标签口径是指对行情数据中每一笔或每一档事件赋予的标准化属性定义。它决定了数据使用者如何理解“这笔单子是谁发起的”“这笔交易是主动成交还是被动等待”“这笔订单算大单还是小单”。口径不一致,同一笔数据在不同系统里可能得出完全相反的结论。

核心原则:标签口径必须满足“可复现、无歧义、可校验”三个条件。任何依赖主观判断或事后归因的口径,在高频场景下都会导致信号失真。

3.1 什么是标签口径

标签口径是一套从原始行情到结构化标签的映射规则。它包含三个要素:

  • 输入源:交易所原始逐笔数据、Level-2 快照、Order Book 事件流。
  • 计算逻辑:基于价格、数量、时间、队列位置等字段的判定算法。
  • 输出标签:一个离散的枚举值,例如 BUY / SELL、AGGRESSIVE / PASSIVE、LARGE / SMALL。
维度 原始字段示例 标签输出示例 口径依赖
买卖方向 成交价、买一价、卖一价 BUY / SELL 价格比较规则
主动/被动 成交方向、挂单队列 AGGRESSIVE / PASSIVE 吃单方判定逻辑
大单/小单 成交数量、订单金额 LARGE / SMALL 阈值设定方法
实战提示:在搭建标签系统时,建议将口径定义写为 YAML 或 JSON 配置文件,与计算引擎分离。这样当交易所升级或业务规则变化时,只需修改配置,无需重写代码。

3.2 常见标签类型详解

3.2.1 买卖方向标签

买卖方向是最基础的标签,用于标识一笔成交是由买方发起还是卖方发起。在高频场景下,通常采用价格比较法:

  • 若成交价 > 上一笔买一价,判定为 BUY(买方主动吃单)。
  • 若成交价 < 上一笔卖一价,判定为 SELL(卖方主动吃单)。
  • 若成交价等于买一价且等于卖一价(盘口重合),需结合队列变化或时间优先规则做二次判定。
# 伪代码:买卖方向判定
def label_trade_direction(trade, prev_bid, prev_ask):
    if trade.price > prev_bid:
        return "BUY"
    elif trade.price < prev_ask:
        return "SELL"
    else:
        # 盘口重合场景,需额外逻辑
        return classify_by_queue(trade, prev_bid, prev_ask)
常见陷阱:部分交易所(如部分商品期货)在集合竞价阶段不提供买一/卖一价,此时价格比较法会失效。必须为集合竞价时段单独配置口径规则,例如使用“上一笔成交价”或“参考价”作为基准。

3.2.2 主动/被动标签

主动/被动标签标识一笔成交中哪一方是“吃单方”(主动成交),哪一方是“挂单方”(被动等待)。该标签与买卖方向高度相关,但并非完全等价:

  • 主动买入:买方以卖一价或更高价格成交,属于 AGGRESSIVE_BUY。
  • 被动买入:买方挂单在买一价等待,被卖方主动成交,属于 PASSIVE_BUY。
  • 主动卖出:卖方以买一价或更低价格成交,属于 AGGRESSIVE_SELL。
  • 被动卖出:卖方挂单在卖一价等待,被买方主动成交,属于 PASSIVE_SELL。

在实际系统中,主动/被动标签通常通过成交方向与盘口价格对比来判定:

# 伪代码:主动/被动判定
def label_aggressive(trade, bid, ask):
    if trade.price >= ask:
        return "AGGRESSIVE_BUY"
    elif trade.price <= bid:
        return "AGGRESSIVE_SELL"
    else:
        # 价格在盘口内,需结合队列变化
        return classify_by_depth_change(trade, bid, ask)

3.2.3 大单/小单标签

大单/小单标签用于区分订单规模,是资金流向分析和市场冲击估算的基础。口径定义通常包含以下三种方法:

方法 判定依据 适用场景 优缺点
固定阈值法 成交量 >= 阈值(如 1000 股) 单一品种、稳定市场 简单直观,但无法适应波动
百分比法 成交量占近 N 笔总成交量的百分比 多品种、跨周期 自适应,但计算开销大
统计分位法 成交量处于历史分布的前 10% 高频因子研究 准确,但需维护历史分布
推荐做法:在实盘环境中,建议同时使用“固定阈值法”做快速过滤,再用“统计分位法”做二次校准。两者结合可以在延迟和精度之间取得平衡。

3.3 标签口径的层级关系

三种标签并非独立存在,而是构成一个三层标签体系:底层是买卖方向,中间层是主动/被动,顶层是大单/小单。上层标签的判定往往依赖下层标签的结果。

标签口径层级关系 大单 / 小单 依赖主动/被动标签 主动 / 被动 依赖买卖方向标签 买卖方向 原始行情第一层标签 说明:上层标签的判定必须以下层标签的结果为前提,不可跨层独立计算。 例如:大单判定需要先知道该笔是主动买入还是被动卖出。

3.4 口径校准的常见问题

  • 盘口重合时的方向误判:当买一价等于卖一价时,价格比较法失效。解决方案是引入“队列变化优先”规则:比较成交前后买一和卖一的挂单量变化,量减少的一方为被动方。
  • 大单阈值的时间敏感性:同一笔成交量在早盘可能算大单,在尾盘可能算小单。建议按交易时段动态调整阈值,或使用滚动窗口的统计分位法。
  • 主动/被动标签的延迟问题:如果使用事后快照做判定,可能因盘口变化导致标签错误。高频系统应使用事件发生时刻的盘口快照,而非当前快照。
校准建议:每季度至少做一次标签口径的回测校验。选取过去 3 个月的逐笔数据,人工标注 1000 笔样本,对比系统标签与人工标签的一致性。若一致率低于 95%,需检查口径规则或代码实现。