| name | a-share-fund-holding |
| description | A股公募基金持仓分析/机构持仓追踪。当用户说"基金持仓"、"机构持仓"、"公募重仓"、"基金在买什么"、"机构抱团"、"XX被哪些基金持有"、"基金经理持仓"、"fund holding"时触发。分析公募基金季报披露的重仓股数据,追踪机构持仓变动、抱团程度、行业配置偏好。通过 web 搜索获取基金持仓数据,结合 cn-stock-data 获取个股行情和财务指标。支持机构持仓研究风格(formal)和个人跟踪笔记风格(brief)。 |
数据源
SCRIPTS="$SKILLS_ROOT/cn-stock-data/scripts"
python "$SCRIPTS/cn_stock_data.py" quote --code [CODE1],[CODE2],...
python "$SCRIPTS/cn_stock_data.py" finance --code [CODE]
python "$SCRIPTS/cn_stock_data.py" kline --code [CODE] --freq daily --start [季报期末日期]
核心数据来源为 web 搜索(基金持仓数据无法从 cn-stock-data 直接获取):
- 公募基金季报重仓股数据(东方财富/天天基金/Wind)
- 基金净值和规模数据
- 基金经理持仓明细
- 行业配置数据
Workflow (5 steps):
Step 1: 确定分析维度
根据用户需求选择分析角度:
- 个股视角:"XX被哪些基金持有" → 分析单只股票的机构持仓
- 基金视角:"XX基金买了什么" → 分析单只基金的持仓组合
- 市场视角:"基金在买什么" → 分析全市场公募基金的持仓偏好
- 变动视角:"机构最近在加仓什么" → 分析最新季度持仓变化
Step 2: 数据获取
通过 web 搜索获取最新季报数据(每季度披露一次):
- 基金季报披露时间:Q1 在 4 月底前、半年报 8 月底前、Q3 在 10 月底前、年报 3 月底前
- 季报仅披露前十大重仓股,半年报和年报披露全部持仓
个股视角需获取:
| 基金名称 | 基金经理 | 规模(亿) | 持股数(万股) | 持仓市值(亿) | 占基金净值(%) | 较上期变动 |
市场视角需获取:
| 股票代码 | 名称 | 被持有基金数 | 合计持仓市值(亿) | 占流通股(%) | 较上期变化 |
Step 3: 持仓分析
抱团度分析:
- 机构持仓集中度:Top 10/20/50 重仓股占全部持仓的比例
- 抱团股特征:PE/PB/ROE/市值分布
- 与上季度对比:加仓/减仓/新进/退出
行业配置:
| 行业 | 配置比例(%) | 标准配置(%) | 超配/低配 | 较上期变化 |
- 标准配置 = 行业在沪深300/中证800中的权重
- 超配/低配 = 实际配置 - 标准配置
个股层面(通过 cn-stock-data 补充):
- 被增持股的共性(行业/估值/增速特征)
- 被减持股的共性
- 新进重仓股分析
Step 4: 明星基金经理跟踪(可选)
如用户关注特定基金经理:
- 持仓前 10 大重仓股
- 本季度调仓方向
- 历史持仓风格(价值/成长/均衡)
- 业绩表现
Step 5: 输出
风格说明
| 维度 | formal(机构持仓研究) | brief(个人跟踪笔记) |
|---|
| 篇幅 | 3-5 页 | 1 页 |
| 持仓明细 | 完整(Top 20 + 行业配置 + 变动分析) | Top 10 + 关键变动 |
| 抱团分析 | 抱团度量化 + 历史对比 | 一句话判断 |
| 行业配置 | 完整超配/低配表 | Top 3 超配/低配 |
| 基金经理 | 可含多位重点经理 | 1-2 位代表性的 |
| 投资启示 | 客观分析配置趋势 | 可加个人判断 |
| 免责声明 | 需要 | 不需要 |
关键规则
- 数据滞后性:基金持仓数据来自季报,滞后 1-2 个月。分析时必须标注数据截止日期(如"基于2025Q4季报数据")
- 季报 vs 半年报/年报:季报仅披露前 10 大重仓股,半年报和年报披露全部持仓,分析时需注意覆盖范围
- 不等于实时持仓:季报数据是报告期末的快照,基金可能在此后已调仓
- 抱团≠好:高度抱团的股票在市场风格切换时可能出现踩踏
- 区分主动和被动:指数基金(ETF/指数增强)的持仓由指数成分决定,应分开分析
- 与其他 skill 联动:
- 对机构大幅增持的股票用 a-share-earnings-analysis 分析基本面
- 对行业配置变动用 a-share-sector 做行业研究
- 对机构偏好变化用 a-share-northbound 交叉验证(国内机构 vs 外资)
使用示例
示例 1: 基本使用
result = run_skill({
"param1": "value1",
"param2": "value2"
})
示例 2: 命令行使用
python scripts/run_skill.py --input data.json