L1与L2数据:Level 1数据(最优买卖价)与Level 2数据(深度委托)的区别与应用场景
做量化交易的朋友,一定绕不开订单簿数据。我刚开始接触这个领域时,也分不清L1和L2到底有啥本质区别。说白了,一个只看表面,一个能看透内里。
今天咱们就把这两个东西掰开揉碎了讲清楚。
什么是Level 1数据?
L1数据,就是最优买卖价。也叫「Top of Book」。
它只告诉你两件事:
- 当前最高的买入价(Bid Price)和对应的委托量
- 当前最低的卖出价(Ask Price)和对应的委托量
举个例子,某只股票现在的L1数据可能是这样:
| 类型 | 价格 | 数量 |
|---|---|---|
| 卖一(Ask) | 100.50 | 2,000股 |
| 买一(Bid) | 100.48 | 1,500股 |
就这么简单。买卖价差(Spread)就是100.50 - 100.48 = 0.02元。
我在项目中遇到过不少新手,只看L1数据就敢做高频策略。结果呢?一进去就被深度里的暗流给吞了。嗯,这里要注意——L1数据只是冰山一角。
什么是Level 2数据?
L2数据,也叫「深度委托」或「Full Order Book」。它展示的是整个订单簿的完整结构。
你想想看,除了最优的那一档,后面还有好几档的挂单。比如:
| 档位 | 卖价 | 卖量 | 买价 | 买量 |
|---|---|---|---|---|
| 1 | 100.50 | 2,000 | 100.48 | 1,500 |
| 2 | 100.51 | 3,500 | 100.47 | 2,800 |
| 3 | 100.52 | 1,200 | 100.46 | 4,000 |
| 4 | 100.53 | 5,000 | 100.45 | 1,000 |
| 5 | 100.54 | 2,100 | 100.44 | 3,200 |
看到没?L2数据把整个「价格-数量」分布都暴露出来了。我个人习惯把L2数据叫做「市场的X光片」——它能让你看到骨架。
核心区别:信息维度
两者的区别,本质上就是信息维度的差异。
- L1数据:只有1个维度——当前最优价
- L2数据:有2个维度——价格深度 + 分布结构
为什么会这样?因为L1只告诉你「现在谁在门口」,而L2告诉你「后面排了多少人,都带了多少钱」。
我曾经犯过一个错误:只靠L1的买卖价差来判断流动性。结果遇到一个股票,价差只有0.01元,看起来流动性极好。但一查L2,发现最优档后面全是空档,深度极差。幸好没真下单,不然一进去价格就滑到姥姥家了。
应用场景对比
不同的策略,对数据的需求完全不同。
| 场景 | 推荐数据 | 原因 |
|---|---|---|
| 趋势跟踪(分钟级) | L1即可 | 只需要价格变化方向,不需要深度细节 |
| 高频做市 | 必须L2 | 需要感知订单簿的微小变化,抢在别人前面 |
| 大单拆单(TWAP/VWAP) | L2 | 需要评估市场深度,避免冲击成本 |
| 套利策略 | L1为主 | 关注价差信号,深度不是核心 |
| 订单簿微观特征分析 | 必须L2 | 需要计算斜率、不平衡度、压力位等指标 |
我个人习惯是:做任何策略之前,先拉一份L2数据看看。哪怕最后只用L1做信号,也要先搞清楚市场的「底牌」长什么样。
L2数据能算出的微观特征
有了L2数据,我们能做的事情就多了。这里列几个我常用的指标:
- 订单簿斜率(Order Book Slope):衡量价格附近的挂单密度。斜率越大,支撑/阻力越强。
- 买卖不平衡度(Bid-Ask Imbalance):买盘总量 vs 卖盘总量。我习惯用这个做短期方向判断。
- 价格压力点(Price Pressure):某个价格区间内挂单量突然增大,往往是关键价位。
- 订单簿深度(Depth):前N档的总挂单量。衡量市场承接能力。
举个例子,计算买卖不平衡度的代码大概长这样:
def calculate_imbalance(bid_volumes, ask_volumes):
total_bid = sum(bid_volumes)
total_ask = sum(ask_volumes)
if total_bid + total_ask == 0:
return 0
return (total_bid - total_ask) / (total_bid + total_ask)
这个值在-1到1之间。正值表示买盘强,负值表示卖盘强。我在实盘中发现,当这个值超过0.6或低于-0.6时,价格往往会在短时间内发生突破。
核心观点:L1数据告诉你「发生了什么」,L2数据告诉你「为什么发生」以及「接下来可能发生什么」。
避坑指南
我曾经踩过的坑:
- 以为L2数据越多越好。其实超过10档之后,信息价值急剧下降,反而增加计算延迟。
- 忽略了L2数据的更新频率。有些交易所的L2快照是100ms一次,但L1是实时推送的。混用时要对齐时间戳。
- 直接用原始L2数据做信号,没有做归一化。不同股票、不同时间段的深度差异巨大,必须做标准化处理。
我的建议:
刚开始研究订单簿时,先拿L2数据画一张「价格-深度」分布图。用肉眼看看,哪些位置有「墙」,哪些位置是「真空区」。这个习惯我一直保留到现在,每次分析新标的都会先做这一步。
知识体系总览
下面这张图,是我自己整理的知识结构。它把L1和L2的关系、各自的应用场景、以及能衍生出的微观特征都串起来了。
这张图我建议你保存下来。每次做策略选型时,对着它问自己三个问题:我需要多深的数据?我的策略对延迟有多敏感?我有没有能力处理L2的实时流?
好了,关于L1和L2的区别与应用,就聊到这儿。记住一句话:L1让你看到价格,L2让你看到市场博弈的全貌。
公众号:蓝海数据掘金营,微信deep3321