第四章 核心指标构建:持仓集中度、持仓市值占比、基金数量变化、季度持仓变动率
好,咱们直接进入正题。
识别机构抱团股,不能靠感觉。你得有数据,有指标。我做了这么多年量化,见过太多人凭「这只基金买了,那只基金也买了」这种模糊逻辑去跟风。结果呢?往往接盘在高位。
今天我把四个最核心的指标拆开讲。这四个指标,是我个人在实战中反复验证过的。它们就像四把尺子,帮你量出机构到底在「真抱团」还是「假取暖」。
4.1 持仓集中度:看机构到底有多「挤」
持仓集中度,说白了就是:持有某只股票的基金数量,占所有主动管理型基金总数的比例。
为什么看这个?你想想看,如果全市场只有10只基金,其中8只都买了同一只股票,那这只票的筹码就高度集中在机构手里。这就是典型的抱团。
计算公式:
持仓集中度 = 持有该股的基金数量 / 全市场主动管理型基金总数 × 100%
我在项目中遇到过这样的情况:某只消费股,持仓集中度从5%突然飙升到25%。当时很多人觉得是利好,但我一看,这个集中度已经超过了历史95%分位数。嗯,这里要注意——集中度太高,反而意味着风险。一旦机构开始松动,踩踏会非常惨烈。
避坑指南:我曾经吃过一次亏。某只科技股集中度连续三个季度上升,我以为机构还在加仓。结果第四季度集中度没变,但股价跌了30%。后来复盘才发现,虽然基金数量没变,但每家基金都在偷偷减仓。所以,集中度要结合后面的指标一起看。
4.2 持仓市值占比:看机构下了多少「真金白银」
持仓市值占比,衡量的是机构持有某只股票的市值,占该股票总流通市值的比例。
这个指标比集中度更「实在」。为什么?因为基金数量多,不代表每家都重仓。有的基金可能只买了100股,纯粹是「凑热闹」。但持仓市值占比高,说明机构是真金白银砸进去了。
| 指标 | 含义 | 阈值参考(我个人的经验) |
|---|---|---|
| 持仓集中度 | 持有基金的「广度」 | >20% 需警惕过热 |
| 持仓市值占比 | 机构资金的「深度」 | >15% 为重度抱团 |
我建议你把这两个指标放在一起看。如果集中度高但市值占比低,说明机构在「围观」,没真动手。如果两者都高,那才是真正的抱团。
4.3 基金数量变化:看机构是「涌入」还是「逃离」
这个指标最直观。就是看每个季度,持有某只股票的基金数量是增加了还是减少了。
我习惯用环比变化率。比如,上季度有100只基金持有,本季度变成150只,那变化率就是+50%。
实战技巧:我个人比较关注「连续两个季度基金数量加速增长」的股票。比如,Q1增加20%,Q2增加40%。这种加速往往意味着机构在抢筹。但反过来,如果增速突然放缓,哪怕还在增加,也要小心——可能是机构在边打边撤。
为什么会这样?因为机构建仓不是一天完成的。他们通常会用几个季度慢慢买。如果基金数量突然暴增,比如一个季度翻倍,那很可能是消息泄露了,大家都在抢。这时候追进去,成本会很高。
4.4 季度持仓变动率:看机构调仓的「力度」
最后一个指标,也是最容易被忽略的——季度持仓变动率。
它衡量的是:机构整体持仓数量,相比上个季度变化了多少。
举个例子:上季度所有基金合计持有某股票1亿股,本季度变成1.2亿股,变动率就是+20%。
这个指标和「基金数量变化」有什么区别?
- 基金数量变化:看的是「谁来了,谁走了」
- 持仓变动率:看的是「留下的基金,是加仓了还是减仓了」
我遇到过一种情况:基金数量没变,但持仓变动率是-15%。这说明什么?说明老基金在悄悄减仓,但新基金没进来接盘。这种信号非常危险。
核心逻辑总结:
四个指标要联动看,不能单看一个。
- 真抱团:集中度高 + 市值占比高 + 基金数量持续增加 + 持仓变动率为正
- 假抱团:集中度高但市值占比低,或基金数量增加但持仓变动率为负
- 瓦解前兆:基金数量增速放缓 + 持仓变动率转负
4.5 实战框架图:四个指标如何协同工作
下面这张图,是我自己平时用的分析框架。你可以把它当作一个「过滤器」。
这张图的核心逻辑很简单:四个指标不是孤立的。你得把它们串起来看。我每次做分析,都会先把这四个指标的数据拉出来,然后按照这个框架过一遍。能通过「四维联动」检验的股票,才值得进一步研究。
4.6 代码示例:如何快速计算这四个指标
最后,给你一段我常用的Python代码。你可以用它快速计算这四个指标。注意,这里假设你已经有了基金持仓的明细数据。
import pandas as pd
import numpy as np
def calculate_institutional_indicators(holdings_df, total_funds, total_shares):
"""
holdings_df: 基金持仓明细,包含字段:fund_id, stock_code, shares_held, quarter
total_funds: 全市场主动管理型基金总数(每季度)
total_shares: 股票总流通股本
"""
results = []
for quarter in holdings_df['quarter'].unique():
quarter_data = holdings_df[holdings_df['quarter'] == quarter]
# 1. 持仓集中度
fund_count = quarter_data.groupby('stock_code')['fund_id'].nunique()
concentration = fund_count / total_funds[quarter] * 100
# 2. 持仓市值占比(假设股价已知,这里用持仓股数近似)
total_held = quarter_data.groupby('stock_code')['shares_held'].sum()
market_value_ratio = total_held / total_shares * 100
# 3. 基金数量变化(需要上一季度数据)
# 这里简化处理,实际需要lag操作
# 4. 季度持仓变动率
# 同样需要环比计算
temp = pd.DataFrame({
'quarter': quarter,
'concentration': concentration,
'market_value_ratio': market_value_ratio
})
results.append(temp)
return pd.concat(results)
# 使用示例
# df = calculate_institutional_indicators(holdings, fund_count_dict, share_count_dict)
# print(df.head())
个人建议:代码跑出来只是第一步。我一般会把结果画成折线图,看四个指标的走势是否同步。如果出现背离,比如集中度上升但持仓变动率下降,那就是我重点关注的「预警信号」。
好了,这四个指标就讲到这里。记住,工具是死的,人是活的。指标再漂亮,也要结合市场环境去判断。嗯,今天就到这。
公众号:蓝海资料掘金营,微信deep3321