2. 主力资金识别:大单与小单的划分标准、主力净流入/流出计算、资金流强度指标
大家好,我是老李。今天咱们聊聊主力资金识别。说实话,这是很多交易者最关心的话题,也是最容易被误导的地方。我见过太多人盯着「主力净流入」几个字就冲进去,结果被套得死死的。嗯,这里面的门道,咱们得掰扯清楚。
2.1 大单与小单的划分标准
先问个问题:多大算大单?
你可能觉得,100万算大单吧?但放在茅台和放在ST股里,完全是两码事。我个人习惯用「相对阈值法」,而不是固定金额。
核心原则:大单的判定标准,应该与个股的日均成交额、流通市值挂钩。
具体怎么划分?我一般用以下三个维度:
- 金额阈值法:单笔成交金额超过该股近20日平均单笔成交金额的3倍以上,视为大单。
- 手数阈值法:对于低价股(比如5元以下),单笔超过500手算大单;对于高价股(比如100元以上),单笔超过10手就算大单。
- 比例阈值法:单笔成交量占该股流通股本的万分之一以上,视为大单。
我在项目中遇到过一个问题:用固定金额划分,结果在科创板股票上完全失效。那些几百块的股票,一笔50万的单子可能只是散户的正常操作。所以后来我改用「动态阈值」,效果好了很多。
避坑指南:我曾经用「单笔成交金额>100万」作为大单标准,结果在贵州茅台上一笔100万的单子连前100名都排不上。后来我改成「单笔成交金额 > 该股日均成交额的0.1%」,这才靠谱。
2.2 主力净流入/流出计算
主力净流入,说白了就是「主动买入的大单金额」减去「主动卖出的大单金额」。但这里有个坑——你得先判断这笔交易是主动买还是主动卖。
判断标准很简单:
- 主动买入:以卖一价或更高价格成交的买单
- 主动卖出:以买一价或更低价格成交的卖单
然后,我们只统计大单部分的主动买卖差额:
主力净流入 = 大单主动买入额 - 大单主动卖出额
如果结果是正数,说明主力在净买入;负数则说明主力在净卖出。
但这里有个问题——很多行情软件把「特大单」和「大单」分开统计。我个人习惯把两者合并,统称为「主力资金」。你想想看,一个500万的单子和一个200万的单子,本质上都是机构行为,没必要分那么细。
注意:主力净流入≠股价一定上涨。我见过很多次主力净流入几个亿,结果股价跌停的。为什么?因为主力可能在对倒,或者用多个账户拆单买入。所以,别只看净流入数值,要看趋势和持续性。
2.3 资金流强度指标
光看净流入还不够,你得知道这个流入的「力度」有多大。我常用的指标有三个:
2.3.1 资金流强度(MFI)
MFI = (主力净流入额 / 当日成交额) × 100%
这个指标反映的是主力资金在当日交易中的参与度。我个人习惯这样看:
- MFI > 20%:主力强势介入,值得关注
- MFI 在 10%~20%:正常主力活动
- MFI < 5%:主力基本没参与,可能是散户行情
2.3.2 大单成交占比
大单成交占比 = 大单成交总额 / 当日总成交额 × 100%
这个指标告诉你,今天的交易中有多少是「大资金」在玩。如果这个比例突然从20%飙升到50%,说明有大资金进场了。
2.3.3 资金流持续性
这个是我自己加的一个指标。连续3天以上主力净流入,且每天净流入金额递增,这才是真正的「主力建仓」信号。单日的净流入,很可能是假动作。
实战经验:我一般把这三个指标结合起来看。比如某天MFI > 20%,大单成交占比 > 40%,且连续3天净流入——这种票,我会重点跟踪。但如果只有MFI高,其他两个指标一般,我会再观察一下。
2.4 知识体系框架
下面这张图,是我自己整理的主力资金识别逻辑。你看一遍,基本就能明白整个流程了。
2.5 实战代码示例
下面是我自己写的一个简化版主力资金识别函数。你拿去改改就能用。
import pandas as pd
import numpy as np
def identify_major_funds(df, threshold_multiplier=3):
"""
识别主力资金(大单)并计算净流入
参数:
df: DataFrame,包含列 ['time', 'price', 'volume', 'amount', 'buy_sell_flag']
buy_sell_flag: 'B'表示主动买入,'S'表示主动卖出
threshold_multiplier: 大单判定倍数,默认3倍平均单笔金额
返回:
DataFrame: 包含主力净流入、MFI等指标
"""
# 计算平均单笔成交金额
avg_amount = df['amount'].mean()
# 大单判定:单笔金额 > 平均金额 * 倍数
df['is_large'] = df['amount'] > (avg_amount * threshold_multiplier)
# 筛选大单
large_orders = df[df['is_large']].copy()
# 计算主力净流入
buy_amount = large_orders[large_orders['buy_sell_flag'] == 'B']['amount'].sum()
sell_amount = large_orders[large_orders['buy_sell_flag'] == 'S']['amount'].sum()
net_inflow = buy_amount - sell_amount
# 计算资金流强度
total_amount = df['amount'].sum()
mfi = (net_inflow / total_amount) * 100 if total_amount > 0 else 0
# 计算大单成交占比
large_amount = large_orders['amount'].sum()
large_ratio = (large_amount / total_amount) * 100 if total_amount > 0 else 0
return {
'主力净流入': round(net_inflow, 2),
'资金流强度(MFI)': round(mfi, 2),
'大单成交占比': round(large_ratio, 2),
'大单笔数': len(large_orders),
'总成交额': round(total_amount, 2)
}
# 使用示例
# result = identify_major_funds(tick_data)
# print(result)
个人建议:这个函数只是基础版。实际使用时,我还会加入「时间窗口」参数,比如只统计开盘后30分钟和收盘前30分钟的数据。为什么?因为这两个时间段的主力资金最有参考价值。盘中那些零散的大单,很多都是量化基金在刷单,参考意义不大。
2.6 避坑指南
最后,分享几个我踩过的坑:
- 别只看净流入,要看净流入/成交额比。一个股票成交额100亿,净流入5亿,和成交额10亿净流入5亿,完全是两个概念。
- 小心「对倒」陷阱。主力左手倒右手,制造净流入假象。怎么识别?看买卖单的间隔时间——如果大单买入后几秒内就有等量的大单卖出,大概率是对倒。
- 尾盘突袭要警惕。收盘前最后几分钟突然拉出大单净流入,很可能是为了做数据,第二天开盘就砸。
- 不同市场环境,标准要调整。牛市里大单标准可以放宽,熊市里要收紧。我一般会根据大盘成交量动态调整阈值。
好了,主力资金识别这块就聊到这儿。记住一句话:工具是死的,人是活的。别迷信任何一个指标,多维度交叉验证才是王道。