投投资策略平台
署名 老K
策略库/基金诊断

风险提示 本站内容为个人研究整理,仅供学习参考,不构成任何投资建议,据此操作风险自担。本策略的规则取自公开资料,并非个人独创交易体系。

基金诊断

用风险调整后的指标和一个归因框架,判断一只基金到底靠什么赚钱。

引擎 + 公开数据源通用规则适用:基金
全贯穿全链路1选标的主用2定买点3定仓位4定卖点同时覆盖5复盘
下载完整策略包 11.1 KB · 5 个文件 · 解压即用
下载 .zip

内容指纹(SKILL.md 的 sha256 前 16 位):cb2e12d4561942f9 —— 下载解压后可用 shasum -a 256 SKILL.md 自行核对。

策略说明

适用场景

你持有一只基金或正在考虑买一只,想知道它的收益里有多少来自承担风险、多少来自选股、多少来自运气;或者想知道它是不是已经偏离了当初买它的理由。

输入

基金代码 + 考察区间 + 对比基准(默认取基金自身业绩比较基准)。净值与持仓数据由脚本从公开源获取。

输出

一张诊断表:年化收益、年化波动、最大回撤、夏普比率、Calmar 比率、相对基准的超额与信息比率;再加上持仓穿透(前十大)、行业分布、换手率与规模变化。

核心逻辑
  1. 拉取复权净值序列,按考察区间切片,并对齐基准序列。
  2. 算风险调整后指标:夏普(超额收益/收益标准差)、最大回撤(谷值−峰值)/峰值、Calmar(年化收益/最大回撤)、信息比率(主动收益/跟踪误差)。
  3. 把收益拆成配置效应、选择效应与交互效应三部分。
  4. 穿透季报持仓:前十大个股、行业分布、集中度。并提示数据边界——季报只披露前十大,中报年报才披露全部。
  5. 对照基金合同约定的投资方向,标注实际持仓是否出现偏离。
依赖

Python >=3.9;依赖包:akshare、pandas、numpy;数据:akshare(主);持仓数据来自定期报告,存在披露滞后(季报在季度结束后 15 个工作日内披露)。

文件清单
  • LICENSE 2.2 KB
  • SKILL.md 7.4 KB
  • references/sources.md 2.9 KB
  • requirements.txt 121 B
  • scripts/fund_diagnosis.py 8.7 KB

风险与局限

历史业绩不预测未来,风险调整指标也有明显局限:夏普比率的分母用历史波动,对尾部风险不敏感;最大回撤的数值高度依赖起止日期,换一段时间就可能差很多;Calmar 原始出处(Terry W. Young, 1991 年《Futures》杂志)未开放获取,本站只引用其定义,不引用其结论。季报只披露前十大持仓,所以基于季报的行业分布与集中度天然不完整。

出处

共 6 条

SKILL.md 全文

下面这段就是下载包里 SKILL.md 的完整内容,未做删减。指纹 cb2e12d4561942f9。

基金诊断

回答一个问题:这只基金的钱,是靠承担风险赚来的,还是靠主动管理赚来的。

这个问题决定了你接下来该怎么对待它。如果收益全部来自承担市场风险,那你买的就是一个费率更高的指数替代品;如果来自主动管理,你得判断这份能力能持续多久。

适用场景

  • 你持有一只基金,想知道它的收益结构。
  • 你发现一只基金的净值走势越来越不像它名字里说的事。
  • 你要在两只同类基金之间取舍,希望用统一口径比较。

输入

输入 说明
基金代码 或一份净值序列 CSV
考察区间 在线模式默认 3 年
无风险利率 默认 2%,这个取值会直接改变夏普比率
基准(可选) 用于算超额与跟踪误差

输出

一页可核对的诊断表:

  1. 年化收益、年化波动、最大回撤(含起止日期)
  2. 夏普比率、Calmar 比率
  3. 若提供基准:基准年化、区间超额、年化跟踪误差、信息比率
  4. 本次使用的全部口径(无风险利率、考察区间、年化系数)

核心逻辑

第一步:算基础指标

  • 夏普比率 = (年化收益 − 无风险利率) / 年化波动。原始出处是 William F. Sharpe, Mutual Fund Performance, 1966,当时称「报酬—波动性比率」。
  • 最大回撤 = (谷值 − 峰值) / 峰值。结果为负,越接近 0 越好。必须同时给出起止日期,因为换个区间数字就变。
  • Calmar 比率 = 年化收益 / |最大回撤|。原始出处无开放链接,本站只采用定义,不引用其结论。
  • 信息比率 = 主动收益 / 跟踪误差。注意:「跟踪误差」在中文语境里常被误解为「与指数收益的差值」,英文口径指的是主动收益序列的标准差,含义完全不同。

