2. Level-2 行情数据:逐笔成交、委托队列、资金流向指标
好,咱们接着聊。上一章我们讲了传统行情数据的局限,说白了就是「马后炮」。今天我要带你看看真正的「战场实况」——Level-2 行情数据。
我刚开始接触 Level-2 的时候,第一反应是「这玩意儿也太香了」。以前看盘就像看黑白电视,Level-2 直接给你升级到 4K 高清。它能让你看到每一笔交易的细节,而不是被「撮合」后的结果。
2.1 逐笔成交:还原每一笔交易的真相
普通行情只给你看「成交价」和「成交量」。但 Level-2 的逐笔成交,会告诉你每一笔交易是怎么发生的。
举个例子:
普通行情显示:「14:30,成交 100 手,价格 10.00 元」。
Level-2 告诉你:「14:30:01.234,主动卖出 50 手,价格 10.00 元;14:30:01.567,主动买入 30 手,价格 10.01 元;14:30:01.890,主动卖出 20 手,价格 10.00 元」。
你看,同样是 100 手成交,背后的资金意图完全不同。我曾在项目中遇到过一只股票,普通行情看是「放量上涨」,但逐笔成交显示全是「小单主动卖出,大单被动买入」——典型的对倒出货。嗯,这里要注意,逐笔成交的核心价值在于「方向」和「大小」。
- 成交方向:主动买入(红色) vs 主动卖出(绿色)
- 成交金额:单笔金额 > 20 万算大单,< 5 万算小单
- 成交时间戳:精确到毫秒,能看出「抢筹」还是「砸盘」
2.2 委托队列:看穿主力的「挂单陷阱」
这个功能我特别喜欢。普通行情只显示「买一、卖一」的挂单量,但 Level-2 能看到前 50 档的委托明细。
为什么会这样?因为主力经常用「托单」和「压单」来骗人。比如:
- 托单:买一挂 10000 手大单,让你觉得「跌不下去」,其实主力在偷偷卖出
- 压单:卖一挂 8000 手大单,让你觉得「涨不上去」,其实主力在悄悄吸筹
我建议你重点关注「委托队列的撤单速度」。如果一个大单挂了 3 秒就撤了,那基本是「假单」。真正想成交的单子,会一直挂着直到被吃掉。
我曾经用这个指标抓过一只妖股。当时卖一挂了 5000 手压单,但逐笔成交显示「每笔 100 手主动买入,连续吃掉压单」。这说明什么?说明主力在「扫货」。我跟着买了进去,当天涨停。
2.3 资金流向指标:大单净流入的「含金量」
很多软件都有「资金流向」这个功能。但我要告诉你,算法不同,结果天差地别。
常见的算法有两种:
| 算法类型 | 原理 | 缺点 |
|---|---|---|
| 传统算法 | 按成交金额大小划分(>20万算大单) | 容易把「拆单」的主力漏掉 |
| 逐笔算法 | 按逐笔成交的方向和大小计算 | 数据量大,计算复杂 |
我个人习惯用「逐笔算法」。因为传统算法有个大坑——主力可以把 100 万拆成 10 笔 10 万的小单,这样传统算法就识别不出来了。但逐笔算法能通过「时间间隔」和「价格连续性」判断出这是「伪小单」。
我曾经被「资金净流入」骗过一次。某股票显示「大单净流入 5000 万」,但逐笔成交显示「大单全是主动卖出,小单在接盘」。后来我才明白,那是主力用「对倒」制造的资金流入假象。所以,一定要结合逐笔成交看资金流向。
2.4 知识体系:Level-2 数据的三层结构
下面这张图,是我自己总结的 Level-2 数据使用框架。你想想看,这三层数据是层层递进的:
说白了,这三层数据就是「看穿主力」的三把钥匙。逐笔成交告诉你「发生了什么」,委托队列告诉你「正在发生什么」,资金流向告诉你「接下来可能发生什么」。
2.5 实战代码:用 Python 解析 Level-2 数据
光说不练假把式。下面是我常用的一个解析函数,专门用来提取「大单成交」和「散户跟风」的信号:
import pandas as pd
def parse_level2_data(df):
"""
解析 Level-2 逐笔成交数据
返回:大单买入/卖出统计,散户跟风指数
"""
# 定义大单阈值(单笔金额 > 20万)
large_threshold = 200000
# 标记大单
df['is_large'] = df['amount'] > large_threshold
# 按方向分组统计
large_buy = df[(df['is_large']) & (df['direction'] == 'buy')]['amount'].sum()
large_sell = df[(df['is_large']) & (df['direction'] == 'sell')]['amount'].sum()
# 散户跟风指数 = 小单买入占比 / 小单卖出占比
small_buy = df[(~df['is_large']) & (df['direction'] == 'buy')]['amount'].sum()
small_sell = df[(~df['is_large']) & (df['direction'] == 'sell')]['amount'].sum()
retail_index = small_buy / (small_sell + 1e-6) # 防止除零
return {
'large_net': large_buy - large_sell,
'retail_index': retail_index
}
当 large_net > 0 且 retail_index < 1 时,说明「主力在买,散户在卖」——这是比较好的跟庄时机。反过来,如果 large_net < 0 且 retail_index > 1,那就要小心了,主力可能在出货。
嗯,今天就先聊到这里。Level-2 的数据量很大,但核心就这三样。你先把逐笔成交和委托队列搞明白,资金流向自然就通了。
公众号:蓝海资料掘金营,微信 deep3321