第4章:Level2数据解密:逐笔成交数据详解
逐笔成交,说白了就是每一笔真实交易的「现场回放」。
我记得刚入行时,看普通行情只能看到「每分钟成交了多少手」,就像看一场足球赛只告诉你「第15分钟进了一个球」——你根本不知道是谁传的、怎么进的。逐笔成交就不一样了,它把每一笔交易的细节都摆在你面前。
4.1 逐笔成交的字段含义
先看一个典型的逐笔成交数据长什么样:
时间戳 价格 数量 方向 成交额
09:30:01.123 10.25 5000 买 51250
09:30:01.456 10.24 3000 卖 30720
09:30:02.001 10.25 10000 买 102500
每个字段都有它的脾气,我一个个说。
成交时间
精确到毫秒甚至微秒。为什么这么细?因为主力的大单往往在几毫秒内完成拆单。你想想看,如果只看分钟级数据,根本抓不住这种节奏。
价格
就是这笔交易的实际成交价。注意,它不一定等于当时的买一或卖一价。我遇到过很多新手问:「为什么成交价和盘口价格对不上?」嗯,因为撮合机制里,可能有多笔挂单同时成交,价格会有细微波动。
数量
以手为单位。1手=100股。这里有个坑:有些软件显示的是「股数」,有些显示「手数」。我建议你统一用手数,不然算金额时容易多三个零。
买卖方向
这是最关键的字段。它告诉你这笔交易是「主动买入」还是「主动卖出」。
- 买:买方主动吃掉了卖方的挂单。说明买方更着急。
- 卖:卖方主动砸给了买方的挂单。说明卖方更着急。
核心逻辑:方向不是看谁先挂单,而是看谁先动手。主动的一方,才是真正有意图的一方。
4.2 如何从逐笔成交中还原主力动向?
主力最怕什么?怕被散户跟车。所以他们通常会把自己的大单拆成很多小单,混在普通交易里。但逐笔成交数据,就是他们的「照妖镜」。
我个人习惯用三个维度来识别主力:
- 单笔金额异常:比如一只平时每笔成交只有几万块的股票,突然出现一笔50万以上的单子。嗯,大概率是主力。
- 连续同向交易:如果连续10笔都是主动买入,而且价格在往上推,那基本可以确定有人在吸筹。
- 大单拆单痕迹:比如在1秒内出现多笔相同价格、相同方向的交易,总金额加起来很大。这就是典型的拆单行为。
避坑指南:我曾经以为所有大单都是主力,后来发现有些量化基金也会这样交易。所以别只看单笔大小,要结合盘口变化一起看。
4.3 实战:计算主力买入/卖出金额
好了,理论说完了,咱们直接上代码。下面这个Python函数,可以从逐笔成交数据中提取主力资金流向。
def calculate_main_fund_flow(trades, threshold=500000):
"""
计算主力买入/卖出金额
trades: 逐笔成交DataFrame,包含price, volume, direction字段
threshold: 单笔金额阈值,默认50万
"""
# 计算每笔成交金额
trades['amount'] = trades['price'] * trades['volume'] * 100 # 转成元
# 筛选大单
big_trades = trades[trades['amount'] >= threshold]
# 分别统计买入和卖出
buy_amount = big_trades[big_trades['direction'] == '买']['amount'].sum()
sell_amount = big_trades[big_trades['direction'] == '卖']['amount'].sum()
# 净流入
net_flow = buy_amount - sell_amount
return {
'主力买入': buy_amount,
'主力卖出': sell_amount,
'主力净流入': net_flow
}
这个函数的核心逻辑很简单:先找出金额超过阈值的大单,然后按方向分组求和。
但这里有个细节要注意——阈值怎么设?
我一般会根据个股的日均成交额来动态调整。比如一只小盘股,日均成交才2000万,那50万就算大单了。但如果是茅台,500万可能都算小单。所以别死板地用固定值。
重要提醒:逐笔成交数据虽然精确,但也不是万能的。有些主力会用「对倒」手法——自己买自己卖,制造虚假的成交活跃度。所以一定要结合其他指标一起看。
4.4 本章知识体系
下面这张图,是我自己总结的逐笔成交分析框架。你可以把它当成一个检查清单:
这张图把本章的核心内容串起来了。从左到右,分别是「看懂字段」、「识别主力」、「动手计算」。你每次分析逐笔成交时,都可以按这个流程走一遍。
最后说一句:逐笔成交数据是Level2里最有价值的数据之一,但也是最容易被误用的。别一看到大单就激动,先问问自己——这笔交易的方向是什么?它出现在什么位置?有没有其他数据佐证?
嗯,把这些想清楚了,你才算真正「看懂」了逐笔成交。