Level 1 vs Level 2 数据:逐笔成交、买卖十档、逐笔委托的区别与实战价值
做量化交易这些年,我见过太多人一上来就盯着K线看。说实话,K线只是结果,不是原因。真正决定价格走向的,是订单簿里那些看不见的博弈。今天我们就来聊聊数据层面的基本功——Level 1和Level 2到底差在哪。
一、先搞清楚数据层级
先问个问题:你打开交易软件,看到的那一列买一卖一价格,是什么数据?
嗯,那是Level 1数据。说白了就是“最优报价快照”。它只告诉你当前市场上最好的买单和卖单是什么价格、有多少量。但你看不到更深层的挂单,也看不到这些单子是怎么来的。
Level 2就不一样了。它包含了买卖十档的挂单信息,甚至还有逐笔成交和逐笔委托。我个人习惯把Level 2叫做“透视镜”——它能让你看到市场更深处的暗流涌动。
核心区别一句话总结:Level 1告诉你“现在发生了什么”,Level 2告诉你“正在发生什么以及为什么”。
二、逐笔成交 vs 买卖十档 vs 逐笔委托
这三个概念经常被混淆。我刚开始做高频策略时也踩过坑,这里帮你理清楚。
1. 逐笔成交(Tick Trade)
逐笔成交,就是每一笔实际成交的记录。它包含:成交时间、成交价格、成交量、成交方向(主动买还是主动卖)。
举个例子:
时间:09:30:01.123
价格:10.25
数量:500
方向:主动买(Bid触发)
这条记录意味着:在09:30:01.123这个时刻,有人以10.25的价格主动买入500股,吃掉了卖一上的挂单。
实战价值在哪?
- 判断资金流向:主动买多还是主动卖多
- 识别大单异动:突然出现的大额成交往往预示行情启动
- 计算成交速度:单位时间内的成交笔数反映市场活跃度
我的经验:做日内策略时,我习惯把逐笔成交按1秒聚合,计算“主动买成交量 - 主动卖成交量”的差值。这个差值如果连续3秒为正且持续放大,基本就是主力在吃货。我曾经靠这个信号抓过不少短线机会。
2. 买卖十档(Order Book Depth)
买卖十档就是订单簿的深度快照。它展示了从买一到买十、卖一到卖十的价格和挂单量。
比如:
卖五:10.30 2000
卖四:10.28 1500
卖三:10.27 1000
卖二:10.26 800
卖一:10.25 500
-------------------
买一:10.24 600
买二:10.23 900
买三:10.22 1200
买四:10.21 800
买五:10.20 1000
这组数据能告诉你什么?
- 买卖力量对比:买一+买二 vs 卖一+卖二,谁更厚实
- 价格支撑/阻力位:大单密集区就是关键价位
- 挂单变化速度:撤单、加单的频率反映主力意图
注意:买卖十档是快照数据,不是流数据。也就是说,你看到的是某一瞬间的静态画面。如果只看快照,很容易被假象迷惑。比如主力挂个大单在买一,下一秒就撤了——这叫“虚挂”,专门骗散户的。
3. 逐笔委托(Order Flow)
逐笔委托是Level 2里最细粒度的数据。它记录了每一笔订单的提交、撤单、成交情况。包括:委托时间、委托价格、委托数量、委托方向、委托类型(限价单/市价单)、订单编号等。
举个例子:
时间:09:30:01.000
价格:10.25
数量:1000
方向:卖
类型:限价单
状态:新增
过了一秒:
时间:09:30:02.000
价格:10.25
数量:1000
方向:卖
类型:限价单
状态:撤单
看到了吗?这个卖单挂了1秒就撤了。如果你只看买卖十档的快照,根本发现不了这个动作。但逐笔委托能让你看到——有人在试探市场。
实战价值:
- 识别虚假挂单:挂单后快速撤单,大概率是诱多或诱空
- 捕捉主力动向:大额委托的提交和撤单节奏
- 计算订单存活时间:挂单多久被吃掉,反映市场承接力
三、三种数据的对比表格
| 维度 | 逐笔成交 | 买卖十档 | 逐笔委托 |
|---|---|---|---|
| 数据粒度 | 每笔成交 | 快照(通常3秒/次) | 每笔订单 |
| 包含信息 | 价格、量、方向 | 10档挂单价格和量 | 委托、撤单、成交全记录 |
| 数据量 | 中等 | 小 | 大(高频场景下每天几GB) |
| 延迟 | 实时 | 有间隔 | 实时 |
| 主要用途 | 资金流向、异动检测 | 支撑阻力、深度分析 | 订单流分析、主力行为 |
| 数据获取难度 | 容易(大部分券商提供) | 中等(需Level 2权限) | 难(需交易所直连或专业数据商) |
四、实战中怎么用?
光知道区别还不够,关键是怎么组合使用。我分享一个自己常用的分析框架。
场景一:判断真假突破
价格突破关键价位时,很多人会追进去。但你怎么知道这是真突破还是假突破?
我的做法:
- 看逐笔成交:突破瞬间是否有大单主动买入?如果只是小单推上去,大概率是假的。
- 看买卖十档:突破后,卖档是否迅速加单?如果卖一被吃掉后,卖二、卖三立刻出现更大的单子,说明上方抛压很重。
- 看逐笔委托:有没有人在突破前偷偷撤单?如果卖一的大单在突破前几秒撤了,那这个突破很可能是主力故意制造的陷阱。
我曾经踩过的坑:有一次看到价格突破前高,逐笔成交显示连续大单买入,我直接追了进去。结果刚成交,价格就掉头向下。后来复盘才发现,那些大单买入的同时,卖二到卖五的挂单量在快速增加——有人在一边买一边卖,对倒出货。从那以后,我每次突破都会同时看三个数据源,缺一不可。
场景二:捕捉主力吸筹
主力吸筹时通常很隐蔽,但Level 2数据能暴露痕迹。
几个典型特征:
- 逐笔委托中频繁出现“小单买入、大单卖出”的假象(实际是拆单买入)
- 买卖十档中,买档的挂单量缓慢增加,但价格不涨
- 逐笔成交中,主动买成交量大于主动卖,但价格横盘
嗯,这些信号单独看都不明显,但组合起来就很有说服力。
五、数据获取与处理建议
如果你刚开始接触Level 2数据,我建议从买卖十档入手。数据量适中,分析逻辑直观。等熟悉了再上逐笔委托。
代码层面,处理逐笔委托时要注意:
# 伪代码示例:逐笔委托数据清洗
def clean_order_flow(df):
# 去掉重复的订单编号
df = df.drop_duplicates(subset=['order_id'])
# 按时间排序
df = df.sort_values('timestamp')
# 标记撤单
df['is_cancel'] = df['status'] == 'cancel'
# 计算订单存活时间
df['survival_time'] = df.groupby('order_id')['timestamp'].diff()
return df
小技巧:处理逐笔委托时,一定要先做去重。有些数据源会重复推送同一笔订单,不处理的话统计结果会偏差很大。我刚开始就吃过这个亏,算出来的撤单率高达30%,后来发现是数据重复了。
六、知识体系总览
下面这张图帮你理清本章的核心逻辑:
这张图把Level 1和Level 2的关系、以及Level 2内部的三个子数据源都串起来了。你想想看,如果只看Level 1,你只能看到冰山一角。而Level 2能让你看到水面下的暗流。
好了,这一章的内容就到这里。数据是量化交易的基础,把Level 1和Level 2的区别搞清楚,后面的微观结构分析才能站得住脚。
公众号:蓝海资料掘金营,微信deep3321