Markowitz Portfolio Construction at Seventy
创建于 更新于
摘要
本文回顾并扩展了Markowitz的投资组合构建理论,提出了Markowitz++方法,加入多种实际限制和稳健优化等技术,通过凸优化框架解决输入数据敏感性问题,实现高效求解和参数调优。数值实验证明该方法在满足风险目标的同时,有效控制杠杆和换手率,显著提升了投资组合的风险调整后收益表现。[page::0][page::3][page::7][page::19][page::23][page::31][page::35][page::39][page::40]
速读内容
- Markowitz方法核心思想是通过优化预期收益与风险(投资组合收益的标准差)的权衡,以凸优化形式表达,是现代组合构建的基础 [page::3][page::8].
- 该方法存在输入均值和协方差敏感性强、只考虑风险对称性、仅用前两矩估计风险等缺陷,但通过稳健优化(对均值和协方差设定不确定区间)和正则化(限制杠杆、仓位范围)有效缓解 [page::4][page::7][page::21][page::22].
- 文中采用因子模型降低计算复杂度,协方差矩阵表示为低秩加对角形式,计算复杂度从$O(n^{3})$降低至$O(n k^{2})$,极大提升算法规模适用性和求解速度 [page::19][page::39].
- 构建包含现金账户、持仓限制、杠杆限制、交易限制、交易成本和持有成本的完整资产组合优化模型,剂量化交易成本为买卖价差及市场冲击成本,确保交易和持仓的实际可行性 [page::13][page::16][page::23].
- 引入软约束机制允许优化器在牺牲一定目标的前提下软化风险、杠杆、换手率等限制,保证问题始终有解且防止过度交易 [page::24][page::25].
- 量化参数调优通过回测实现,采用交替单参数提升法对持有成本、交易成本、杠杆惩罚、风险惩罚和换手惩罚参数进行调优,显著提升组合表现 [page::28][page::33][page::35].
- 数值回测基于标普100指数74只成分股,展示基本Markowitz、加权限制、杠杆限制、限换手率、防错率等多种改进策略的效果分别累积表现,Markowitz++结合所有约束,显著提升年化收益率(41.8%)和夏普率(4.65),且控制杠杆和换手率 [page::31][page::32][page::33][page::35].

