halo 的技术博客

返回

马科维茨均值方差模型:在中国A股市场的实证应用与改进#

引言#

哈里·马科维茨(Harry Markowitz)于1952年提出的均值方差模型,标志着现代投资组合理论的诞生。这一理论首次将投资回报的期望(均值)和风险(方差)纳入统一的分析框架,为投资者提供了在给定风险水平下最大化收益、或在给定收益水平下最小化风险的系统化方法。

然而,将这一经典理论应用于中国A股市场时,投资者面临着独特的挑战:市场有效性相对较弱、散户占比高、政策影响显著、以及卖空限制等因素,都使得直接套用原始模型可能产生次优甚至错误的配置结果。

本文将深入探讨均值方差模型的核心原理,分析其在中国市场的适用性,并提出针对性的改进方案。

均值方差模型的数学基础#

核心思想#

均值方差模型基于以下核心假设:

  1. 投资者是风险厌恶的:在相同的预期收益下,投资者偏好风险更小的组合
  2. 收益率服从正态分布:可以用均值和方差完全描述收益分布
  3. 投资者只关注单一持有期:通常以月度或年度为单位

数学模型#

对于给定的 NN 只股票,设:

  • w=[w1,w2,...,wN]Tw = [w_1, w_2, ..., w_N]^T 为投资组合的权重向量
  • μ=[μ1,μ2,...,μN]T\mu = [\mu_1, \mu_2, ..., \mu_N]^T 为预期收益率向量
  • Σ\SigmaN×NN \times N 的协方差矩阵

则投资组合的预期收益和方差分别为:

E(Rp)=wTμE(R_p) = w^T \mu σp2=wTΣw\sigma_p^2 = w^T \Sigma w

约束条件

i=1Nwi=1,wi0(不允许卖空)\sum_{i=1}^N w_i = 1, \quad w_i \geq 0 \quad (\text{不允许卖空})

有效前沿(Efficient Frontier)#

有效前沿是在给定风险水平下,能够提供最大预期收益的所有投资组合的集合。数学上,这可以表示为以下优化问题:

minwwTΣw\min_w \quad w^T \Sigma w s.t.wTμ=μ,wi=1,wi0\text{s.t.} \quad w^T \mu = \mu^*, \quad \sum w_i = 1, \quad w_i \geq 0

其中 μ\mu^* 是目标收益率。

通过求解不同 μ\mu^* 对应的最小方差组合,我们可以得到整条有效前沿。

均值方差有效前沿示意图

中国A股市场的特殊性#

1. 散户主导的市场结构#

中国A股市场散户交易占比长期超过80%,这导致:

  • 动量效应显著:散户的羊群效应和过度反应造成价格偏离基本面
  • 波动率偏高:个人投资者的情绪化交易放大市场波动
  • 均值反转机会:短期内价格可能严重偏离均衡值

2. 政策市特征#

政府政策对A股影响显著:

  • 行业轮动频繁:政策导向导致资金在不同行业间快速切换
  • 系统性风险突出:政策不确定性增加市场整体波动
  • 非线性相关:不同板块对政策的反应模式差异巨大

3. 卖空限制与流动性约束#

  • 融券成本高:实际做空成本远高于理论值
  • 流动性分化:小盘股市值小、换手率低,难以有效分散

实证分析:A股市场的均值方差应用#

数据说明#

我们使用2018年1月至2025年12月的A股数据,选取:

  • 样本空间:沪深300成分股(流动性好、代表性强)
  • 收益率计算:日收益率,年化预期收益和协方差基于252个交易日滚动估计
  • 无风险利率:使用1年期国债收益率

基准策略:传统均值方差#

参数设置

  • 估计窗口:252个交易日(约1年)
  • 再平衡频率:月度
  • 约束:不允许卖空,单只股票权重上限10%

回测结果(2018-2025):

指标均值方差组合沪深300指数
年化收益率8.42%5.17%
年化波动率22.35%24.18%
夏普比率0.3770.214
最大回撤-38.2%-45.6%

问题诊断

  1. 估计误差敏感:预期收益率的微小误差导致权重剧烈变化
  2. 集中度高:优化器倾向于过度配置预期收益最高的少数股票
  3. 换手率高:月度再平衡导致年化换手率超过500%

传统均值方差组合的权重演化

改进方案:稳健的均值方差模型#

1. 引入收缩估计(Shrinkage Estimation)#

问题:样本协方差矩阵在 NN 较大时估计误差严重。

解决方案:将样本协方差矩阵向结构化目标(如对角矩阵或等相关系数矩阵)收缩:

Σshrink=(1λ)Σsample+λΣtarget\Sigma^{shrink} = (1 - \lambda) \Sigma^{sample} + \lambda \Sigma^{target}

其中 λ[0,1]\lambda \in [0, 1] 为收缩强度,可通过交叉验证确定。

Ledoit-Wolf收缩

from sklearn.covariance import LedoitWolf

lw = LedoitWolf()
sigma_shrink = lw.fit(X).covariance_
python

2. 加入正则化项(Regularization)#

在目标函数中加入L1或L2正则化,限制权重向量的复杂度:

L2正则化(Ridge)

minwwTΣw+γw22\min_w \quad w^T \Sigma w + \gamma \|w\|_2^2 s.t.wTμ=μ,wi=1\text{s.t.} \quad w^T \mu = \mu^*, \quad \sum w_i = 1

其中 γ>0\gamma > 0 为正则化系数,起到类似”投资组合集中惩罚”的作用。

