mcpField
A
asset-allocation

asset-allocation

github.com/joellewis其他218854 次安装15 周前更新
代码仓库

关于 asset-allocation

面向投资组合构建与财富管理工作流的资产配置技能,介绍战略与战术配置及多种优化框架,并提供可运行的计算示例。

主要功能

  1. 01战略与战术资产配置框架
  2. 02均值—方差优化与 Black-Litterman
  3. 03风险平价与生命周期配置
  4. 04核心—卫星及资产负债匹配
  5. 05运行并验证配置计算示例

适用场景

  1. 01制定长期投资组合目标权重
  2. 02依据市场观点调整短期配置
  3. 03比较风险平价与优化配置
  4. 04为养老金负债匹配资产现金流

安装

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

$npx skills add https://github.com/joellewis/finance_skills --skill asset-allocation

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

附带文件scripts/asset_allocation.py

详细介绍

资产配置

核心概念

战略资产配置(SAA)

根据投资者的风险承受能力、回报目标、投资期限和约束条件制定的长期政策组合。SAA 决定基准目标权重(例如,60% 股票 / 30% 债券 / 10% 另类资产),是长期投资组合回报的主要驱动因素。只有在投资者的情况发生变化时,才应重新审视 SAA,而不是为了应对市场波动。

战术资产配置(TAA)

根据市场观点、估值或动量信号,在短期至中期内偏离 SAA。TAA 需要严谨的流程,以避免演变成随意择时。主要注意事项:

  • 定义允许的偏离区间(例如,相对于 SAA +/- 10%)
  • 建立明确的信号框架(估值、动量、宏观)
  • 设定回归规则:何时恢复 SAA 权重
均值-方差优化(MVO)

Markowitz 提出的框架,用于寻找能够最大化风险调整后回报的投资组合权重:

max w'*mu - (lambda/2) * w'Sigmaw

约束条件:sum(w_i) = 1,w_i >= 0(仅做多时),以及任何其他约束。

其中:

  • w = 权重向量
  • mu = 预期回报向量
  • Sigma = 协方差矩阵
  • lambda = 风险厌恶参数

MVO 需要三个输入:预期回报、协方差矩阵和风险厌恶程度。其解对预期回报输入高度敏感。

Black-Litterman 模型

将市场均衡回报与投资者观点相结合,从而得出更稳定、直观的投资组合权重。分为两步:

步骤 1 — 隐含均衡回报: Pi = lambda * Sigma * w_mkt

其中,w_mkt 是按市值加权的权重向量,lambda 是风险厌恶参数,Sigma 是协方差矩阵。这些回报是市场根据当前价格隐含预期的回报。

步骤 2 — 与观点融合: E(R) = [(tau*Sigma)^(-1) + P'*Omega^(-1)P]^(-1) * [(tauSigma)^(-1)*Pi + P'*Omega^(-1)*Q]

其中:

  • tau = 标量(均衡的不确定性,通常为 0.025-0.05)
  • P = 选择矩阵(标识每个观点涉及的资产)
  • Q = 观点向量(观点所预期的回报)
  • Omega = 观点不确定性的对角矩阵

结果是一个后验预期回报向量,它会根据投资者的信心,从均衡回报转向投资者的观点。

风险平价

使每项资产(或因子)的风险贡献相等,而不是使资金配置相等:

RC_i = w_i * (Sigma*w)_i / sigma_p

对于所有 i、j,令 RC_i = RC_j。

在不考虑相关性的简单双资产情形下: w_i 与 1/sigma_i 成正比

风险平价投资组合会将更多资金配置到波动率较低的资产(通常是债券),并且往往需要使用杠杆才能达到有竞争力的回报目标。

下滑路径

根据年龄或时间制定的配置方案,随着投资者年龄增长或目标日期临近,系统性地从增长型资产转向防御型资产:

常见经验法则:股票比例 = 110 - 年龄

目标日期基金的下滑路径通常:

  • 年轻投资者的起始股票比例为 90%
  • 每年降低约 1-2%
  • 退休时股票比例降至 30-40%
  • 退休后继续采用“穿越式”配置
核心-卫星策略

一种混合方法,结合:

  • 核心(60-80%): 低成本、广泛分散的指数基金或 ETF
  • 卫星(20-40%): 主动策略、因子倾斜、另类资产或集中持仓

这种结构既能高效获取市场回报(核心),又能创造超额收益或获得特定风险敞口(卫星)。

资产负债匹配

适用于有明确负债的投资者(养老金、保险、设有支出规则的捐赠基金):

  • 使资产久期和现金流与负债久期和时间安排相匹配
  • 剩余资金优化:相对于负债优化投资组合,而非追求绝对回报
  • 负债驱动型投资(LDI):用久期匹配的债券对冲负债风险,并将剩余资金投资于追求回报的资产

关键公式

公式表达式用途
MVO 目标函数max w'*mu - (lambda/2)*w'Sigmaw最优投资组合权重
均衡收益Pi = lambda * Sigma * w_mktBlack-Litterman 起点
BL 后验E(R) = [(tau*Sigma)^(-1) + P'*Omega^(-1)P]^(-1) * [(tauSigma)^(-1)*Pi + P'*Omega^(-1)*Q]混合后的预期收益
风险贡献RC_i = w_i * (Sigma*w)_i / sigma_p风险平价目标
风险平价条件对所有 i、j,RC_i = RC_j风险贡献相等
滑翔路径规则股票占比 = 110 - 年龄基于年龄的资产配置

