主动管理基金调仓有效性验证
一句话定位
本 Skill 做一件事:用横纵分析法验证一只主动管理基金的调仓是否真的有效果。
纵向还原基金过去 8 个季度的调仓时间轴,横向与同类基金/基准做对比,最后用量化的有效性指标打分,输出一份 PDF 研究报告。
触发条件
当用户说出以下任一需求时触发:
- "验证 {基金代码} 的调仓有效性"
- "分析 {基金代码} 基金经理的调仓能力"
- "季报调仓验证 {基金代码}"
- "主动基金调仓复盘 {基金代码}"
- "这只基金调仓有没有用"
- "分析 {基金代码} 调仓效果"
核心方法论:横纵双轴 + 有效性验证
本 Skill 将四个能力融合为一套工作流:
| 能力来源 | 融合进本 Skill 的部分 |
|---|---|
fund-diagnosis-3.10 |
8 季度十大重仓追踪、调仓节奏分类、行业配置演变、有效性评分 |
fund-active-research |
基金研究报告结构、Brinson 归因思路、综合评分卡、基金经理画像 |
r9-quant-strategist(备案追踪器) |
新建/增持/减持/清仓仓位拆解、信念排名、同业重叠分析、聪明钱信号 |
hv-analysis |
横纵分析法框架、叙事驱动写作、PDF 排版输出 |
横纵双轴在本 Skill 中的含义
- 纵轴(时间轴):追踪基金过去 8 个季度的十大重仓变化,还原基金经理每次调仓的时点、方向、幅度和后续效果。
- 横轴(截面轴):在同一时间截面上,与同类基金、基准指数对比,看调仓是「独到判断」还是「人云亦云」。
- 有效性验证:把纵轴的调仓动作和横轴的市场/同业反馈对照,回答三个核心问题:
1. 调仓有没有踩在节奏上?
2. 核心持仓是否持续贡献超额?
3. 波段操作是增厚收益还是追涨杀跌?
四步工作流
第一步:确认目标与参数
拿到用户输入后,确认:
- 基金代码(必填):如
519702 - 对比标的(可选):默认选 3-5 只同类型基金 + 业绩基准(如沪深 300)
- 时间窗口(可选):默认过去 8 个季度(2 年)
- 特别关注(可选):如只关注某个行业、某位基金经理任期等
第二步:数据收集
自动获取以下数据:
- 过去 8 个季度十大重仓股明细
- 持股数量、占净值比、持仓市值
- 基金业绩数据(近 1 年 / 近 6 月 / 近 3 月 / 年度收益)
- 同类基金同期重仓数据(用于重叠分析)
- 个股后续 3 个月涨跌幅(验证调仓时机)
- 行业分类与板块表现
数据源优先级见下方「数据来源」章节。详细数据字段与获取方式见 references/validation-framework.md。
第三步:横纵分析与有效性验证
纵向分析
- 8 季度重仓时间轴:每只重仓股进出的完整路径
- 核心持仓识别:连续持有 ≥6 个季度的标的
- 调仓节奏分类:微调(1 只)/ 调整(2-3 只)/ 大调(≥4 只)
- 行业配置演变:板块主线迁移与重大转向
- 关键调仓事件:新建即进入 TOP5、清仓高占比标的、行业大幅漂移等
横向分析
- 同类基金重叠分析:共同重仓、共识仓位、分歧仓位
- 与基准对比:行业超低配、风格暴露
- 同业调仓方向对比:本基金是领先还是跟随
有效性验证
| 验证维度 | 核心问题 | 关键指标 |
|---|---|---|
| 调仓时机 | 新增股票后续跑赢基准了吗? | 新增标的 3 个月超额收益 |
| 行业轮动 | 行业切换踩在节奏上了吗? | 切换后 3 个月行业超额收益 |
| 核心持仓 | 压舱石持续有效吗? | 核心持仓持有期收益、贡献度 |
| 清仓决策 | 卖掉的股票后来跑输了吗? | 清仓标的 3 个月后相对收益 |
| 风险控制 | 集中度波动是否在合理区间? | 前十大占比波动幅度 |
| 换手效率 | 高换手是否带来超额? | 换手率 vs 超额收益相关性 |
详细指标定义与计算方式见 references/scoring-criteria.md。
第四步:输出报告
生成 Markdown 报告后,自动使用 scripts/md_to_pdf.py(WeasyPrint)转换为 PDF;若系统缺少 pango/gobject 库,会自动回退到 scripts/md_to_pdf_playwright.py(Playwright + Chromium)。
报告结构:
- 封面与执行摘要
- 基金概览(基本信息、业绩、换手率、基金经理)
- 纵向调仓时间轴(8 季度重仓演变、核心持仓、关键事件)
- 横向同业对比(重叠分析、基准偏离、同业调仓方向)
- 调仓有效性验证
- 新增仓位效果
- 清仓仓位效果
- 行业轮动 timing
- 核心持仓贡献
- 集中度与换手效率 - 基金经理调仓风格画像
- 有效性评分卡与综合评级
- 投资建议与风险提示
- 信息来源与数据声明
快速使用
命令行用法
cd /path/to/active-fund-rebalancing-validation
# 基础分析
python3 scripts/validate_rebalancing.py 519702
# 指定对比基金
python3 scripts/validate_rebalancing.py 519702 --peers 519700,519001,000001
# 指定时间窗口
python3 scripts/validate_rebalancing.py 519702 --quarters 8
# 输出到指定目录
python3 scripts/validate_rebalancing.py 519702 --output ~/reports/
手动生成 PDF(可选)
脚本会自动生成 PDF。如需手动转换:
# 首选 WeasyPrint
python3 scripts/md_to_pdf.py \
~/reports/调仓有效性验证_519702_交银趋势混合A.md \
~/reports/调仓有效性验证_519702_交银趋势混合A.pdf \
--title "交银趋势混合A 调仓有效性验证" \
--author "R9(资产配置研习社)"
# 备选 Playwright(macOS 推荐)
python3 scripts/md_to_pdf_playwright.py \
~/reports/调仓有效性验证_519702_交银趋势混合A.md \
~/reports/调仓有效性验证_519702_交银趋势混合A.pdf \
--title "交银趋势混合A 调仓有效性验证" \
--author "R9(资产配置研习社)"
自然语言触发
验证一下 519702 的调仓有效性
分析交银趋势优先基金经理的调仓能力
做一份 000001 的季报调仓验证报告
输出产物
- Markdown 报告:
{输出目录}/调仓有效性验证_{基金代码}_{基金简称}.md - PDF 报告:
{输出目录}/调仓有效性验证_{基金代码}_{基金简称}.pdf - 数据底稿(可选):
{输出目录}/调仓有效性验证_{基金代码}_{基金简称}_data.json
参考文档
- 详细分析框架:
references/validation-framework.md— 数据收集、纵向/横向分析、有效性验证的完整方法 - 评分标准:
references/scoring-criteria.md— 调仓有效性评分维度、权重、评级标准
数据来源
按以下优先级获取数据:
- 天天基金网(
fundf10.eastmoney.com):基金重仓股、行业配置、基金基本信息 - 腾讯财经(
web.ifzq.gtimg.cn):个股前复权 K 线、指数 K 线 - Wind / iFinD / Choice(用户授权时):全持仓、Barra 风格归因
重要注意事项
- 季报滞后性:重仓数据通常滞后季度结束 15-20 个工作日,分析的是历史行为而非实时持仓。
- 前十大局限:仅基于十大重仓,无法验证尾部持仓的调仓效果。
- 基金经理变更:任期内若更换基金经理,需分段分析并标注。
- 不可编造:无法验证的数据标注为「数据待补/待验证」,禁止编造个股收益或同业持仓。
- 不构成投资建议:本 Skill 输出的是历史调仓行为验证,不直接给出买入/卖出建议。