第二步:把收益拆开

用 Brinson 框架(Brinson, Hood & Beebower, 1986)把超额收益拆成三部分:

  • 配置效应:把钱放在了对的行业/资产上
  • 选择效应:在该行业内选对了个股
  • 交互效应:两者共同作用

意义在于:配置对了而选股错了,和配置错了而选股对了,是两个完全不同的问题,需要完全不同的应对。

第三步:α 还是 β

用 CAPM 的框架看:一段收益里有多少来自市场整体(β),有多少是超越市场的部分(α)。两者的区别在于——β 是可以免费买到的(买指数基金),α 才是你付管理费买的东西。

第四步:持仓穿透,并说清数据边界

  • 季报只披露前十大持仓;中报与年报才披露全部持仓。
  • 季报的披露时限是季度结束之日起 15 个工作日内。

所以基于季报做的行业分布与集中度天然不完整,这一点必须在输出里说明,不能默认使用者知道。

第五步:风格漂移检查

对照基金合同约定的投资方向,看实际持仓是否偏离。2026 年中国证券投资基金业协会发布的《公开募集证券投资基金主题投资风格管理指引》要求主题基金名称与投资方向一致、建立并管理风格库,自 2026 年 12 月 1 日起施行。

依赖与安装

pip install akshare pandas numpy

离线模式(--csv)只需 Python 标准库。

用法

# 在线
python3 scripts/fund_diagnosis.py --code 110022 --years 3 --rf 0.02

# 带基准
python3 scripts/fund_diagnosis.py --code 110022 --bench-csv hs300.csv --rf 0.02

# 离线
python3 scripts/fund_diagnosis.py --csv nav.csv --bench-csv bench.csv --rf 0.025

出处

  • Sharpe, W. F. (1966). Mutual Fund Performance. The Journal of Business 39(1) —— 夏普比率(原称报酬—波动性比率)的原始出处。
  • Brinson, Hood & Beebower (1986). Determinants of Portfolio Performance. Financial Analysts Journal 42(4) —— 配置效应、选择效应、交互效应的归因分解。
  • Sharpe, W. F. (1964). Capital Asset Prices: A Theory of Market Equilibrium under Conditions of Risk. Journal of Finance 19(3) —— CAPM 与 Alpha/Beta 的原始出处之一(Lintner 1965、Mossin 1966 同期独立提出)。
  • Investopedia, Maximum Drawdown (MDD) —— 定义与公式。
  • 中国证监会《公开募集证券投资基金信息披露管理办法》(第 158 号令,2019,2020 年修正) —— 第十八条:基金管理人应当在季度结束之日起十五个工作日内编制完成基金季度报告。
  • 中国证券投资基金业协会《公开募集证券投资基金主题投资风格管理指引》(2026) —— 主题基金名称须与投资方向一致、建立并管理风格库。

完整清单与逐条说明见包内 references/sources.md。

风险与局限

  1. 历史业绩不预测未来。 这是本 skill 最重要的一条,其余全部次之。
  2. 夏普比率对尾部风险不敏感。 它惩罚「经常小幅波动」,但不惩罚「长期平静后一次腰斩」。一个策略可以在夏普比率上很漂亮,同时在尾部风险上很危险。
  3. 最大回撤高度依赖起止区间。 换个考察窗口,数字可能差很多。所以脚本必须把起止日期一起输出。
  4. 无风险利率的取值直接改变夏普比率。 中文语境常用 1 年期定存或国债收益率,英文语境常用 3 个月 T-Bill。不同取值下的夏普比率不可直接比较。
  5. 跟踪误差的中英文口径不同。 中文常理解为「与指数收益的差值」,英文口径是主动收益序列的标准差。
  6. 季报只披露前十大持仓。 基于季报的行业分布与集中度天然不完整。
  7. Calmar 比率的原始文献无开放获取,本站只引用定义。
  8. 不构成投资建议,也不评价任何具体的基金经理。

常见问题

为什么算出来的夏普和别人给的不一样? 九成是因为无风险利率取值不同,其次是考察区间不同。脚本把这两个参数都打印出来了,比对时先对参数。

最大回撤 −45%,是不是说明这只基金很差? 不一定。要看它同期涨了多少、回撤持续了多久、以及你能不能承受。最大回撤是一个事实描述,不是一个评分。

信息比率高就说明基金经理有能力吗? 不能直接推出。信息比率高可能来自一段特定行情,也可能是承担了模型没有捕捉到的风险。它只是一个维度。

怎么判断风格是否漂移? 把基金的股票简称里含有「主题」「行业」等关键词的直接对照:基金名字说的是什么方向,实际持仓的行业分布是不是那个方向。数据上,季报只有前十大,中报年报才完整——这一层数据缺口必须自己知道。