第二章 金融基础回顾:投资组合理论、马科维茨模型、有效前沿、夏普比率
各位同学,咱们今天聊点硬核的。做量化投资,尤其是强化学习做资产配置,有些金融基础是绕不过去的。说白了,就是马科维茨那套东西。我当年刚入行时也觉得这理论太老了,后来在实盘里摔过跟头,才明白经典之所以是经典,是有道理的。
2.1 投资组合理论:别把鸡蛋放一个篮子里
这个道理其实很朴素。你想想看,如果你把所有钱都买一只股票,那这只股票跌停,你就直接吃面了。投资组合理论的核心,就是通过分散投资来降低风险。
我个人习惯把风险拆成两部分看:
- 系统性风险:市场本身的风险,比如经济危机、政策变化。这个你分散不了,买啥都躲不掉。
- 非系统性风险:个股或行业特有的风险,比如公司暴雷、行业利空。这个可以通过分散投资来消除。
嗯,这里要注意:分散不是随便买几个股票就行。你得买相关性低的资产。比如股票和债券,通常一个涨一个跌,组合起来就平滑多了。我在项目中遇到过有人买了十几只银行股,以为分散了,结果一纸监管文件下来,全绿了。那叫伪分散。
2.2 马科维茨模型:数学化的资产配置
马科维茨在1952年搞了个均值-方差模型,把投资组合问题变成了一个数学优化问题。说白了,就是给定一个预期收益,找到风险最小的组合;或者给定一个风险容忍度,找到收益最大的组合。
模型长这样:
目标:最小化组合方差 σ²_p = w^T Σ w
约束:组合预期收益 μ_p = w^T μ = μ_target
权重之和为1:∑ w_i = 1
允许做空时:w_i 可正可负
不允许做空时:w_i ≥ 0
其中 w 是权重向量,Σ 是协方差矩阵,μ 是预期收益向量。这个优化问题有解析解,用拉格朗日乘子法就能搞定。我当年手推过这个公式,推完感觉数学没白学。
核心思想:马科维茨模型告诉我们,最优组合不是找收益最高的资产,而是找收益与风险之间性价比最高的那个点。
2.3 有效前沿:那条漂亮的曲线
把所有可能的组合画在风险-收益图上,你会得到一个类似子弹形状的区域。这个区域的左上边界,就是有效前沿。它代表的是:在给定风险下,能获得的最高收益;或者在给定收益下,能承受的最低风险。
我习惯用SVG画个图来理解:
图上那条红色的虚线就是有效前沿。左下角那个绿点是全局最小方差组合,是所有组合里风险最小的。越往右上走,收益越高,但风险也越大。你想想看,理性的投资者只会选有效前沿上的点,不会选里面的点——因为里面的点要么收益更低,要么风险更高。
实战小技巧:在强化学习里,我们通常把有效前沿作为基准。如果模型学出来的组合落在有效前沿下方,说明还有优化空间。我曾经用这个指标来评估RL策略的好坏,效果不错。
2.4 夏普比率:性价比的度量
有效前沿上的点那么多,选哪个好?这时候就需要一个指标来衡量性价比。夏普比率就是干这个的。
公式很简单:
夏普比率 = (组合预期收益 - 无风险利率) / 组合标准差
说白了,就是每承担一单位风险,能获得多少超额收益。夏普比率越高,说明这个组合的性价比越好。
举个例子:
| 组合 | 预期收益 | 标准差 | 无风险利率 | 夏普比率 |
|---|---|---|---|---|
| 组合A | 12% | 15% | 3% | 0.60 |
| 组合B | 10% | 8% | 3% | 0.88 |
你看,组合A收益更高,但夏普比率反而低。因为它的风险太大了。组合B虽然收益低一点,但风险控制得好,性价比更高。我个人习惯在实盘里优先选夏普比率高的组合,而不是单纯追高收益。
避坑指南:我曾经犯过一个错误——直接用历史数据算夏普比率,然后回测效果很好,实盘却翻车了。为什么?因为历史收益不代表未来收益,历史波动率也不代表未来波动率。夏普比率是个后视镜指标,用它做决策时要小心。
2.5 从马科维茨到强化学习
你可能会问:我们学强化学习的,为啥要回顾这些经典理论?
原因有三:
- 基准对比:马科维茨模型是个很好的基准。RL模型学出来的策略,至少要比这个经典模型强,否则就没意义了。
- 状态设计:协方差矩阵、夏普比率这些指标,都可以作为RL状态的一部分。我习惯把滚动窗口的夏普比率作为特征输入。
- 奖励函数:夏普比率本身就可以作为奖励函数。让RL模型去最大化夏普比率,比单纯最大化收益要稳健得多。
嗯,这里要提醒一下:马科维茨模型假设收益是正态分布的,但真实市场有肥尾效应。所以RL模型在处理极端行情时,理论上应该比马科维茨更灵活。这也是我们做这个课程的意义所在。
一句话总结:马科维茨给了我们一个静态的最优解,而强化学习要学的是动态调整的能力。两者结合,才是资产配置的正确打开方式。
好了,金融基础就回顾到这里。这些概念在后面章节会反复用到,尤其是做RL环境设计的时候。建议你把夏普比率的计算代码提前写好,后面直接复用。