第二章:投资组合理论基础

各位同学,今天我们来聊聊投资组合理论。这部分内容,说白了就是量化投资的“地基”。你想想看,不管你的策略多花哨,最终都要落到“怎么配”这个问题上。我个人习惯把这一章叫做“从拍脑袋到算概率”的转折点。

2.1 Markowitz均值-方差模型:一个天才的直觉

1952年,Harry Markowitz发表了一篇论文,叫《投资组合选择》。这篇论文有多牛?它直接拿了诺贝尔奖。核心思想其实很简单:别把所有鸡蛋放在一个篮子里,而且要知道每个篮子有多晃。

我刚开始做量化时,总觉得“分散投资”就是多买几只股票。后来发现,如果买的都是同一个行业的,那跟没分散一样。Markowitz用数学告诉我们:分散要看资产之间的相关性。

核心公式:

组合预期收益:E(Rp) = Σ wi · E(Ri)

组合方差:σp² = ΣΣ wiwj · Cov(Ri, Rj)

其中 wi 是资产权重,Cov 是协方差。

嗯,这里要注意:方差衡量的是风险,但它是双向的。涨跌都算风险。这在实战中是个坑,我后面会讲。

2.2 有效前沿:那条“最优”的曲线

有了均值-方差模型,我们就可以画出有效前沿。说白了,就是在给定风险下,能拿到的最高收益,或者在给定收益下,能承受的最低风险

我记得第一次画有效前沿时,用的是Excel的规划求解。结果跑出来一条弯弯曲曲的线,当时觉得“哇,这就是圣杯”。后来发现,有效前沿对输入参数极其敏感。你稍微改一下预期收益,整条线就变了。

实战避坑:

我曾经用历史数据算协方差矩阵,然后直接优化。结果回测漂亮,实盘一塌糊涂。为什么?因为历史协方差矩阵是“后视镜”,未来不一定重复。后来我改用收缩估计(Shrinkage)和贝叶斯方法,才稍微稳一点。

有效前沿上的点,都是“帕累托最优”的。你没法在不增加风险的情况下提高收益,也没法在不降低收益的情况下减少风险。但问题是,你该选哪个点?

2.3 夏普比率:一杆秤

夏普比率就是用来回答“选哪个点”的。公式很简单:

夏普比率 = (E(Rp) - Rf) / σp

其中 Rf 是无风险利率,比如国债收益率。

夏普比率衡量的是每承担一单位风险,能多拿多少超额收益。数值越高,说明性价比越好。

我个人习惯用夏普比率来筛选策略。但要注意:夏普比率假设收益是正态分布的。现实中,金融数据有肥尾、有偏斜。我见过一个策略夏普比率高达3.0,结果一次黑天鹅事件直接爆仓。为什么?因为它的收益分布是“尖峰肥尾”的,夏普比率严重高估了它的表现。

重要提醒:

夏普比率不是万能的。它只衡量“波动率”,不衡量“最大回撤”和“尾部风险”。建议搭配最大回撤、索提诺比率(只考虑下行波动)一起看。

2.4 风险平价模型:让每个资产“出一样的力”

Markowitz模型有个问题:它太依赖预期收益的估计。而预期收益很难预测。于是有人想:既然收益猜不准,那我们就只控制风险吧。

风险平价模型的核心思想是:让每个资产对组合总风险的贡献相等。比如你有股票和债券,股票波动大,债券波动小。如果按传统60/40配,股票的风险贡献可能占了90%。风险平价会降低股票权重,提高债券权重,直到两者风险贡献一样。

我记得在2018年,我用风险平价模型做了一个多资产组合。那年股票跌了,但债券涨了,组合整体回撤很小。这就是风险平价的好处:它天然具有“危机对冲”属性。

风险贡献计算公式:

资产i的边际风险贡献:MRCi = (Σ wj · Cov(Ri, Rj)) / σp

资产i的总风险贡献:TRCi = wi · MRCi

风险平价条件:TRC1 = TRC2 = ... = TRCn

但风险平价也有坑。它假设资产间的相关性是稳定的。如果遇到“股债双杀”(比如2022年),风险平价也会失效。所以,没有完美的模型,只有合适的场景。

2.5 本章知识体系图

下面我用一张SVG图来总结本章的核心逻辑。你可以把它当作“思维导图”来看。

投资组合理论基础:知识体系 投资组合理论 Markowitz均值-方差 E(Rp) = Σ wi·E(Ri) 有效前沿 帕累托最优:风险-收益权衡 夏普比率 (E(Rp)-Rf) / σp 风险平价模型 TRC1 = TRC2 = ... = TRCn 核心思想: 分散化 + 风险量化 + 收益最大化 没有完美模型,只有合适场景

2.6 实战中的“坑”与“解”

讲完理论,我分享几个实战中踩过的坑:

  • 协方差矩阵不稳定:我建议用指数加权移动平均(EWMA)或收缩估计,别直接用历史协方差。
  • 预期收益太难猜:我个人习惯用“隐含收益”或“因子模型”来替代主观预测。
  • 约束条件很重要:不加约束的优化,结果往往是满仓一只股票。一定要加权重上下限、行业集中度等约束。
  • 再平衡频率:别太频繁,也别太久。我一般用月度再平衡,配合阈值触发。

一个小技巧:

如果你用Python做优化,推荐用scipy.optimize.minimize,配合SLSQP算法。它支持等式和不等式约束,很适合做投资组合优化。

好了,这一章就到这里。理论是基础,但实战才是检验真理的唯一标准。下一章我们会讲因子模型,那是另一个有趣的话题。


专注资料整理