1. 课程导入
在量化投资中,选到好策略只是第一步,真正决定长期收益曲线形态的,往往是资金如何在多个策略之间分配。很多初学者把精力全部放在单策略信号优化上,却忽略了组合层面的权重管理,结果出现“策略都对,账户却波动巨大”的尴尬局面。本章作为全课程导入,先建立多策略资金配置的整体认知,再说明CVXPY在其中的工程定位,最后给出清晰的学习路径与实战目标。
一、为什么多策略资金配置是必修课
单一策略的收益来源往往依赖特定市场状态。趋势策略在单边行情中表现优异,但在震荡市中频繁止损;均值回归策略在区间震荡中稳定获利,却在趋势启动时承受较大回撤。若把全部资金押注在单一策略上,账户净值就会随市场风格切换而剧烈波动。多策略资金配置的核心价值,在于利用策略之间的低相关性,让不同收益来源互相补偿,从而改善组合的夏普比率与最大回撤。
资金配置要解决三个层次的问题:第一,选哪些策略,即策略池构建;第二,各策略配多少钱,即权重优化;第三,权重多久调整一次,即再平衡频率。本课程聚焦第二层,并用CVXPY把权重优化从“拍脑袋”变成可复现、可约束、可回测的工程流程。
二、CVXPY在量化投资中的定位
CVXPY是一个基于Python的凸优化建模工具,它允许开发者用接近数学公式的方式描述优化问题,再自动调用底层求解器完成计算。在量化投资中,CVXPY最常见的用途包括:马科维茨均值—方差优化、风险平价、最小方差组合、最大分散化组合、带换手率约束的权重优化,以及带行业暴露约束的增强配置。
与直接调用求解器相比,CVXPY的优势在于建模表达清晰和约束扩展方便。例如,实盘中常见的“单策略权重不超过30%”“总杠杆不超过1.5倍”“换手率不超过20%”等要求,都可以直接写成约束条件,而不需要手动推导解析解。下面的代码展示了CVXPY描述组合优化问题的基本结构:
import cvxpy as cp
import numpy as np
# 假设有4个策略,mu为预期收益,Sigma为协方差矩阵
mu = np.array([0.08, 0.06, 0.10, 0.05])
Sigma = np.array([
[0.04, 0.01, 0.02, 0.00],
[0.01, 0.03, 0.01, 0.01],
[0.02, 0.01, 0.05, 0.01],
[0.00, 0.01, 0.01, 0.02]
])
w = cp.Variable(4)
risk = cp.quad_form(w, Sigma)
objective = cp.Maximize(mu @ w - 2.0 * risk)
constraints = [
cp.sum(w) == 1,
w >= 0,
w <= 0.4
]
problem = cp.Problem(objective, constraints)
problem.solve()
print("最优权重:", np.round(w.value, 4))
print("组合风险:", round(np.sqrt(risk.value), 4))
这段代码体现了CVXPY的典型工作流:定义变量、构造目标函数、添加约束、调用求解器、读取结果。后续章节会在此基础上逐步加入换手率惩罚、风险预算、情景约束和滚动回测。
三、方法流程:从策略池到最优权重
一个可落地的多策略资金配置流程通常包含以下步骤:
- 策略池构建:筛选逻辑独立、相关性较低、有足够历史数据的策略。
- 数据准备:整理各策略的日收益序列,估计预期收益与协方差矩阵。
- 优化建模:用CVXPY定义目标函数与约束,形成凸优化问题。
- 求解与校验:调用求解器,检查状态是否为optimal,并验证权重合理性。
- 滚动回测:按固定窗口滚动优化,模拟真实调仓过程。
- 绩效归因:分析收益来源、风险贡献与回撤结构,迭代改进。
其中,第3步和第5步是本课程的重点。很多教程只讲一次性的静态优化,但实盘中权重需要定期更新,且每次更新都要考虑换手成本。CVXPY的约束表达能力恰好能覆盖这些需求。
四、案例场景:三个策略的资金分配
假设我们有一个趋势策略、一个套利策略和一个中性策略。趋势策略预期收益高但波动大,套利策略收益稳定但容量有限,中性策略与市场相关性低。若等权分配,组合风险可能被趋势策略主导;若只按收益分配,又会过度集中。通过CVXPY设置“单策略不超过40%、组合波动率不超过8%”的约束,可以得到更均衡的权重。
| 策略 | 预期年化收益 | 年化波动率 | 等权权重 | 优化后权重 |
|---|---|---|---|---|
| 趋势策略 | 12% | 18% | 33.3% | 35% |
| 套利策略 | 7% | 6% | 33.3% | 40% |
| 中性策略 | 9% | 8% | 33.3% | 25% |
优化后,套利策略获得更高权重,因为它在风险调整后收益上更有优势;趋势策略被限制在35%,避免波动过大;中性策略权重下降,但其低相关性仍然为组合提供分散价值。这个例子说明,资金配置不是简单排序,而是综合权衡。
五、常见误区与复盘
另一个常见问题是忽略求解器状态。CVXPY返回infeasible或unbounded时,不能直接使用结果。实盘中应先检查problem.status,再决定是否降级到等权或上一期权重。
六、学习路径与实战目标
本课程的学习路径分为四个阶段:第一阶段掌握CVXPY建模基础与组合优化原理;第二阶段实现均值—方差、风险平价和最小方差等经典模型;第三阶段加入换手率、杠杆、行业暴露等实盘约束;第四阶段完成滚动回测与绩效归因,形成可复用的配置框架。
实战目标很明确:课程结束时,你能够独立用CVXPY搭建一个多策略资金配置系统,输入策略收益数据,输出带约束的最优权重,并完成滚动回测与风险分析。你不需要成为凸优化理论专家,但必须理解每个约束背后的业务含义,并能诊断常见求解问题。