2. 高频成交数据基础

要识别高频成交簇,第一步不是写算法,而是把数据“看透”。高频成交簇本质上是“在极短时间窗口内、围绕相近价格、由连续多笔成交构成的密集事件”,因此它天然依赖两类底层数据:逐笔成交数据(Tick/Trade)与快照数据(Snapshot/Quote)。前者回答“每一笔成交发生了什么”,后者回答“在每个时刻盘口长什么样”。二者结构不同、时间语义不同,混用或误读会直接导致簇识别结果失真。

一、逐笔成交数据的结构与字段含义

逐笔成交数据以“一笔成交”为一条记录,是构建成交簇最核心的原料。不同数据源字段命名略有差异,但核心字段基本一致,可归纳为下表所示的语义层次。

字段类别典型字段含义与在簇识别中的作用
标的标识symbol / code区分不同证券,簇识别必须按标的独立计算,不可跨标的聚合。
时间trade_time / timestamp成交发生时刻,决定窗口切分与簇内间隔判断,精度问题最集中。
价格price成交价,用于判断簇内价格是否“相近”,以及区分主动买卖方向。
数量volume / qty成交股数或手数,用于度量簇的强度与单笔规模。
金额amount / turnover价格×数量,用于跨价位比较簇的成交额权重。
方向side / bs_flag主动买、主动卖或未知,决定簇的方向属性与后续信号含义。
序号seq / trade_index同一时间戳内的排序依据,解决“同刻多笔”的先后问题。

需要特别强调方向字段。很多数据源并不直接给出主动买卖标志,而是需要依据成交价与当时买一/卖一价的关系推断:成交价等于卖一价通常视为主动买,等于买一价视为主动卖,介于两者之间则需结合逐笔委托或规则判定。若方向字段缺失或推断错误,成交簇的“买方簇/卖方簇”标签就会整体偏移,这是实盘中非常隐蔽的错误来源。

二、快照数据的结构与字段含义

快照数据是按固定频率(如每3秒、每500毫秒)对盘口状态的一次“拍照”,一条记录对应一个时刻的完整盘口切片。其核心字段包括:时间戳、最新价、成交量累计值、成交额累计值,以及买一至买N、卖一至卖N的价位与挂单量。

快照与逐笔的关系需要厘清:快照中的“累计成交量”是单调递增的累计值,相邻两期之差才是该区间内的成交量;而逐笔成交是逐条明细。二者可以互相校验——用逐笔成交量求和去比对快照累计量差值,是发现数据缺失、重复、错位的常用手段。此外,快照的买卖盘口为逐笔成交提供了“当时可成交价位”的参照,是判断主动方向与评估簇冲击成本的重要背景。

逐笔成交流 与 快照切片 的时间对齐关系 时间 逐笔成交(Tick) t=10:00:01.120 价 10.02 量 300 主动买 t=10:00:01.180 价 10.02 量 500 主动买 t=10:00:01.240 价 10.03 量 200 主动买 t=10:00:01.310 价 10.01 量 400 主动卖 t=10:00:01.360 价 10.02 量 600 主动买 快照(Snapshot,每3秒) t=10:00:00.000 累计量 12000 买一 10.01 / 卖一 10.02 t=10:00:03.000 累计量 14000 买一 10.02 / 卖一 10.03 t=10:00:06.000 累计量 16500 买一 10.02 / 卖一 10.04 校验:区间内逐笔量之和 应等于 相邻快照累计量之差(如 14000−12000=2000)

三、时间戳精度:簇识别的“隐形地基”

成交簇的判定高度依赖“时间间隔”这一参数,例如“相邻成交间隔小于300毫秒视为同一簇”。因此时间戳精度直接决定窗口边界是否可靠。实践中需关注三点:

  • 精度等级:常见有秒级、毫秒级、微秒级。秒级数据无法支撑毫秒级簇划分,只能退化为“同秒聚合”,簇的粒度会明显变粗。
  • 同刻多笔:同一时间戳下可能有多笔成交,必须借助序号字段排序,否则簇内顺序错乱会影响方向与强度统计。
  • 时钟基准:逐笔与快照若来自不同系统,时钟可能不同步,导致“成交发生在快照之前还是之后”判断错误。应统一到同一时间基准,并明确时间戳是“成交时刻”还是“入库时刻”。

四、常见数据质量问题与处理思路

真实数据几乎不可能“干净”。以下是高频成交数据中最常见的几类问题及其识别与处理方式:

问题类型典型表现识别与处理
缺失某段时间无记录,或快照累计量跳变用累计量差值反推应有成交量,与逐笔求和比对,缺口标记为缺失区间,簇识别时降权或剔除。
重复同一笔成交出现两次按“时间+价格+数量+序号”去重,避免簇强度被虚增。
错位时间戳乱序或跨日按时间与序号重排,检查跨日边界,防止窗口跨越非交易时段。
异常值价格为0、数量为0或极端偏离设定合理价格区间与数量上限过滤,异常记录单独留存备查。
方向缺失side字段为空或全为未知用成交价与盘口买卖一价关系推断,并抽样人工核对。
建议在正式做簇识别前,先跑一遍“数据体检”:统计记录数、时间跨度、重复率、缺失区间、方向字段缺失比例、价格分布。这份体检结果应作为后续所有簇统计的口径说明,避免不同批次数据结论不可比。

把上述基础打牢后,逐笔成交提供“点”,快照提供“面”,时间戳提供“轴”,数据质量校验提供“可信度”。只有这四者对齐,后续的时间窗口分割与高频成交簇识别才有稳定的输入,簇的边界、强度与方向才具备可解释性和可复现性。