- 大规模实验表明使用因子模型,针对资产规模从10²到5×10⁴和因子数从10到500,均能在可接受时间内完成优化,保证方法可扩展 [page::39].
| 资产数量 n | 因子数 k | 平均求解时间 (秒) |
|------------|-----------|------------------|
| 100 | 10 | 0.01 |
| 500 | 20 | 0.07 |
| 500 | 50 | 0.10 |
| 2000 | 50 | 0.23 |
| 2000 | 100 | 0.22 |
| 10000 | 50 | 0.65 |
| 10000 | 100 | 0.89 |
| 50000 | 200 | 9.00 |
| 50000 | 500 | 17.77 |
- 使用高层建模语言CVXPY实现复杂组合优化,代码简洁,可复用,支持参数化,显著降低生产应用门槛 [page::51][page::52].
深度阅读
Markowitz Portfolio Construction at Seventy — 详尽分析报告
---
1. 元数据与概览
- 报告标题:《Markowitz Portfolio Construction at Seventy》
- 作者:Stephen Boyd, Kasper Johansson, Ronald Kahn, Philipp Schiele, Thomas Schmelzer
- 发布日期:2024年1月11日
- 主题:介绍马克维茨(Harry Markowitz)投资组合构建方法70年以来的发展,特别是对其基础理论的现代扩展与改进。
核心论点
报告回顾了Markowitz七十年前提出的基于均值-方差的投资组合优化理论,阐述了其基本思想及其局限性,并系统探讨了如何借助现代凸优化和稳健优化理论,进一步扩展并改进该方法,形成称为“Markowitz++”的实用性更强的算法体系。论文强调此方法通过凸优化仍具有高可靠性、快速求解能力,并且能自然处理实际投资中面临的各种限制和估计不确定性。
- 评级与目标价:无,属于理论及算法方法论类研究。
- 作者传达的主要信息:经典马克维茨组合理论虽遭受多种批评,但通过现代凸优化、稳健优化及参数调优技术,依然是资产配置的核心,且现已能高效解决规模大幅增加和不确定性管理问题。
---
2. 逐节深度解读
1. 引言:马克维茨思想的奠基地与历史
- 关键内容:详述Markowitz 1952年提出的基于期望收益和风险(波动率)权衡的组合选择框架,概念创新源自John Burr Williams等前辈,强调其开创性场景——将投资决策视为数学优化问题。
- 逻辑支撑:计算能力的限制曾阻碍其应用,1963年Sharpe提出市场模型简化风险估计,极大加速计算。
- 数据点:Sharpe模型下,100资产问题计算时间从33分钟降至30秒,现代计算环境毫秒级完成数万资产组合优化。
- 批评回应:报告谦逊承认此法的不足(数据误差敏感、对称风险假设、忽略高阶矩、多期决策等),但通过现代优化技术可有效缓解,且未偏离Markowitz最初远见。[page::2]
1.1 原始马克维茨模型
- 基本公式:
- 最大化期望收益,在风险(方差)上限下求解权重组合;
- 常见替代形式为风险调整收益最大化引入风险厌恶因子($\gamma$)。
- 解释:直接通过均值$\mu$和协方差$\Sigma$建模资产预期表现和相关性,明确定义投资者风险容忍度参数$\sigma^{tar}$或$\gamma$。
- 数学特性:该问题可解析求解,但涉及协方差矩阵逆,故对输入误差敏感。
- 发展:长仓限制(无卖空)使问题需借助数值QP方法解决,凸优化技术保证这一点的有效实施。
- 创新点:提出Markowitz++作为现代扩展,融入更多现实限制与成本项。[page::3][page::4]
1.2 对马克维茨模型的批评及回应
- 批评总结及回应:
1. 输入数据敏感性强:实际通过正则化和稳健优化(§1.3)可大大缓解。
2. 风险测度对称:方差无差别对待正、负偏离,但合适参数和合理数据下,其缺陷不显著。
3. 不符合最大化效用理论:表面效用函数非单调,但在特定假设(指数效用+高斯分布)下,马克维茨方法等价于效用最大化。
4. 只考虑均值和方差,忽略偏度峰度:实际复杂模型中增益有限,且均方优化表现优秀。
5. 贪婪单期决策,忽略多期优化:多期开销极大,且实证显示单期方法表现接近最优。
- 总结:批评在理论层面成立,但改进技术和实际应用大大缓解了这些问题。[page::4][page::5][page::6]
1.3 稳健优化与正则化技术
- 稳健优化:应对参数不确定性,分为基于统计模型与最坏情况模型,两者能带来相似的加强效果。
- 正则化:通过增加惩罚项或约束,防止模型对输入过拟合,广泛应用于统计及机器学习,同样适用于组合参数估计。
- 投资组合正则化实例:
- 长仓限制即杠杆约束的一种形式;
- 返回率均值的正则化如Black-Litterman方法;
- 协方差收缩技术减少估计误差。
- 核心思想:允许优化器不完全信赖输入数据,提升出样表现。
- 理论借鉴:控制系统稳健优化的成功经验。[page::7][page::8]
1.4 凸优化的发展及其应用
- 技术背景:从单纯形法至二次规划,再至锥规划,凸优化成为解决大规模投资组合问题的理想方法。
- 软件发展:
- 开源求解器(ECOS、Clarabel、SCS、OSQP),商业求解器(MOSEK、GUROBI、CPLEX)。
- 高级域特定语言(CVXPY、CVX等)极大降低了建模难度。
- 自动代码生成器(CVXGEN、CVXPYgen)可实现高效低延时求解。
- 实际意义:实现复杂组合目标与限制的快速求解,支持大规模实时优化,需要大量回测验证的场景。
[page::8][page::9]
1.5 相关工作及软件工具介绍
- 核心进展:
- Sharpe的CAPM、Black-Litterman模型、Barra风险模型、风险平价模型、分层风险平价等。
- 软件工具:
- 开源库:Portfolio Visualizer、PyPortfolioOpt、Cvxportfolio、skfolio、QuantLib。
- 商业软件:MATLAB金融工具箱、Axioma、Portfolio123、PortfoliosLab、Hudson & Thames。
- 影响:软件丰富多样促进了马克维茨法在实践中的推广。[page::10]
1.6 本文贡献与结构安排
- 贡献:展示带有实际约束和稳健特性的Markowitz++凸优化模型,高效且易实现(CVXPY代码数十行),并配备调优与回测框架提升实际表现。
- 作者背景:金融工程、控制理论及优化领域融合,带来新视角。
- 软件:提供教学与实用两套开源实现。
- 结构:§2介绍持仓与交易;§3预测模型;§4完整凸优化问题;§5数值实验;附录给出代码示例。[page::11]
---
3. 核心章节深度剖析
2. 投组合持仓与交易
- 权重定义:
- $wi$: 资产i的占比,允许为负(卖空)
- $c$: 现金权重,正为持有现金,负为借贷
- 权重和满足 $\mathbf{1}^T w + c = 1$
- 组合类型:
- 长仓($w\geq0$)
- 全投资(无现金,$c=0$)
- 现金中性($c=1$,资产净持仓为0)
- 杠杆定义:$L = \|w\|
- 交易定义:
- 交易向量 $z = w - w^{pre}$
- 换手率定义为 $T = \frac{1}{2}\|z\|1$
- 约束和成本:
- 权重限额(资产及现金上下限)
- 杠杆限额 $L \leq L^{tar}$
- 损耗成本:(融券费用、借贷成本,线性)
- 交易成本:基于买卖差价和市价冲击的非线性模型
- 图书馆中实现这些约束和目标的灵活性,实现了对多个实际交易限制的内生考虑。[page::12][page::13][page::14][page::15][page::16][page::17]
3. 回报和风险预测
- 资产收益随机模型:
- $r$为资产累计收益向量,服从 $E[r] = \mu, \text{Cov}(r) = \Sigma$
- 投资组合净收益为 $R = r^T w + r^{rf} c$
- 风险定义:
- 风险用组合收益的标准差 $\sigma = \sqrt{w^T \Sigma w}$
- 优化目标:
- 最大化风险调整收益,或在风险限制下最大化期望收益
- 因子模型:
- 使用隐含因子$F$降低协方差估计复杂度
- 协方差结构为 $ \Sigma = F \Sigma^f F^T + D $,其中$D$为对角矩阵
- 计算复杂度由$O(n^3)$降至$O(n k^2)$,大幅提升
- 预测方法:
- 均值预估困难,各种正则化(如Black-Litterman)、截尾、截断等处理
- 协方差估计采用指数加权移动平均等方法
- 稳健预测:
- 利用最大(最坏)情况估计,添加回报均值区间宽度$\rho$和协方差不确定度参数$\varrho$对模型进行稳健化
- 最坏情况组合均值和风险为:
- $R^{wc} = \bar{R} - \rho^T |w|$
- $(\sigma^{wc})^2 = \sigma^2 + \varrho \left(\sum \sqrt{\Sigma{ii}} |wi| \right)^2$
- 不确定性的惩罚项可解析表达且容易实现
- 这些稳健技术有效缓解由输入估计误差引起的投资组合表现退化。[page::18][page::19][page::20][page::21][page::22][page::23]
4. 凸优化问题的构建与优化方法
- Markowitz的优化问题(加入稳健化、交易、杠杆限制等):
- 目标函数为稳健组合收益减持仓成本和交易成本加权求和
- 各类持仓和交易约束均作为凸约束加以处理
- 目标风险限制为稳健风险约束
- 数据分组:
- 观测与预测数据:历史权重、均值、协方差及持仓和交易成本系数
- 参数选择:风险目标、杠杆限制、优先级参数、估计不确定度等
- 软约束的引入:
- 约束以惩罚项形式软化,避免因约束过硬导致过度交易或不可行解;
- 优先级参数设定可基于拉格朗日乘子经验值,后续通过回测调优
- 非凸约束处理:
- 交易股数需整数、持仓最小值等非凸限制通过启发式“放松-舍入-重新求解”策略解决
- 保持回测阶段凸性以求解速度和稳定性,生产环境加入非凸约束精调
- 回测与参数调优:
- 多期历史数据回测以模拟策略表现
- 利用多指标(收益、波动率、杠杆、换手率)衡量表现
- 参数调优采用循环增减法、网格搜索及自动微分方法以实现性能提升
- 调参目标包括提高样本内Sharpe比率,控制换手率与杠杆等指标在合理范围内
- 整合成Markowitz++方案,保证实用性和性能均衡。[page::23][page::24][page::25][page::26][page::27][page::28][page::29]
---
4. 图表深度解读
表1:不同交易策略的后台测试结果(回测指标)
| 策略 | 年化收益 | 收益波动 | 夏普比率 | 年化换手率 | 平均杠杆 | 最大回撤 |
| -------------- | -------- | -------- | -------- | ---------- | -------- | ---------- |
| 等权重 | 14.1% | 20.1% | 0.66 | 1.2 | 1.0 | 50.5% |
| 基础Markowitz | 3.7% | 14.5% | 0.19 | 1145.2 | 9.3 | 78.9% |
| 有权重限制 | 20.2% | 11.5% | 1.69 | 638.4 | 5.1 | 30.0% |
| 有杠杆限制 | 22.9% | 11.9% | 1.86 | 383.6 | 1.6 | 14.9% |
| 有换手限制 | 19.0% | 11.8% | 1.54 | 26.1 | 6.5 | 25.0% |
| 稳健预测Markowitz | 15.7% | 9.0% | 1.64 | 458.8 | 3.2 | 24.7% |
| Markowitz++ | 38.6% | 8.7% | 4.32 | 28.0 | 1.8 | 7.0% |
| 调参后Markowitz++ | 41.8% | 8.8% | 4.65 | 38.6 | 1.6 | 6.4% |
- 趋势解读:
- 基础Markowitz模型表现极差,巨额杠杆(9.3倍)和换手率(1145倍)导致极差的风险调整收益和最大回撤;
- 任何单一约束(权重限制、杠杆限制、换手限制或稳健处理)明显提升性能,均显著降低杠杆与换手率,提升夏普比率;
- 综合各约束构成的Markowitz++显著超越所有单约束模型,投资性能提升显著,最大回撤降至7%左右,表明风险控制效果优秀;
- 参数调优后进一步提升收益表现和风险调整指标,同时保持较低杠杆换手率。[page::32][page::31]
---
图1:参数调优过程中的优先级参数变化趋势
- 5个关键优先级参数($\gamma^{risk}, \gamma^{hold}, \gamma^{trade}, \gamma^{lev}, \gamma^{turn}$)随时间动态调整。
- 波动期(2008年金融危机、2020年疫情等)风险优先级$\gamma^{risk}$提升,杠杆和换手率优先级相应调整。
- 显示调优具备捕捉市场动态的能力,优化风险收益及交易平衡。[page::35]
---
图2:调优过程中的回测指标变化曲线
- 随回测次数增加,样本内外Sharpe比率提升
- 换手率、杠杆和波动率指标趋于稳定且保持在合理范围
- 表明迭代调优有效改进组合性能,且参数调优具有稳健性和实用性。[page::36]
---
图3:2006-2023年年度回报、波动以及夏普比率对比
- Tuned Markowitz++在不同市场环境下展现更稳定且更优的表现,
- 表现更优(更高收益、较低波动、稳健夏普)
- 反映模型具备广泛适应性及抵御市场非平稳性能力。[page::37]
---
图4 & 表2:算法性能及规模扩展性
- 对74资产组合的每日求解均耗时约23ms(其中63%为求解器时间)
- 通过利用因子模型,将计算复杂度从$O(n^3)$降到$O(n k^2)$
- 表2显示不同资产和因子数量下的求解时间,10,000资产问题低于1秒,50,000资产问题在数秒范围,显示极强的扩展能力。
- 具备广泛大规模金融组合管理应用的可行性。
- 建议极大规模问题考虑一阶方法(如ADMM)进一步提升可扩展性。[page::38][page::39]
---
5. 估值分析
本报告是一篇理论与算法开发性质的金融工程文献,无具体公司估值,但价值体现在:
- 清晰地将投资组合构建转化为可求解的凸优化问题
- 对风险和收益进行稳健估计与约束
- 能效果量化、优化并控制交易成本及杠杆水平
这使得投资组合管理更为科学、高效,为资产估值与风险管理工具提供了坚实技术基础。
---
6. 风险因素评估
风险主要源自:
- 预测均值与协方差估计误差,导致组合选择的敏感性
- 持仓和交易约束可能导致过度交易,产生额外成本
- 市场冲击成本与流动性风险
- 多期交易的贪婪性及模型假设的局限
报告提供的稳健优化和软约束正是针对这些风险的缓解手段,优先级参数调节则用于权衡风险与收益、交易频率。回测过程中的调参过程即为风险管理和调整机制。[page::4][page::7][page::24][page::27]
---
7. 批判性视角与细微差别
- 乐观点:
- 充分利用现代凸优化、范畴语言及计算资源,将经典方法转为可操作工具。
- 回测设计、稳健化参数选取充足体现实用性。
- 潜在局限:
- 横跨20+年且含有幸存者偏差的数据集,虽适合演示,但非真实市况;
- 合成均值预测方法虽体现现实预测不确定性,但无法涵盖全部市场动态;
- 部分非凸约束处理依赖启发式方案,可能对最终效果有影响;
- 算法优异表现依赖于参数精细调优,对非经验用户存在使用门槛。
总体看报告自识局限且采取合理方法对冲,逻辑严密客观。
---
8. 结论性综合
本文系统回顾并拓展了Markowitz投资组合理论,将传统均值—方差框架与现代凸优化、稳健优化彻底融合,形成Markowitz++方法:
- 该方法能处理多样持仓约束,合理引入交易成本并保持问题凸性,确保高效求解。
- 引入预测不确定性模型,通过最大最坏情况估计调整风险及收益预测,增强模型鲁棒性。
- 软约束设计避免硬性限制造成的解不可行或交易过度,提升策略稳定性。
- 丰富的回测结果显示,单纯的基本模型存在极差表现,而Markowitz++及调优版本极大提升收益风控指标,显著减少杠杆和交易频率,实现了稳健且高效的资产配置。
- 算法在大规模问题上的计算效率极高,适合现代量化投资需求。
- CVXPY等域特定语言简洁实现该复杂模型,便于用户快速适配与扩展。
综上,报告既尊重了Markowitz原始理念,也大胆整合现代计算优化工具和金融统计学成果,展示了经典投资组合理论卓越的生命力和现代价值。[page::40][page::5][page::25][page::31][page::32][page::35][page::38][page::39]
---
附录:图表示例
表1:不同交易策略的回测指标对比
| 策略 | 年化收益 | 波动率 | 夏普比率 | 换手率 | 杠杆 | 最大回撤 |
|----------------|---------|--------|----------|--------|------|---------|
| 等权重 | 14.1% | 20.1% | 0.66 | 1.2 | 1.0 | 50.5% |
| 基础Markowitz | 3.7% | 14.5% | 0.19 | 1145.2 | 9.3 | 78.9% |
| 权重限制 | 20.2% | 11.5% | 1.69 | 638.4 | 5.1 | 30.0% |
| 杠杆限制 | 22.9% | 11.9% | 1.86 | 383.6 | 1.6 | 14.9% |
| 换手限制 | 19.0% | 11.8% | 1.54 | 26.1 | 6.5 | 25.0% |
| 稳健型Markowitz| 15.7% | 9.0% | 1.64 | 458.8 | 3.2 | 24.7% |
| Markowitz++ | 38.6% | 8.7% | 4.32 | 28.0 | 1.8 | 7.0% |
| 调参Markowitz++| 41.8% | 8.8% | 4.65 | 38.6 | 1.6 | 6.4% |

图1:调优参数随时间的变化示意图

图2:调优迭代过程中的指标收敛情况

图3:年度收益、波动率与夏普比率对比

图4:单次回测求解器时间分布(74资产)

---
总结
本报告系统阐述了马克维茨投资组合理论自提出70年以来的发展脉络,展现了以优化和控制为核心的现代扩展,实现了从理论到大规模、实用投资策略的飞跃。研究不仅从数学与算法层面做出深入剖析,也通过实证数据强调了调参和稳健优化对风险控制与收益提升的重要性。结合高效计算工具与编程框架,Markowitz++方案有效弥补了经典问题的局限,仍是当前量化投资组合构建的主流和核心方法。
---
[page::0][page::1][page::2][page::3][page::4][page::5][page::6][page::7][page::8][page::9][page::10][page::11][page::12][page::13][page::14][page::15][page::16][page::17][page::18][page::19][page::20][page::21][page::22][page::23][page::24][page::25][page::26][page::27][page::28][page::29][page::30][page::31][page::32][page::33][page::34][page::35][page::36][page::37][page::38][page::39][page::40]