mcpField
P
performance-reporting

performance-reporting

github.com/joellewis数据与数据库218699 次安装15 周前更新
代码仓库

关于 performance-reporting

面向投资组合经理和绩效报告编制者的报告指南及计算脚本,涵盖收益、基准、风险、归因和目标进度。内容强调将指标放入适当背景,并以清晰语言向客户说明。

主要功能

  1. 01计算时间加权与资金加权收益
  2. 02生成标准期间收益及 GIPS 组合收益
  3. 03比较基准并分析主动收益
  4. 04汇总风险指标与投资归因
  5. 05追踪目标进度并规划图表

适用场景

  1. 01编制月度、季度或年度绩效报告
  2. 02评估经理表现及投资者实际收益
  3. 03解释投资组合相对基准的表现
  4. 04展示风险敞口和财务目标进度

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/joellewis/finance_skills --skill performance-reporting

安装后在 Claude Code 中输入/performance-reporting确认已加载。

附带文件scripts/performance_reporting.py

详细介绍

业绩报告 — 报告与沟通

核心概念

收益报告

准确、一致的收益计算是所有业绩报告的基础。

期间收益: 报告标准时间段——MTD(年初至今的当月)、QTD(年初至今的当季)、YTD(年初至今)、1Y、3Y、5Y、10Y 以及成立以来。务必注明确切的成立日期。

累计收益与年化收益: 仅对超过 1 年的期间计算年化收益。将 3 个月收益年化会造成误导,因为这暗示该收益率可以持续整整 1 年。对于不足 1 年的期间,仅报告累计(总)收益。

  • 年化收益公式:(1 + cumulative_return)^(1/years) - 1
  • 对于多年期,务必同时列出累计收益和年化收益,以便读者了解总财富增长和复利增长率。

费前与费后收益: 务必说明收益是扣除管理费、咨询费和交易成本之前还是之后的。费后收益才是投资者实际获得的收益,应作为主要呈现内容。如果展示费前收益,也要列出费用造成的拖累。

GIPS(全球投资业绩标准): 对于机构报告,应遵循 GIPS 要求——组合构建、完整披露、经验证的计算以及标准化呈现。即使报告不符合 GIPS,公平呈现和完整披露的原则仍然适用。

时间加权收益与资金加权收益:

  • 时间加权收益(TWR)剔除现金流的影响——用于评估投资经理的技能。
  • 资金加权收益(MWR / IRR)反映投资者的实际体验,包括投入和提取资金的时机——用于评估投资者的结果。
计算引擎

scripts/performance_reporting.py 实现了这些报告所需的收益计算:

  • 修正 Dietz 法(ModifiedDietz): 通过根据每笔外部现金流在期间内投入的时间比例加权,近似计算 TWR:R = (V_end - V_start - sum(CF)) / (V_start + sum(w_i * CF_i)),其中 w_i = (D - d_i)/D。在无法进行每日估值时,这是 GIPS 可接受的近似方法。
  • 真正的 TWR(TimeWeightedReturn): 链接各个子期间的收益,prod(1 + r_t) - 1,并提供年化辅助函数,该函数会拒绝处理不足 1 年的期间。
  • IRR / MWR(MoneyWeightedReturn): 使用 Brent 求根法(scipy.optimize.brentq)在给定的区间内数值求解 NPV(rate) = 0,返回年化资金加权收益。
  • GIPS 综合组合(CompositeReturn): 使用期初资产价值作为权重计算资产加权综合收益,并提供等权收益,以及对于包含 6+ 个投资组合的综合组合,计算 GIPS 要求的资产加权内部离散度。
  • 标准期间(PeriodReturns): 根据每日收益序列计算 MTD / QTD / YTD 等滚动期间收益(1M 至 10Y)和成立以来收益,仅对 1 年或以上的期间进行年化。
基准比较

单独看一个收益率毫无意义。评估需要基准作为参照。

选择合适的基准: 基准必须与投资组合的投资风格、地域、资本规模和资产类别构成相匹配。美国大盘股投资组合应与 S&P 500 或 Russell 1000 比较,而不是与 MSCI Emerging Markets Index 比较。

  • 对于多资产投资组合,应使用混合基准(例如,60% S&P 500 / 40% Bloomberg Aggregate)。
  • 基准应具有可投资性——投资者本可以将资金投入该基准,作为被动投资的替代方案。
  • 记录选择基准的理由,并随着时间推移保持一致,避免挑选对自己有利的基准。

主动收益(阿尔法): 投资组合收益减去基准收益。正阿尔法表示跑赢基准;负阿尔法表示跑输基准。

跟踪误差和信息比率: 有关定义和计算,请参阅 performance-metrics。在报告中,应将这些指标与主动收益一并呈现,以便读者判断超额表现是否稳定。

风险仪表板

除了收益报告,还应补充风险指标,以全面呈现情况。有关这些指标(波动率、VaR、回撤等)的定义和计算,请参阅 historical-risk。

