一、盘口数据基础:Level-2行情数据介绍

做量化交易这些年,我接触过不少行情数据。说实话,最让我头疼的,就是盘口数据的清洗。

为什么?因为盘口数据太「脏」了。你想想看,交易所每秒都在推送海量数据,网络延迟、撮合引擎的抖动、甚至交易所自身的bug,都会让数据出现各种异常。

但盘口数据又是做市策略的命根子。没有干净的盘口数据,你的策略就是瞎子摸象。

所以,这一章我们先打好基础。把Level-2行情、Tick与Snapshot的区别、以及五档十档的数据结构,彻底搞清楚。

1.1 什么是Level-2行情?

Level-2行情,也叫「深度行情」。它比普通行情(Level-1)多出不少信息。

我简单列一下区别:

对比项 Level-1(普通行情) Level-2(深度行情)
快照频率 约3秒一次 约3秒一次(但包含更多信息)
委托队列 仅最优买卖各一档 最优买卖各十档(甚至全量)
逐笔成交 有(每笔成交的详细信息)
委托明细 有(前50档委托的逐笔明细)

说白了,Level-2就是给了你一个「显微镜」。你能看到市场更深处的博弈。

我个人习惯,做做市策略时,至少要用Level-2数据。Level-1的数据太粗糙,很多微观结构特征根本算不出来。

1.2 Tick数据 vs Snapshot数据

这里有个常见的坑,我刚开始做的时候也踩过。

Tick数据,是每一笔成交的记录。它告诉你:什么时间、什么价格、成交了多少股、是主动买还是主动卖。

Snapshot数据,是某个时间点的「快照」。它告诉你:此时此刻,买一到买十各有多少挂单,卖一到卖十各有多少挂单。

两者的区别,我用一个比喻来解释:

  • Tick数据就像「流水账」——每一笔交易都记下来。
  • Snapshot数据就像「照片」——每隔几秒拍一张市场的状态。

嗯,这里要注意:Tick数据是事件驱动的,有成交才会产生。Snapshot数据是时间驱动的,每隔固定时间(比如3秒)推送一次。

我在项目中遇到过一个问题:有人把Tick数据当成Snapshot来用,结果算出来的买卖压力指标完全不对。为什么?因为Tick数据只包含成交的部分,而Snapshot包含了所有挂单。两者反映的信息维度完全不同。

1.3 盘口五档与十档数据结构

国内A股市场,Level-2行情提供的是十档盘口。但很多做市策略,其实只用到五档就够了。

为什么?因为越往后的档位,挂单量越稀疏,噪声也越大。我个人习惯,核心特征只用前五档,后五档作为辅助参考。

来看一个典型的十档数据结构:

{
  "timestamp": "2024-01-15 09:30:00.123",
  "symbol": "600519",
  "bid_prices": [1850.00, 1849.80, 1849.60, 1849.40, 1849.20, 1849.00, 1848.80, 1848.60, 1848.40, 1848.20],
  "bid_volumes": [100, 200, 150, 80, 60, 40, 30, 20, 10, 5],
  "ask_prices": [1850.20, 1850.40, 1850.60, 1850.80, 1851.00, 1851.20, 1851.40, 1851.60, 1851.80, 1852.00],
  "ask_volumes": [80, 120, 100, 70, 50, 30, 20, 15, 10, 5]
}

这个结构看起来简单,但清洗的时候要注意几个点:

⚠️ 避坑指南:

我曾经因为没处理「零挂单」的问题,导致策略在开盘瞬间疯狂报单。有些档位的挂单量可能是0,但价格字段不能为空。清洗时一定要做填充或剔除。

另外,价格和数量要严格对齐。bid_prices[0]对应bid_volumes[0],这是买一的价格和数量。千万别搞反了。

1.4 核心知识体系

我把这一章的核心逻辑画成了图,方便你理解:

盘口数据基础:知识体系 Level-2 行情数据 Tick 数据(逐笔成交) Snapshot 数据(快照) 五档盘口(核心特征) 十档盘口(辅助参考) 买价/卖价 买量/卖量 时间戳 证券代码

💡 核心要点:

  • Level-2行情是做市策略的「原材料」,质量决定策略上限
  • Tick数据看「成交行为」,Snapshot数据看「挂单意愿」
  • 五档盘口用于核心特征,十档盘口用于辅助判断
  • 数据清洗时,重点关注零挂单、价格异常、时间戳对齐

🔧 实战小技巧:

我建议你在拿到原始数据后,先做一次「完整性检查」。比如,检查每个时间戳下,买一到买十的价格是否严格递减,卖一到卖十的价格是否严格递增。如果出现价格倒挂,那数据大概率有问题。

好了,这一章的内容就到这里。盘口数据的基础,说白了就是搞清楚「数据从哪里来、长什么样、怎么用」。下一章我们会深入数据清洗的具体方法,到时候我会分享一些我踩过的坑和总结的技巧。

专注资料整理