鹏城的雨季来得猝不及防。
窗外雨点敲打着玻璃,书房里却只有键盘敲击声和偶尔的鼠标点击。林晨盯着屏幕上密密麻麻的Python代码和金融数据图表,眉头时而紧锁,时而舒展。
过去一周,他的智能投资系统在加入了期权策略模块后,确实如回测显示的那样,开始产生稳定的现金流。备兑开仓策略在震荡市中表现稳健,每月能贡献几千元的权利金收入。这笔钱虽然不多,却像及时雨,刚好覆盖了每月的房贷利息部分。
但林晨很快发现了新问题。
“单一策略的风险太集中了”。他对着屏幕自言自语,手指无意识地敲着桌面。
系统现在同时运行着四个策略模块:A股的均值回归策略、商品期货的趋势跟踪、黄金的避险对冲,以及新加入的期权备兑开仓。每个模块都独立运行,各自根据市场信号买卖。回测时表现都不错,但实盘运行两周后,林晨发现了一个致命缺陷——当某个市场出现极端行情时,多个策略可能会同时触发止损。
上周三就是例子。美联储意外鹰派表态,全球市场剧烈波动。他的A股策略和商品策略几乎同时发出卖出信号,导致账户单日回撤达到3%。虽然期权策略的权利金收入弥补了部分损失,但这种“各自为战”的模式显然不够聪明。
“得让这些策略学会配合”。林晨打开浏览器,开始搜索“投资组合优化”。
现代投资组合理论(MPT)——这个由哈里·马科威茨在1952年提出的理论,林晨在大学金融选修课上听过,但当时只觉得是纸上谈兵。如今亲自管理真金白银时,他才意识到这套理论的价值。
“不要把鸡蛋放在同一个篮子里”,这句俗语背后的数学原理,就是马科威茨用均值-方差模型描绘的“有效前沿”。
林晨泡了杯浓茶,下载了几篇经典论文和教科书PDF。接下来的三天,他像回到了考研时期,从早到晚啃着那些充满数学公式的金融工程教材。
“预期收益率……协方差矩阵……夏普比率……”他在笔记本上写写画画,“原来如此,不仅要看单个策略的收益,还要看它们之间的相关性”。
第四天下午,林晨终于搞懂了核心思想:通过数学优化,找到在给定风险水平下收益最高的资产配置比例,或者在给定收益目标下风险最小的组合。
理论懂了,下一步是实践。
他打开Jupyter Notebook,新建了一个Python文件。首先要计算各个策略的历史收益率和它们之间的相关系数矩阵。
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
# 加载四个策略的历史日收益率数据
stock_returns = pd.read_csv(stock_strategy_returns.csv, index_col=0, parse_dates=True)
future_returns = pd.read_csv(future_strategy_returns.csv, index_col=0, parse_dates=True)
gold_returns = pd.read_csv(gold_strategy_returns.csv, index_col=0, parse_dates=True)
option_returns = pd.read_csv(option_strategy_returns.csv, index_col=0, parse_dates=True)
# 对齐时间序列
all_returns = pd.concat([stock_returns, future_returns, gold_returns, option_returns], axis=1, join=inner)
all_returns.columns = [股票策略期货策略黄金策略期权策略]
# 计算相关系数矩阵
correlation_matrix = all_returns.corr
print(策略间相关系数矩阵:)
print(correlation_matrix)
运行结果让林晨眼睛一亮。
策略间相关系数矩阵:
股票策略 期货策略 黄金策略 期权策略
股票策略 1.000000 0. -0. 0.0
期货策略 0. 1.000000 0.0 0.
黄金策略 -0. 0.0 1.000000 -0.0
>>>点击查看《AI时代:码农的涅盘重生》最新章节