当前快照指标:

  • 年化波动率
  • 最大回撤和当前回撤
  • 置信水平为 95% 和 99% 的风险价值(VaR)
  • 相对于基准的贝塔

滚动指标: 展示风险随时间的变化,而不只是某一时点的估算值。

  • 12 个月滚动夏普比率
  • 12 个月滚动波动率
  • 36 个月滚动贝塔
  • 滚动回撤图表

风险敞口细分:

  • 行业集中度及相对于基准的权重
  • 因子敞口(价值、成长、动量、质量、规模)
  • 地域配置
  • 久期和信用质量(针对固定收益)
归因摘要

解释投资组合跑赢或跑输的原因。

Brinson 归因(配置、选股、交互)和因子分解: 有关方法和公式,请参阅 performance-attribution。在报告中,用一句通俗易懂的话概括各项影响(例如,“行业配置贡献了 0.2%,选股贡献了 0.4%”)。

贡献最大的持仓/贡献最小的持仓:

  • 列出对投资组合收益贡献最大和最小的 5 到 10 项持仓。
  • 同时列出持仓收益,以及其对投资组合总收益的贡献(权重 × 收益)。
  • 简要说明每项贡献最大或最小的持仓表现如此的原因。
目标进度跟踪

对于基于目标进行投资的投资者,应从实现特定目标的进度角度来解读业绩。

进度评估: 投资组合相对于财务计划是按计划推进、落后还是领先?

成功概率: 使用蒙特卡洛模拟,根据当前资产、储蓄率、时间跨度以及预期收益/风险假设,估算实现目标的概率。用百分比表示(例如,“65 岁退休时有 82% 的概率能够筹足所需资金”)。

预期收益与所需收益: 将实现目标所需的收益率与当前投资组合的预期收益率进行比较。如果所需收益率超出合理范围,应标示为规划缺口。

里程碑跟踪: 以目标资金到位百分比表示进度。例如:“退休目标:$2,000,000。当前投资组合:$850,000。已筹足 42.5%,剩余 15 年。”

可视化最佳实践

图表比表格更快地传达信息。请选择与所要表达的信息相匹配的图表。

10,000 美元增长图: 展示投资组合相对于基准随时间累积的财富增长。适合所有受众,直观易懂。对于较长时间段,请使用对数刻度,以避免复利造成视觉失真。

滚动收益率图: 展示随时间变化的过去 12 个月或 36 个月收益率。可揭示表现的一致性和市场状态变化。比单一的年化数字更有参考价值。

回撤图: 展示随时间变化的峰值到谷值的跌幅。它能以波动率数字无法做到的方式,直观地传达风险。

资产配置饼图/条形图: 展示当前配置与目标/基准配置。可使用分组条形图并排展示两者。

风险-收益散点图: 在年化收益率与年化波动率平面上绘制投资组合和基准(也可以包括同类组合)。左上角(高收益、低风险)的位置更理想。

报告频率与结构
  • 月度简报: 1 页摘要——核心收益、基准比较、主要归因因素及任何值得注意的事件。
  • 季度详细报告: 3-5 页——完整收益表、归因分析、风险仪表板、目标进度、市场评论和展望。
  • 年度综合报告: 8-15 页——包含季度报告的所有内容,以及年度回顾、税务报告摘要、规划更新和 IPS 审查。
通俗易懂的沟通

报告中最重要的技能,是将数字转化为含义。

  • 不要只写“投资组合年初至今的收益率为 8.1%”。还要补充背景:“投资组合年初至今的收益率为 8.1%,比基准高出 0.6 个百分点,主要得益于科技板块的股票选择表现强劲。”
  • 说明相对于预期和计划而言,业绩表现是好是坏。
  • 使用受众能够理解的类比和比较。
  • 首次使用技术术语时进行定义,或附上术语表。
  • 先给出结论,再为希望深入了解的人提供支持性细节。

示例

示例 1:季度业绩报告摘要

已知: 一个平衡型投资组合(60% 股票/40% 固定收益)在第三季度的收益率为 3.2%(基准:2.8%)。年初至今,投资组合收益率为 8.1%,基准为 7.5%。投资组合过去 12 个月的夏普比率为 0.85。科技板块的选股(+0.3%)和低配能源(-0.1%)是主要的业绩归因因素。

分析:

核心结论: 投资组合第三季度的表现比基准高出 0.4 个百分点,年初至今高出 0.6 个百分点,主要得益于科技板块的股票选择表现强劲。

收益摘要表:

期间投资组合基准主动收益
第三季度+3.2%+2.8%+0.4%
年初至今+8.1%+7.5%+0.6%

归因要点:

  • 科技股选股贡献了 +0.3%——这是超额表现中最大的单一驱动因素。
  • 由于本季度能源价格上涨,低配能源拖累了 -0.1%。
  • +0.4% 的净主动收益体现了严谨的自下而上证券选择。

风险背景:

  • 过去 12 个月的夏普比率为 0.85,表明投资组合创造了可观的风险调整后超额收益。
  • 投资组合波动率仍与基准持平,因此超额表现并非来自承担额外风险。