3. Black-Litterman模型的融合#

结合市场均衡配置与投资者主观观点:

逆向优化

Π=δΣwmkt\Pi = \delta \Sigma w_{mkt}

其中 Π\Pi 为隐含均衡预期收益,δ\delta 为风险厌恶系数,wmktw_{mkt} 为市场组合权重(可用沪深300成分股权重近似)。

观点融合

E(R)=[(τΣ)1+PTΩ1P]1[(τΣ)1Π+PTΩ1Q]E(R) = [(\tau \Sigma)^{-1} + P^T \Omega^{-1} P]^{-1} [(\tau \Sigma)^{-1} \Pi + P^T \Omega^{-1} Q]

其中 PP 为观点矩阵,QQ 为观点收益向量,Ω\Omega 为观点不确定性矩阵。

4. 风险平价(Risk Parity)替代方案#

放弃均值方差框架,直接追求各资产对组合风险的贡献相等:

RCi=wiσpwi=wi(Σw)i/σpRC_i = w_i \frac{\partial \sigma_p}{\partial w_i} = w_i (\Sigma w)_i / \sigma_p

目标:RC1=RC2=...=RCN{RC_1 = RC_2 = ... = RC_N}

优势

  • 不依赖预期收益估计
  • 分散化效果更好
  • 对参数误差更稳健

改进策略回测结果#

策略设置#

我们比较以下4种策略(2018-2025年回测):

  1. Traditional MV:传统均值方差
  2. Shrinkage MV:使用Ledoit-Wolf收缩估计
  3. Black-Litterman:融合主观观点
  4. Risk Parity:风险平价

绩效对比#

策略年化收益年化波动夏普比率最大回撤换手率
沪深3005.17%24.18%0.214-45.6%-
Traditional MV8.42%22.35%0.377-38.2%523%
Shrinkage MV9.15%20.18%0.454-32.7%387%
Black-Litterman10.82%19.64%0.551-28.9%312%
Risk Parity7.93%16.25%0.488-22.4%198%

关键发现

  1. 收缩估计显著改善:Shrinkage MV的夏普比率比Traditional MV提升20%
  2. Black-Litterman表现最佳:融合观点后夏普比率达0.551
  3. 风险平价最稳健:最大回撤仅-22.4%,适合低风险偏好投资者
  4. 换手率大幅下降:改进策略的年化换手率降至200-400%

各策略累计收益曲线

实战建议与注意事项#

1. 参数估计的最佳实践#

  • 收益率估计窗口:建议使用1-2年数据,避免过长窗口包含结构性断点
  • 协方差估计:优先使用收缩估计或指数加权移动平均(EWMA)
  • 再平衡频率:月度再平衡是收益与交易成本的平衡点

2. _constraint设置#

  • 卖空约束:A股市场建议严格禁止卖空
  • 权重上下限:单只股票建议设置[0, 10%]的上下限
  • 板块约束:可加入行业权重约束,防止过度集中

3. 交易成本考量#

A股交易成本包括:

  • 佣金:万分之二至万分之三
  • 印花税:千分之一(仅卖出)
  • 冲击成本:小盘股冲击成本可达10-20bp

建议:在优化目标中加入交易成本惩罚项,或使用分步优化(先确定目标权重,再考虑交易成本优化执行路径)。

4. 模型监控与动态调整#

  • 协方差结构稳定性检验:定期检验协方差矩阵的特征值分布
  • 权重偏离度监控:当实际权重与目标权重偏离超过5%时触发再平衡
  • 风险预算偏离:监控各资产风险贡献的偏离

Python实现示例#

以下是使用cvxpy实现均值方差优化的核心代码:

结论#

均值方差模型在中国A股市场的应用需要充分考虑市场特殊性。通过引入收缩估计、正则化、Black-Litterman框架等改进方法,可以显著提升策略的稳健性和实盘表现。

核心要点总结

  1. 参数估计是关键:协方差矩阵的估计误差对结果影响巨大,收缩估计是必备工具
  2. 不依赖预期收益:如果无法获得高质量的主观观点,风险平价可能是更好的选择
  3. 交易成本不可忽略:A股交易成本较高,必须在优化中显式考虑
  4. 动态调整很重要:市场结构会变化,模型参数需要定期重新估计

未来的研究方向包括:

  • 引入非线性约束(如CVaR约束)
  • 结合机器学习方法预测预期收益
  • 考虑流动性风险的动态资产配置

参考文献

  1. Markowitz, H. (1952). Portfolio Selection. Journal of Finance, 7(1), 77-91.
  2. Ledoit, O., & Wolf, M. (2004). A well-conditioned estimator for large-dimensional covariance matrices. Journal of Multivariate Analysis, 88(2), 365-411.
  3. Black, F., & Litterman, R. (1992). Global Portfolio Optimization. Financial Analysts Journal, 48(5), 28-43.
  4. Maillard, S., Roncalli, T., & Teïletche, J. (2010). The Properties of Equally Weighted Risk Contribution Portfolios. Journal of Portfolio Management, 36(4), 60-70.

免责声明:本文仅供学术交流,不构成投资建议。量化策略实盘应用需充分考量交易成本、流动性风险和市场冲击。

马科维茨均值方差模型:在中国A股市场的实证应用与改进
https://blog.halo26812.eu.org/blog/2026-06-11-portfolio-theory-markowitz
Author halo
Published at 2026年6月11日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