基金组合配置 (Fund Portfolio Allocation)
智能基金组合构建与优化工具,帮助用户科学配置基金资产组合。
功能概述
- 战略资产配置 (SAA): 长期目标配置比例
- 战术资产配置 (TAA): 短期偏离调整
- Markowitz优化: 均值方差最优化
- 风险平价配置: 各资产风险贡献均衡
- Black-Litterman: 融合市场观点和信心
- 目标日期策略: 随时间自动调整股债比
- 目标风险策略: 固定风险水平配置
- 再平衡策略: 偏离度检测与调整
使用方法
命令行调用
# 基础配置
fund-alloc --target 稳健增长 --amount 1000000
# 高级配置
fund-alloc --target 积极型 --amount 500000 --strategy markowitz
# 风险平价
fund-alloc --target 平衡型 --amount 1000000 --strategy risk-parity
# 目标日期
fund-alloc --target-date 2040 --amount 500000
Python API
from fund_portfolio_allocation import PortfolioAllocator
allocator = PortfolioAllocator()
# 基础配置
portfolio = allocator.allocate(
target='稳健增长',
amount=1000000,
risk_profile='R3'
)
# Markowitz优化
portfolio = allocator.markowitz_optimize(
expected_returns=[0.08, 0.05, 0.03],
cov_matrix=[[...]],
target_return=0.06
)
投资策略
1. 战略资产配置 (SAA)
基于长期投资目标和风险承受能力确定的基础配置。
| 风险等级 | 股票型 | 混合型 | 债券型 | 货币型 | 适合人群 |
|---|---|---|---|---|---|
| R1 保守 | 0% | 10% | 40% | 50% | 退休人群 |
| R2 稳健 | 15% | 25% | 40% | 20% | 保守投资者 |
| R3 平衡 | 30% | 30% | 30% | 10% | 一般投资者 |
| R4 进取 | 50% | 25% | 20% | 5% | 积极投资者 |
| R5 激进 | 70% | 15% | 10% | 5% | 高风险承受者 |
2. 战术资产配置 (TAA)
在SAA基础上进行短期偏离调整(±10%)。
调整因子:
- 估值水平: 高估值低配,低估值高配
- 市场趋势: 趋势向上高配,向下低配
- 宏观环境: 利率、通胀、政策
- 情绪指标: 恐慌/贪婪指数
3. Markowitz均值方差优化
目标: 在给定收益目标下最小化风险
或在给定风险水平下最大化收益
约束:
- 权重和为1: Σw_i = 1
- 权重非负: w_i ≥ 0
- 最小权重: w_i ≥ w_min (避免碎片化)
- 最大权重: w_i ≤ w_max (避免过度集中)
有效前沿: 所有最优组合的集合
4. 风险平价 (Risk Parity)
目标: 各资产对组合风险的贡献相等
风险贡献 = w_i × (Σw_j × Cov(r_i, r_j)) / σ_p
其中:
w_i = 资产i的权重
Cov = 协方差
σ_p = 组合波动率
5. Black-Litterman模型
融合市场均衡收益和投资者观点:
后验收益 = [(τΣ)^(-1) + P^T Ω^(-1) P]^(-1) × [(τΣ)^(-1) Π + P^T Ω^(-1) Q]
其中:
Π = 市场均衡收益
Q = 投资者观点
P = 观点映射矩阵
Ω = 观点信心度
Σ = 资产协方差矩阵
τ = 比例因子
6. 目标日期策略
随时间自动调整股债比:
股票比例 = 100 - (当前年龄 - 20) × 比例系数
或者:
股票比例 = (目标年份 - 当前年份) / 投资年限 × 股票上限
输出格式
组合配置报告
{
"portfolio_id": "PF_20260321_001",
"created_at": "2026-03-21",
"strategy": "markowitz",
"target_profile": "稳健增长",
"risk_level": "R3",
"total_amount": 1000000,
"allocation": {
"by_type": {
"equity": {"weight": 0.30, "amount": 300000},
"hybrid": {"weight": 0.30, "amount": 300000},
"bond": {"weight": 0.30, "amount": 300000},
"money": {"weight": 0.10, "amount": 100000}
},
"by_fund": [
{
"fund_code": "000001",
"fund_name": "华夏成长混合",
"type": "混合型",
"weight": 0.15,
"amount": 150000,
"expected_return": 0.08,
"risk_contribution": 0.15
}
]
},
"expected_metrics": {
"expected_return": 0.065,
"expected_volatility": 0.12,
"sharpe_ratio": 0.33,
"max_drawdown": -0.15,
"var_95": -0.025
},
"rebalance_policy": {
"method": "threshold",
"threshold": 0.05,
"frequency": "quarterly"
},
"recommendations": [
"建议每季度检查偏离度",
"单一基金权重不超过20%"
]
}
示例
示例1: 稳健型组合配置
输入:
构建100万稳健型基金组合
输出:
📊 基金组合配置报告
投资目标: 稳健增长
风险等级: R3 (中等风险)
投资金额: ¥1,000,000
配置策略: 战略资产配置 (SAA)
资产配置:
├── 股票型基金: 30% (¥300,000)
│ ├── 富国天惠成长: 15% (¥150,000)
│ └── 易方达蓝筹精选: 15% (¥150,000)
├── 混合型基金: 30% (¥300,000)
│ ├── 华夏成长混合: 20% (¥200,000)
│ └── 中欧时代先锋: 10% (¥100,000)
├── 债券型基金: 30% (¥300,000)
│ └── 招商产业债: 30% (¥300,000)
└── 货币型基金: 10% (¥100,000)
└── 天弘余额宝: 10% (¥100,000)
预期表现:
预期年化收益: 6.5%
预期波动率: 12.0%
夏普比率: 0.33
预期最大回撤: -15.0%
95% VaR: -2.5%
再平衡策略:
触发条件: 偏离度 > 5%
检查频率: 每季度
调整方式: 部分再平衡
建议:
✅ 适合持有期3年以上
✅ 建议定投方式逐步建仓
⚠️ 关注权益市场估值水平
示例2: Markowitz优化
输入:
使用Markowitz优化,目标收益8%,投资金额50万
输出:
📊 Markowitz优化配置
目标收益: 8.0%
投资金额: ¥500,000
优化方法: 均值方差最优化
有效前沿分析:
最小风险组合: 收益5.2%, 波动8.5%
目标收益组合: 收益8.0%, 波动12.3%
最大收益组合: 收益12.5%, 波动22.8%
优化结果:
股票型: 45% (¥225,000)
混合型: 25% (¥125,000)
债券型: 25% (¥125,000)
货币型: 5% (¥25,000)
预期表现:
预期收益: 8.0%
预期波动: 12.3%
夏普比率: 0.45
示例3: 风险平价配置
输入:
使用风险平价策略配置100万
输出:
📊 风险平价配置
投资金额: ¥1,000,000
策略: 风险平价 (Risk Parity)
目标: 各资产风险贡献相等
配置结果:
股票型: 18% (¥180,000) - 风险贡献25%
混合型: 22% (¥220,000) - 风险贡献25%
债券型: 45% (¥450,000) - 风险贡献25%
货币型: 15% (¥150,000) - 风险贡献25%
与传统配置对比:
风险平价 传统60/40
波动率: 8.5% 12.2%
夏普比率: 0.52 0.38
最大回撤: -10.5% -18.3%
风险贡献均衡度: 98.5% (优秀)
注意事项
- 配置建议基于历史数据,不代表未来表现
- 实际配置需考虑交易成本、申赎费率
- 税务影响未在基础配置中考虑
- 建议定期(季度/年度)进行再平衡
- 市场极端情况下需灵活调整配置
- 配置前应充分了解各基金风险特征
依赖
numpy>=1.20.0
scipy>=1.7.0
pandas>=1.3.0
cvxpy>=1.2.0 # 凸优化
作者
FinClaw - 上海财经大学金融研究工具