一、投资组合理论基础:从马科维茨到CAPM
各位同学,今天我们来聊聊投资组合理论的基石。说实话,这部分内容我当年学的时候也觉得有点枯燥,但后来在实盘交易中,这些理论帮我避开了不少坑。
现代投资组合理论(MPT)是哈里·马科维茨在1952年提出的。他因此拿了诺贝尔奖。为什么?因为他用数学解决了「不要把鸡蛋放在一个篮子里」这个古老问题。
1.1 风险与收益的量化
先搞清楚两个基本概念:风险和收益怎么量化。
收益率的计算,我个人习惯用对数收益率:
import numpy as np
# 简单收益率
simple_return = (price_t - price_t_1) / price_t_1
# 对数收益率(我更喜欢这个)
log_return = np.log(price_t / price_t_1)
为什么用对数收益率?因为它在时间上可加,而且近似正态分布。嗯,这里要注意,实际金融数据有肥尾特征,但那是后话了。
风险的度量,最常用的是标准差(波动率):
# 年化波动率
daily_returns = np.diff(prices) / prices[:-1]
annual_vol = np.std(daily_returns) * np.sqrt(252)
我在项目中遇到过一个问题:用30天滚动窗口算波动率,结果遇到2020年3月市场暴跌,波动率瞬间飙升。后来我改用EWMA(指数加权移动平均)模型,效果好了很多。
核心公式:
组合预期收益:E(Rp) = Σ wi × E(Ri)
组合方差:σ²p = ΣΣ wi × wj × σij
其中wi是权重,σij是协方差
1.2 有效前沿:最优组合的集合
有效前沿是什么?说白了,就是给定风险水平下,能拿到的最高收益。
你想想看,市场上那么多资产,怎么配比最好?马科维茨给出了答案:
- 计算所有资产的预期收益、方差、协方差
- 求解优化问题:最小化方差,给定目标收益
- 得到一系列最优组合,连成一条曲线
这条曲线就是有效前沿。曲线上的每个点,都是一个「帕累托最优」组合。
实战经验:我曾经用50只A股做有效前沿,结果发现前沿上的组合权重变化剧烈。后来加了约束条件(单只股票权重不超过5%),组合才变得可操作。
下面我用SVG画一张图,展示本章的知识体系:
1.3 资本资产定价模型(CAPM)
CAPM是夏普等人在MPT基础上发展出来的。它回答了一个问题:单个资产的预期收益应该怎么定?
公式很简单:
E(Ri) = Rf + βi × [E(Rm) - Rf]
其中:
- Rf:无风险利率(比如国债收益率)
- βi:资产i的系统性风险
- E(Rm):市场组合预期收益
β系数衡量的是资产对市场波动的敏感度。β=1,跟市场同涨同跌;β>1,波动比市场大;β<1,波动比市场小。
避坑指南:我曾经用CAPM给一只小盘股定价,结果β算出来只有0.6,但实际波动大得吓人。后来发现,CAPM只考虑系统性风险,非系统性风险它不管。小盘股的非系统性风险占比很高,所以CAPM会低估风险。
1.4 风险与收益的量化实战
讲完理论,咱们来点实际的。下面是我常用的风险收益分析框架:
| 指标 | 公式 | 说明 |
|---|---|---|
| 夏普比率 | (Rp - Rf) / σp | 每单位风险获得的超额收益 |
| 索提诺比率 | (Rp - Rf) / σd | 只考虑下行风险,更实用 |
| 最大回撤 | max(峰值 - 谷值) / 峰值 | 历史最大亏损幅度 |
| 信息比率 | (Rp - Rb) / TE | 相对于基准的超额收益 |
我个人最看重的是索提诺比率。为什么?因为投资者真正怕的是亏损,不是波动。上涨的波动是好事,下跌的波动才是风险。
def calculate_sortino(returns, rf=0.03, target=0):
"""
计算索提诺比率
returns: 日收益率序列
rf: 无风险利率(年化)
target: 最低可接受收益率
"""
excess_returns = returns - target
downside_returns = excess_returns[excess_returns < 0]
downside_std = np.std(downside_returns) * np.sqrt(252)
annual_return = np.mean(returns) * 252
sortino = (annual_return - rf) / downside_std
return sortino
一个小技巧:计算下行标准差时,我习惯用日数据,然后年化。这样能捕捉到更精细的风险特征。用月数据的话,有些日内的大跌会被平滑掉。
1.5 理论在实战中的局限
说了这么多理论,我得泼点冷水。MPT和CAPM在实际应用中有几个硬伤:
- 假设太强:投资者理性、市场无摩擦、收益率正态分布——现实中都不成立
- 参数不稳定:协方差矩阵随时间变化,历史数据不一定能预测未来
- 尾部风险:黑天鹅事件(比如2008年、2020年)在正态分布假设下几乎不可能发生,但现实中发生了
我记得2015年A股股灾时,很多用MPT做出来的组合一天就跌了10%以上。为什么?因为模型假设资产间相关性稳定,但危机时所有资产的相关性都趋向1,分散化失效了。
所以,我的建议是:把这些理论当作分析框架,而不是教条。用它们来理解风险收益的底层逻辑,但做决策时一定要结合市场经验和常识。