逐笔成交解析:看懂主力资金的“底牌”
做短线交易,最怕什么?
怕你刚买进去,主力就跑了。怕你以为是大单拉升,结果是小单堆出来的假象。
逐笔成交数据,就是用来解决这个问题的。它把每一笔真实的成交记录摆在你面前,说白了,就是让你看到主力的“底牌”。
我个人习惯,每天开盘前先扫一遍昨日的逐笔成交,看看哪些票有异常的大单吃货。这比看什么K线指标都直接。
逐笔成交的数据结构
Level2行情里,逐笔成交和传统的“分时成交”不是一回事。分时成交是每3秒或6秒聚合一次,而逐笔成交是每一笔真实的委托成交。
它的核心字段,我列一下:
| 字段名 | 含义 | 说明 |
|---|---|---|
| 时间 | 成交时间 | 精确到毫秒,比如 09:30:01.250 |
| 价格 | 成交价格 | 这一笔实际成交价 |
| 数量 | 成交股数 | 注意是股,不是手 |
| 金额 | 成交金额 | 价格 × 数量 |
| 买卖方向 | 主动买/主动卖 | B表示主动买,S表示主动卖 |
| 成交编号 | 交易所唯一编号 | 用于去重和排序 |
嗯,这里要注意:有些行情软件会把“买卖方向”搞混。我遇到过一家数据商,把B和S标反了,害我回测亏了不少钱。所以拿到数据后,先手动验证几笔,确认方向正确。
主力资金识别逻辑
怎么从逐笔成交里识别主力?
核心逻辑就一句话:大单持续买入,小单持续卖出,就是主力在吸筹。
但这里有个坑:你不能只看单笔大小。有些主力会拆单,把100万股拆成1000笔小单,让你以为没有大资金进场。
我自己的做法是,看两个指标:
- 大单净买入量:当日所有大于某阈值的大单,主动买入减去主动卖出
- 大单占比:大单成交额 / 总成交额
举个例子:
# 伪代码示例
def identify_main_force(trades, threshold=500000):
"""
trades: 逐笔成交列表
threshold: 大单金额阈值,默认50万
"""
big_buy = 0
big_sell = 0
total_amount = 0
for trade in trades:
amount = trade['price'] * trade['volume']
total_amount += amount
if amount >= threshold:
if trade['direction'] == 'B':
big_buy += amount
else:
big_sell += amount
net_big = big_buy - big_sell
big_ratio = (big_buy + big_sell) / total_amount
return net_big, big_ratio
如果 net_big 为正且 big_ratio 超过30%,我基本可以判断有主力在干活。
大单与小单的划分标准
这个问题,其实没有统一答案。不同股票、不同价格区间,标准都不一样。
我一般用动态阈值:
- 按金额划分:20万以下算小单,20万-100万算中单,100万以上算大单
- 按股数划分:对于低价股(比如2块钱),10万股才算大单;对于高价股(比如200块),500股就算大单了
我个人习惯用金额,因为更直观。但要注意:
我曾经用固定阈值(比如50万)去分析一只科创板股票,结果发现全天没有一笔大单。后来一看,那股票单价300多块,50万也就1600股,根本不算大单。所以一定要根据股价动态调整。
这里我画了一张图,帮你理清整个逻辑:
如果你用Python做回测,建议把逐笔成交数据存成Parquet格式,比CSV快10倍以上。我一开始用CSV,回测一天的数据要跑5分钟,换成Parquet后,30秒搞定。
实战中的几个判断原则
光有数据还不够,你得会看。我总结了几条:
- 大单持续买入,股价不涨:大概率是主力在压盘吸筹,后面可能有行情
- 大单持续卖出,股价不跌:主力在出货,但有人接盘,小心诱多
- 突然出现一笔超大单:可能是机构调仓,也可能是乌龙指,别急着跟
- 小单密集成交,价格缓慢推升:散户行情,持续性差,别追高
你想想看,如果只看K线,你根本不知道这些细节。但有了逐笔成交,你就能看到每一笔资金的真实意图。
我记得有一次,一只股票突然拉升5%,分时图看着很漂亮。但我一查逐笔成交,发现全是小单在买,大单反而在卖。我当时就没追,结果下午直接跳水。这就是逐笔成交的价值。
• 逐笔成交是每一笔真实成交,不是聚合数据
• 主力识别看大单净买入和大单占比两个指标
• 大单小单划分要用动态阈值,不能一刀切
• 实战中要结合价格走势综合判断
好了,这一章的内容就这些。逐笔成交是短线交易里最基础也最重要的数据,你把它吃透了,后面讲盘口和委托队列的时候,会轻松很多。