示例详解

示例 1:三类资产的均值-方差优化

已知:

  • 资产:美国股票(mu=8%,sigma=16%)、国际股票(mu=7%,sigma=18%)、美国债券(mu=3%,sigma=4%)
  • 相关系数:美国/国际股票 = 0.75,美国股票/债券 = 0.10,国际股票/债券 = 0.05
  • 风险厌恶系数:lambda = 4
  • 约束:只允许做多,资金全部投资

计算: 最优权重

解答:

协方差矩阵:

  • Cov(US,US) = 0.16^2 = 0.0256
  • Cov(Intl,Intl) = 0.18^2 = 0.0324
  • Cov(Bond,Bond) = 0.04^2 = 0.0016
  • Cov(US,Intl) = 0.75 * 0.16 * 0.18 = 0.0216
  • Cov(US,Bond) = 0.10 * 0.16 * 0.04 = 0.00064
  • Cov(Intl,Bond) = 0.05 * 0.18 * 0.04 = 0.00036

lambda=4 时的 MVO(通过数值方法或二次规划求解):

最优权重(只做多):

  • 美国股票:51.9%
  • 国际股票:0%
  • 美国债券:48.1%

投资组合:预期收益 = 5.60%,波动率 = 8.71%

注意:国际股票的权重被压至零——它与美国股票的相关性很高(0.75),但预期收益更低,因此优化器认为没有理由持有它。这是典型的 MVO 行为:输入的细微差异会产生极端解。添加最大权重或最低配置约束可以强制分散投资。债券配置较高,反映了较大的方差惩罚(lambda=4);降低 lambda 会使配置转向股票。

示例 2:包含相对观点的 Black-Litterman 模型

已知: 与示例 1 相同的三类资产和协方差矩阵。

  • 市值权重:美国股票 55%,国际股票 30%,美国债券 15%
  • 风险厌恶系数 lambda = 2.5,tau = 0.05
  • 投资者观点:国际股票的表现将比美国债券高 3%(观点不确定性 Omega = [0.001];数值越低,置信度越高)

计算: 均衡预期收益和后验预期收益

解答:

步骤 1 — 均衡收益,Pi = lambda × Sigma × w_mkt:

  • 美国股票:5.16%
  • 国际股票:5.41%
  • 美国债券:0.18%

步骤 2 — 观点设定:P = [0, 1, -1],Q = [3%]。

均衡收益已经隐含国际股票表现将比债券高 5.23%,因此相较于均衡收益,3% 的观点属于看跌观点。应用 Black-Litterman 后验公式:

  • 美国股票:4.28%(因其与国际股票的相关性为 0.75 而被拉低)
  • 国际股票:4.07%(从 5.41% 下调)
  • 美国债券:0.23%(略微上调)

后验收益会根据置信度向观点倾斜。将这些收益输入 MVO 后,与市值权重相比,权重会从股票适度转向债券,避免原始 MVO 产生的极端解(参见示例 1)。请注意,观点始终是相对于均衡收益已经隐含的内容来评估,而不是孤立地评估。

常见陷阱

  • MVO 对预期收益输入极其敏感,因此被称为“误差放大器”——收益的小幅变化会导致权重发生较大变化
  • 不受约束的 MVO 往往会产生极端且集中的头寸——务必添加约束(仅做多、权重上限、换手率限制)
  • Black-Litterman 要求分析师指定对观点的置信度(Omega),而这本身存在不确定性
  • 风险平价投资组合需要使用杠杆才能实现类似股票的收益,因此会产生借贷成本和杠杆风险
  • 忽略实施成本:交易成本、买卖价差和税费会大幅侵蚀理论上的最优收益
  • 忽略流动性限制:部分资产类别(私募股权、房地产)无法快速再平衡
  • 滑行路径假设投资者具有普遍特征——个人情况可能需要进行定制
  • 过度依赖历史协方差矩阵,而它们可能无法反映未来的关系

交叉引用

  • historical-risk(wealth-management 插件):均值-方差优化所需的波动率和相关性输入
  • forward-risk(wealth-management 插件):用于投资组合优化的预期收益预测和情景分析
  • diversification(wealth-management 插件):分散化原则是所有配置框架的基础
  • bet-sizing(wealth-management 插件):在已配置的资产类别中进行头寸规模管理
  • rebalancing(wealth-management 插件):随着时间推移维持配置目标
  • quantitative-valuation(wealth-management 插件):估值信号可为 TAA 决策提供依据
  • retirement-decumulation(wealth-management 插件):减持阶段的滑行路径,以及配置决策必须管理的收益顺序风险
  • factor-investing(wealth-management 插件):将因子倾斜的规模控制为相对于政策投资组合的审慎且可承受的偏离

运行脚本

uv run scripts/asset_allocation.py            # run the demo (uses PEP 723 inline deps)
uv run scripts/asset_allocation.py --verify   # check demo outputs against the worked examples (exit 1 on mismatch)
python3 scripts/asset_allocation.py            # alternative (requires: pip install numpy scipy)

演示程序会输出上述计算结果;其数值与本技能中的示例计算相符。运行 --help 可查看类和函数列表。如需以编程方式使用,请导入模块,而不要运行该程序——演示程序仅会在 python asset_allocation.py 下执行。

评论

支持 Markdown