# Fund Holdings

> 查看基金持仓并计算多只基金之间的持仓重叠度。输入基金代码，获取完整持仓数据，生成重叠度矩阵。

- Skill: `cloud26/fund-holdings` (Agent Skill)
- Install (CLI): `npx skillmds@latest add cloud26/fund-holdings`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cloud26/fund-holdings/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: cloud26 (https://skillmd.com/u/cloud26)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/cloud26/fund-holdings

---


用户想要查看并对比多只基金的底层持仓，计算它们之间的重叠程度。

## 输入

用户会提供若干基金代码（如 `160615 005788 217027`），通过 `$ARGUMENTS` 传入。

## 步骤

### 1. 获取每只基金的基本信息

对每只基金代码，用 WebFetch 抓取：
```
https://fundf10.eastmoney.com/jbgk_{基金代码}.html
```

从中提取：基金名称、成立日期、基金类型、跟踪指数。

**关键判断**：如果是 ETF联接基金，需要找到母ETF代码，后续用母ETF代码查持仓。

### 2. 获取完整持仓

对每只基金（或其母ETF），用 WebFetch 抓取：
```
https://fundf10.eastmoney.com/FundArchivesDatas.aspx?type=jjcc&code={基金代码}&topline=9999&year={年}&month={月}
```

- 完整持仓只在半年报(month=6)和年报(month=12)披露
- 先尝试最近的年报（12月），如果数据不全再尝试半年报（6月）
- 季报只有前10大持仓，如果用户只需要前10大，可以用最近的季度

返回的格式是 JS 变量赋值包裹 HTML 表格（`var apidata={content:"<HTML>"}`），需要解析其中的股票名称和占净值比例。

### 3. 计算重叠度

对任意两只基金，计算：
- **重叠股票数**：两只基金共同持有的股票数量
- **Jaccard系数**：重叠股票数 / 合并去重股票数
- **加权重叠度**：对每只重叠股票，取两只基金中较小的权重，求和。这个指标反映实际资金暴露的重叠程度。

### 4. 输出

生成清晰的重叠度矩阵和明细：
- 矩阵形式展示任意两只基金的加权重叠度
- 列出每对基金的重叠股票明细（股票名、两边权重）
- 按重叠度从高到低排序
- 给出分散度评估建议

## 备用数据源

如果天天基金网接口失败，可尝试新浪财经（仅前10大）：
```
https://finance.sina.com.cn/fund/quotes/{基金代码}/bc.shtml
```

## 注意事项

- ETF联接基金的直接持仓几乎全是母ETF份额，必须查母ETF才能看到真实股票持仓
- 同一公司在不同市场上市（如民生银行A股/H股）应视为相关但不完全相同的持仓
- 指数基金的持仓基本就是指数成分股，权重也高度一致

