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 还是 Level 2?
我的建议是:
- 如果你做的是 T+0 日内交易,看 Level 1 就够了。因为你的持仓时间短,不需要看太深的深度。
- 如果你做的是做市商策略,必须用 Level 2。因为你要管理库存风险,需要知道每个价位的支撑和压力。
- 如果你做的是统计套利,建议用 Level 2。因为价差回归的信号,往往藏在深度里。
注意:Level 2 数据虽然信息丰富,但处理不当会带来延迟。我见过有人把 20 档深度全部解析,结果策略延迟增加了 5 毫秒。嗯,在高频交易里,5 毫秒足够让一个策略从盈利变成亏损。
所以,我的做法是:只解析你需要的档位。比如做市商策略,我一般只看前 5 档。因为再往后的深度,流动性太差,参考意义不大。
好了,关于 Level 1 和 Level 2 的区别,就聊到这里。记住一句话:数据粒度决定了你能看到什么,也决定了你能赚到什么。