高频行情数据基础:Tick数据、Order Book数据、Level2数据的结构与含义
在高频交易(HFT)与量化研究中,行情数据是驱动策略决策与A/B测试评估的原始燃料。本章将系统解析三种最核心的高频行情数据类型:Tick数据、Order Book(订单簿)数据以及Level2(二级行情)数据。理解它们的结构、字段含义与生成逻辑,是后续进行行情数据A/B测试效果评估的前提。
2.1 Tick数据:逐笔成交的原子记录
Tick数据记录了每一笔实际发生的交易,是市场微观结构的最小颗粒。每条Tick代表一次撮合成功的交易事件。
2.1.1 Tick数据的核心字段
| 字段名称 | 类型 | 含义说明 |
|---|---|---|
| Timestamp | datetime | 交易所撮合时间戳,精度通常为毫秒或微秒 |
| Symbol | string | 交易标的代码(如 "BTCUSDT") |
| Price | float | 本次成交价格 |
| Volume | float | 本次成交数量(股、张或币) |
| Side | char | 主动成交方向:'B'(Buy,买方主动吃单)或 'S'(Sell,卖方主动吃单) |
| TradeID | string | 交易所为该笔成交分配的唯一标识 |
高频应用提示: Tick数据中的 Side 字段是判断买卖压力的关键。在A/B测试中,若策略基于Tick数据生成信号,需确保回测与实盘使用相同的时间戳对齐逻辑,避免因撮合延迟造成评估偏差。
2.1.2 Tick数据示例(JSON格式)
{
"symbol": "AAPL",
"trade_id": "1234567890",
"price": 175.32,
"volume": 100,
"side": "B",
"timestamp": "2025-03-21 09:30:00.123456"
}
2.2 Order Book数据:市场深度与挂单结构
Order Book(订单簿)反映了当前市场上所有未成交的限价订单,按价格从高到低(卖盘)和从低到高(买盘)排列。它是衡量市场流动性和潜在价格冲击的核心数据源。
2.2.1 Order Book的层级结构
一个标准的Order Book由Bids(买方队列)和Asks(卖方队列)组成。每个价格水平称为一个Level,包含价格和该价格上的总挂单量。
| 层级 | Bids(买盘) | Asks(卖盘) |
|---|---|---|
| Level 1 | 最高买价 (Best Bid) & 对应量 | 最低卖价 (Best Ask) & 对应量 |
| Level 2 | 次高买价 & 对应量 | 次低卖价 & 对应量 |
| Level N | 第N高买价 & 对应量 | 第N低卖价 & 对应量 |
关键指标: 买卖价差(Bid-Ask Spread)= Best Ask - Best Bid。价差越小,流动性越好,交易成本越低。在A/B测试中,价差的变化是评估策略对市场冲击影响的重要指标。
2.3 Level2数据:增量快照与深度更新
Level2数据(又称市场深度数据)是Order Book的完整或增量快照。与仅包含最优买卖价的Level1数据不同,Level2提供了多个价格档位的挂单信息,通常包含前10、20或50个Level。
2.3.1 Level2数据的两种常见形式
- 全量快照(Snapshot): 每隔固定时间(如100ms)发送一次完整的Order Book状态。数据量大,但易于处理。
- 增量更新(Incremental Update): 仅发送发生变化的订单事件(新增、取消、成交)。数据量小,延迟低,但需要维护本地Order Book副本。
2.3.2 Level2增量更新的核心事件
| 事件类型 | 字段 | 含义 |
|---|---|---|
| Add | Side, Price, Volume, OrderID | 新限价单进入队列 |
| Cancel | Side, Price, OrderID | 已有订单被撤销(部分或全部) |
| Execute | Side, Price, Volume, OrderID | 订单被成交(部分或全部) |
| Replace | OldOrderID, NewOrderID, NewPrice, NewVolume | 订单被修改(价格或数量变更) |
2.4 三种数据的关系与对比
下图展示了Tick数据、Order Book数据与Level2数据在交易生命周期中的关系:Tick是成交结果,Order Book是挂单状态,Level2是Order Book的深度快照。
2.5 数据在A/B测试中的关键作用
在《高频行情数据A/B测试效果评估》课程中,这三种数据各自承担不同的评估角色:
- Tick数据:用于验证策略的成交价格是否与市场实际成交一致,评估滑点与成交率。
- Order Book数据:用于模拟策略挂单的排队位置,评估订单被成交的概率与等待时间。
- Level2数据:用于构建更真实的限价单模拟器,评估策略对市场深度的消耗与价格冲击。
常见陷阱: 在A/B测试中,如果仅使用Tick数据而忽略Order Book数据,将无法准确评估限价单策略的“未成交风险”。务必根据策略类型(市价单 vs 限价单)选择合适的数据层级进行回测与评估。
2.6 数据精度与时间同步
高频行情数据的价值高度依赖时间戳精度。不同交易所提供的时间戳精度差异巨大,从毫秒到纳秒不等。在A/B测试中,必须确保实验组与对照组使用同一时间源对齐的数据,否则会引入时序偏差。
| 时间戳精度 | 典型场景 | A/B测试风险 |
|---|---|---|
| 秒级 | 传统低频数据 | 无法用于高频策略评估 |
| 毫秒级 | 大部分数字货币/期货交易所 | 需注意网络延迟导致的错位 |
| 微秒/纳秒级 | NASDAQ、NYSE等顶级交易所 | 对硬件时钟同步要求极高 |