Level 1 vs Level 2 数据:Top-of-Book 与 Depth-of-Book 的区别

做高频交易的朋友,应该都听过这两个词。但说实话,我刚入行那会儿,也搞不太清楚它们到底差在哪。

Level 1 数据,就是所谓的 Top-of-Book。它只告诉你当前市场上最好的买价和卖价,以及对应的挂单量。说白了,就是「谁出价最高想买,谁出价最低想卖」。

Level 2 数据,则是 Depth-of-Book。它把整个订单簿的深度都给你看——从第一档到第 N 档,每一档的价格和挂单量都清清楚楚。

你想想看,这两者的信息量差距有多大?

一、数据粒度的本质差异

数据粒度,说白了就是「你看到的细节有多细」。

Level 1 就像看一张照片的缩略图。你知道大概的颜色分布,但看不清细节。Level 2 则是原图放大,每个像素点都暴露在你面前。

我举个例子。假设某只股票的订单簿是这样的:

档位 买价 买量 卖价 卖量
1 100.00 500 100.01 300
2 99.99 2000 100.02 1500
3 99.98 800 100.03 100
4 99.97 50 100.04 4000

Level 1 数据只告诉你:买价 100.00,买量 500;卖价 100.01,卖量 300。

Level 2 数据则告诉你全部 4 档的信息。

看到区别了吗?Level 1 让你觉得市场很平静,买卖力量差不多。但 Level 2 告诉你,卖盘在 100.04 处有 4000 手的巨量压单,而买盘在 99.99 处有 2000 手的支撑。这完全是两个世界。

核心观点:Level 1 数据适合做趋势跟踪和简单的盘口分析。Level 2 数据则能让你看到市场的「骨架」——支撑位、阻力位、大单埋伏、冰山订单,这些在 Level 1 里都是盲区。

二、为什么数据粒度如此重要?

我个人习惯,做高频策略时只用 Level 2 数据。为什么?因为市场微观结构的变化,往往藏在深度里。

举个例子。你看到 Level 1 的买价突然从 100.00 跳到 100.01,觉得是买方力量增强了对吧?

但如果你看 Level 2,可能会发现:原来 100.00 处的 500 手买盘被撤单了,然后有人在 100.01 挂了 10 手。这根本不是买方增强,而是有人在「钓鱼」——用撤单制造假象,引诱你追高。

我在项目中遇到过类似的情况。有一次,一个策略根据 Level 1 信号做市,结果连续亏损。后来我换成 Level 2 数据,才发现那些「突破」信号背后,都是大单在深度里做手脚。

避坑指南:我曾经以为 Level 1 数据够用了,结果被市场狠狠教育了一顿。如果你做的是高频策略,尤其是做市商策略,Level 2 数据不是可选项,是必需品。

三、数据压缩的挑战

好了,现在问题来了。Level 2 数据量有多大?

假设一个订单簿有 20 档深度,每档包含价格和数量。每秒更新 100 次。一天交易 6.5 小时。

算一下:20 档 × 2 个字段 × 8 字节 × 100 次/秒 × 23400 秒/天 ≈ 748 MB/天。

这还只是一只股票。如果你同时监控 1000 只股票呢?每天 748 GB。

Level 1 数据呢?同样条件下,每天只有 37 MB。

差了 20 倍。

所以,Level 2 数据的压缩,是个硬骨头。你不能简单地用通用压缩算法,比如 gzip,因为那样压缩率低,而且解压速度慢。

你需要针对订单簿的结构做定制压缩。比如:

  • 价格差分编码:相邻档位的价格变化很小,用差分代替绝对值
  • 数量增量编码:同一档位的挂单量变化,用增量代替全量
  • 稀疏表示:很多档位可能没有变化,只记录变化的部分

我建议,在做 Level 2 数据压缩时,先做一步「去冗余」。因为订单簿的更新,很多时候只有一两档发生了变化。你没必要每次都把整个深度传一遍。

四、知识体系结构图

下面这张图,是我自己梳理的 Level 1 vs Level 2 的核心逻辑。你看一眼就明白了。

Level 1 vs Level 2 数据核心逻辑 Level 1 (Top-of-Book) 只包含最优买卖价和量 数据量小:~37 MB/天/只 适合:趋势跟踪、简单盘口 缺点:看不到市场深度 Level 2 (Depth-of-Book) 包含多档买卖价和量 数据量大:~748 MB/天/只 适合:高频做市、微观结构分析 缺点:数据量大,需压缩 粒度差异 数据压缩挑战 Level 2 数据量是 Level 1 的 20 倍 需要定制压缩:差分编码、增量编码、稀疏表示 Level 1 应用 散户、低频策略 Level 2 应用 机构、高频策略 数据压缩 存储、传输、回放

五、实际应用中的选择

那么问题来了:你到底该用 Level 1 还是 Level 2?

我的建议是:

  • 如果你做的是 T+0 日内交易,看 Level 1 就够了。因为你的持仓时间短,不需要看太深的深度。
  • 如果你做的是做市商策略,必须用 Level 2。因为你要管理库存风险,需要知道每个价位的支撑和压力。
  • 如果你做的是统计套利,建议用 Level 2。因为价差回归的信号,往往藏在深度里。

注意:Level 2 数据虽然信息丰富,但处理不当会带来延迟。我见过有人把 20 档深度全部解析,结果策略延迟增加了 5 毫秒。嗯,在高频交易里,5 毫秒足够让一个策略从盈利变成亏损。

所以,我的做法是:只解析你需要的档位。比如做市商策略,我一般只看前 5 档。因为再往后的深度,流动性太差,参考意义不大。

好了,关于 Level 1 和 Level 2 的区别,就聊到这里。记住一句话:数据粒度决定了你能看到什么,也决定了你能赚到什么。

专注资料整理