面向客户的通俗摘要:“您的投资组合本季度上涨了 3.2%,比基准高出约半个百分点。年初至今,您也以相近幅度领先于基准。主要驱动因素是我们挑选的科技股表现优于科技板块整体。相对于您的长期财务计划,我们仍按计划稳步推进。”

示例 2:目标进度 — 退休资金

已知: 客户的退休目标是按今天的币值计算的 2,000,000 美元。当前投资组合价值为 850,000 美元。时间跨度为 15 年。当前年度缴款为 30,000 美元(每年增加 3%)。投资组合的预期名义回报率为 7%,预期波动率为 12%。通胀假设为 2.5%。

分析:

当前状况:

  • 目标:2,000,000 美元(按今天的币值计算)
  • 当前资产:850,000 美元
  • 目标资金到位率:42.5%
  • 剩余时间:15 年

预测(确定性):

  • 当前资产在 15 年内按 4.5% 的实际回报率计算的未来价值:850,000 美元 x (1.045)^15 = 约 1,636,000 美元
  • 缴款(每年 30,000 美元,每年递增 3%)按 4.5% 实际回报率计算的未来价值:约 620,000 美元
  • 预测总额(实际价值):约 2,256,000 美元
  • 确定性评估:进展顺利 — 预测金额将超过目标约 256,000 美元

预测(蒙特卡洛模拟,10,000 次模拟):

  • 结果中位数:2,180,000 美元
  • 第 25 百分位数:1,650,000 美元
  • 第 10 百分位数:1,320,000 美元
  • 达到 2,000,000 美元目标的概率:68%

解读: 确定性预测显示客户进展顺利,但蒙特卡洛分析显示成功概率为 68%——情况尚可,但把握不算很大。确定性视角与概率视角之间的差距,源于回报顺序风险和波动拖累。

提高成功概率的建议:

  • 将年度缴款增加 5,000 美元(可将成功概率提高到约 78%)。
  • 考虑适度降低支出目标,或灵活调整退休日期。
  • 保持当前资产配置——现阶段降低风险会拉低预期回报,降低成功概率。

面向客户的总结:“您已为 2,000,000 美元的退休目标储蓄了 850,000 美元,已完成 42.5%,距离目标还有 15 年。根据我们的预测,按照您当前的储蓄计划,您实现目标的概率约为 68%。目前情况尚可,但我们可以通过增加年度缴款,或让退休日期更灵活,来提高成功机会。”

常见误区

  • 挑选有利的时间段,以最有利的方式展示业绩。务必展示标准期间和成立以来的回报。
  • 未同时展示风险和回报。15% 的回报率搭配 30% 的波动率,与搭配 10% 的波动率,完全是两回事。
  • 使用不恰当的基准来美化业绩。在有利于成长型投资的市场中,将成长型股票基金与价值指数比较并不诚实。
  • 对非技术受众使用过多行话。对于大多数客户而言,如果没有解释,夏普比率和跟踪误差毫无意义。
  • 未提供数字的背景。8% 是好还是不好?这取决于基准、承担的风险、市场环境和目标。
  • 将短期回报年化后展示。一个月回报 5% 并不等于“年化 60%”——这种说法具有误导性,绝不应这样呈现。
  • 当客户现金流的时点显著影响其实际投资体验时,只展示时间加权回报。若存在大额或时点不佳的现金流,应同时展示资金加权回报和 TWR。
  • 综合业绩报告中的幸存者偏差:从历史业绩记录中排除已终止的账户或表现不佳的策略。
  • 忽略税费:对于应税投资者,税后回报才是真正重要的指标。

交叉引用

  • statistics-fundamentals(核心插件):返回分布、预测的置信区间
  • time-value-of-money(核心插件):未来价值预测、年化计算
  • performance-metrics(财富管理插件):Sharpe、Sortino、Information Ratio 的计算细节
  • historical-risk(财富管理插件):风险仪表板的波动率、回撤和 VaR 计算
  • asset-allocation(财富管理插件):多资产投资组合的基准构建
  • quantitative-valuation(财富管理插件):目标预测的前瞻性回报假设
  • finance-psychology(财富管理插件):向客户展示业绩时的框架效应
  • client-review-prep(顾问实务插件):将业绩数据整理到客户回顾会议资料包中

运行脚本

运行 uv run scripts/performance_reporting.py(PEP 723 标头会自动解析 numpy/scipy),或者先运行 pip install numpy scipy,再运行 python3 scripts/performance_reporting.py。直接运行会打印五个示例:Modified Dietz 回报、链式 TWR、通过 Brent 方法求解的 IRR、GIPS 综合摘要,以及标准周期回报表。使用 --verify 可断言示例输出与预期值一致(通过时退出代码为 0),使用 --help 可查看类的概览。此文件主要供作为模块导入使用(例如,from performance_reporting import ModifiedDietz, MoneyWeightedReturn)。

评论

支持 Markdown