一、高频数据概述

1.1 什么是高频行情数据

高频行情数据,说白了就是市场在极短时间内产生的交易数据。我经常跟团队新人说,你打开股票软件看到的那个跳动价格,背后就是高频数据在流动。

具体来说,高频行情数据包括:

  • 逐笔成交数据——每一笔真实的买卖记录
  • 逐笔委托数据——挂在订单簿上的买单卖单
  • 快照数据——每隔几毫秒拍一张市场状态照片
  • Level 2 数据——比普通行情更深的十档盘口

举个例子,A股市场的逐笔成交数据,每秒能产生几千甚至上万条记录。每条记录包含价格、数量、方向、时间戳,精确到微秒级别。

核心定义:高频行情数据是指频率在毫秒级甚至微秒级,包含完整市场微观结构的交易数据集合。

1.2 高频数据的特点

我做了这么多年高频数据处理,总结下来就三个关键词:高频率、大容量、低延迟。咱们一个一个说。

高频率

普通行情可能每秒更新一次,高频行情呢?每秒更新上千次。你想想看,光是沪深两市一天的逐笔数据,就能达到几亿条。

我记得2015年那会儿,市场波动大的时候,我们系统的数据吞吐量直接飙到每秒50万笔。嗯,那会儿真是考验架构的时候。

大容量

高频数据有多占空间?我算过一笔账:

数据类型 单日数据量 月度数据量
逐笔成交 约 50-80 GB 约 1.5-2.4 TB
Level 2 快照 约 20-30 GB 约 600-900 GB
逐笔委托 约 30-50 GB 约 900-1500 GB

这只是原始数据。加上索引、备份、中间处理结果,存储成本相当可观。

低延迟

高频交易对延迟极其敏感。我曾经参与过一个项目,客户要求从行情到达系统到策略发出信号,延迟不能超过10微秒。

10微秒是什么概念?光在光纤里走1公里就要3.3微秒。所以机房位置、网络拓扑、硬件选型,每一个细节都至关重要。

避坑提醒:我曾经因为忽略了操作系统时钟精度,导致时间戳误差达到毫秒级,回测结果完全失真。后来改用DPDK和硬件时间戳才解决。

1.3 高频数据在量化交易中的应用

高频数据到底能用来干什么?我总结了几类典型场景:

订单簿重建

通过逐笔委托数据,我们可以精确重建任意时刻的订单簿状态。这比快照数据更准确,因为快照之间有间隔,中间可能发生了很多变化。

# 伪代码:订单簿重建逻辑
class OrderBook:
    def __init__(self):
        self.bids = {}  # 买单
        self.asks = {}  # 卖单
    
    def apply_tick(self, tick):
        if tick.type == 'add':
            # 新增订单
            self.orders[tick.price] = tick.quantity
        elif tick.type == 'cancel':
            # 撤销订单
            del self.orders[tick.price]

微观结构分析

高频数据能揭示市场的微观行为。比如:

  • 买卖价差分析——衡量市场流动性
  • 订单流不平衡——预测短期价格方向
  • 大单拆单识别——发现机构交易痕迹

我个人习惯用逐笔数据计算订单流毒性(Order Flow Toxicity),这个指标在震荡行情中特别有效。

策略回测与执行优化

用高频数据做回测,能更真实地模拟交易环境。普通日线回测会忽略滑点和市场冲击,高频回测则能精确到每一笔成交。

经验之谈:我建议做高频策略回测时,一定要考虑数据质量。脏数据会导致回测结果虚高,我曾经吃过这个亏,后来花了两周时间清洗数据。

1.4 知识体系总览

下面这张图是我梳理的高频行情数据知识体系,涵盖了从数据采集到策略应用的完整链路:

高频行情数据知识体系 数据来源 交易所接口 第三方数据商 逐笔成交数据 逐笔委托数据 快照数据 数据清洗 订单簿重建 特征提取 策略回测 实时交易 风险监控

从这张图可以看出,高频行情数据的处理是一个完整的链路。每个环节都有坑,也都有优化空间。后面的章节我会逐一深入讲解。

本章小结:高频行情数据是量化交易的基石。理解它的特点——高频率、大容量、低延迟,是做好后续所有工作的前提。我建议初学者先从逐笔成交数据入手,逐步扩展到订单簿和快照数据。


公众号:蓝海数据掘金营,微信deep3321