1. 投资组合理论回顾:从马科维茨到多目标优化
大家好,我是你们的老朋友。今天咱们聊聊投资组合理论的演进史。说实话,这个领域我摸爬滚打了十几年,从最初用Excel拉马科维茨模型,到现在用多目标优化跑上千个资产,感触挺深的。
你想想看,投资组合理论说白了就一个问题:钱该怎么分配? 这个问题看似简单,但背后藏着大学问。从1952年马科维茨那篇划时代的论文开始,到如今的多目标优化,这条路走了七十多年。
1.1 马科维茨均值-方差模型:一切的起点
1952年,哈里·马科维茨发表了《投资组合选择》。这篇论文有多重要?这么说吧,它直接拿了诺贝尔奖。我当年读研时第一次看到这个模型,心里想的是:「这不就是高中数学吗?」后来真刀真枪干起来才发现,嗯,我太年轻了。
马科维茨的核心思想其实很朴素:不要把所有鸡蛋放在一个篮子里。但他用数学把这句话量化了——用期望收益率代表收益,用方差代表风险。
核心公式:
min σ²_p = w^T Σ w
s.t. μ_p = w^T μ = μ_target
∑w_i = 1
其中 w 是权重向量,Σ 是协方差矩阵,μ 是期望收益率向量。
这个模型能画出那条著名的有效前沿——就是那条弯弯的曲线。曲线上每个点都代表一个「给定风险下收益最大」的组合。我在2015年给一家私募做策略时,就用这个模型跑了第一版。结果呢?回测漂亮,实盘拉胯。为什么?后面会讲。
1.2 有效前沿与资本市场线
有了有效前沿,威廉·夏普又加了无风险资产,搞出了资本市场线(CML)。这条线从无风险利率出发,与有效前沿相切。切点就是市场组合。
我个人习惯把有效前沿想象成一条「好组合的边界」。边界以内的组合,要么收益不够,要么风险太高。边界上的组合,才是我们该考虑的。
实战小技巧: 我在做组合优化时,从来不会只取一个点。我会在有效前沿上均匀取20-30个点,然后结合实际情况筛选。为什么?因为理论上的最优解,往往在实盘中不堪一击。
1.3 均值-方差模型的三大硬伤
好了,现在我要泼冷水了。马科维茨模型很美,但用起来问题一堆。我踩过的坑,今天全抖出来。
- 输入参数极度敏感——期望收益率稍微变0.1%,最优权重可能天翻地覆。我2017年做过一个测试:用过去3年的数据估计参数,优化出来的组合跟用过去1年数据的结果,重合度不到30%。
- 方差不是好风险度量——它把上涨和下跌一视同仁。但投资者怕的是下跌,不是上涨啊!你想想看,一个组合年化收益20%,最大回撤5%,另一个年化收益20%,最大回撤30%,方差可能差不多,但你能说它们风险一样吗?
- 只考虑两个目标——收益和风险。但现实中,我们还要考虑流动性、换手率、行业集中度、ESG评分等等。两个目标?太少了。
避坑指南: 我曾经用纯均值-方差模型给一个客户做FOF组合,结果优化出来的权重里,某只小盘基金占了40%。为什么?因为历史回测中它收益高、波动低。但实盘时流动性不足,一赎回就砸盘。从那以后,我所有模型都加了流动性约束。
1.4 从单目标到多目标:为什么必须进化?
传统优化是单目标的——要么最大化收益(给定风险),要么最小化风险(给定收益)。但现实世界是多目标的。
举个例子。假设你要设计一个投资组合,要求:
- 年化收益 > 15%
- 最大回撤 < 10%
- 夏普比率 > 1.5
- 换手率 < 200%(年化)
- 单一行业暴露 < 20%
这是5个目标。用传统方法怎么做?加权求和?权重怎么定?我见过有人拍脑袋定权重,结果优化出来全是坑。
多目标优化就不一样了。它不追求「唯一最优解」,而是找出一组帕累托最优解——就是那些「无法在不损害一个目标的前提下改善另一个目标」的解。
帕累托最优的直观理解: 你有一堆组合,A组合收益比B高,但回撤也比B大。这时候你没法说A比B好,或者B比A好。它们都是帕累托最优的。你要做的,是根据自己的偏好从中选一个。
1.5 现代投资组合理论的演进脉络
我把这个演进过程画了张图,方便大家理解。
从这张图能看出来,理论一直在往更复杂、更贴近现实的方向走。马科维茨是开山鼻祖,但后来的学者们不断给它打补丁:夏普加了无风险资产,罗斯用多因子替代了市场组合,布莱克-利特曼解决了参数估计问题...
到了现在,我们面对的是高维、非线性、多约束的优化问题。传统方法搞不定了,必须上多目标进化算法。
1.6 我的一点感悟
做了这么多年量化,我最大的体会是:模型越复杂,越要警惕过拟合。马科维茨模型虽然简单,但它的思想内核——分散化、风险收益权衡——永远不会过时。
多目标优化不是要推翻马科维茨,而是在它的基础上做扩展。你想想看,如果连均值-方差都搞不明白,直接上NSGA-II,那跟空中楼阁有什么区别?
给新手的建议: 先用手算一个3只股票的均值-方差模型,理解有效前沿是怎么来的。然后再去学多目标优化。地基打不牢,楼盖得再高也是危房。
好了,这一章就到这里。下一章我们会深入多目标优化的数学框架,包括帕累托支配、拥挤距离这些核心概念。到时候我会用实际代码演示,保证让你看得过瘾。
公众号:蓝海资料掘金营,微信deep3321