Zhang, Zohren & Roberts (2021) — 深度学习直接优化组合

Zihao Zhang · Stefan Zohren · Stephen Roberts(Oxford-Man Institute of Quantitative Finance, 牛津大学)· arXiv:2005.13665(2021-01-26)· 12 页

本次归档: raw/papers/202101-deep-learning-for-portfolio-optimization/ (paper.pdf 1.45 MB + extracted.md)

一句话核心

这篇论文做了一件在组合优化里很少见的事:完全不预测预期收益 \mu,而是让一个 LSTM 直接输出组合权重,用梯度上升把训练期内的 Sharpe 比率推到最大。作者称之为 end-to-end 训练:输入是四个指数 ETF 的过去 50 天价格与收益,输出是四个权重,中间没有任何 \mu 或 \Sigma 的估计步骤。交易标的是 VTI / AGG / DBC / VIX 四只 ETF,不是个股。测试期 2011 年至 2020 年 4 月底(含 2020 年一季度崩盘),在含交易成本的设定下 DLS 模型的 Sharpe 与 Sortino 均高于四种固定再平衡策略、均值-方差、最大分散化与随机组合理论基准。

问题与关键结构

经典做法是两步:先预测 \hat\mu,再解均值-方差。论文指出这一步的损失函数(MSE)与最终目标(组合的风险调整收益)不对齐——预测误差被一视同仁地最小化,但对组合目标的贡献各不相同。

模型结构只有三块:

  1. 输入层:把 n 个资产的 k 天价格与收益拼接,输入维度 (k, 2\times n)。论文取 k=50、n=4,共 400 个特征。
  2. 隐藏层:单层 LSTM,64 个单元。作者比较过 FCN / CNN / LSTM——FCN 过拟合严重(每个特征各配一组参数),CNN 用大滤波器平滑而欠拟合("overfilter"),LSTM 泛化最好。
  3. 输出层:softmax,把权重限制在 w_i\ge 0、\sum_i w_i=1 的单纯形内。

优化目标(论文 Eq. 2):

L_T=\frac{E(R_{p,t})}{\sqrt{E(R_{p,t}^2)-E(R_{p,t})^2}},\qquad R_{p,t}=\sum_{i=1}^n w_{i,t-1}\,r_{i,t}

参数更新就是朴素的梯度上升:\theta_{\text{new}}:=\theta_{\text{old}}+\alpha\,\partial L_T/\partial\theta。用 Adam 优化器,mini-batch 64,训练至多 100 epoch,10% 数据作验证集。

关键发现

为什么选 ETF 而不选个股

论文 §1 的论证:不同资产类别的指数之间相关性稳健甚至为负,而同一资产类别内部高度正相关——美股超过 75% 的股票与市场指数高度相关,加进组合对分散化贡献很小。所以直接交易四类指数 ETF,把可选资产池从数千只压缩到四只,目标是"每单位风险的收益",更高的收益诉求交给波动率缩放去实现。

实证结果(Table 1,年化)

三种设定下的 Sharpe:

方法 无波动率缩放 C=0.01% 缩放 \sigma_{\text{tgt}}=0.10, C=0.01% 缩放 C=0.1%
Allocation 1(各 25%) 0.929 1.526 1.274
Allocation 2(股 50/债 10/商 20/VIX 20) 1.173 1.146 0.986
Allocation 3(股 10/债 50/商 20/VIX 20) 0.890 1.383 1.110
Allocation 4(股 40/债 40/商 10/VIX 10) 1.228 1.579 1.299
MV(均值-方差,50 日滚动) 0.759 1.120 0.191
MD(最大分散化) 0.882 1.484 0.899
DWP(随机组合理论) 0.493 0.818 -0.753
DLS(本文) 1.858 1.962 1.403

波动率缩放设定下 DLS 的 E(R) = 0.206、Std = 0.105、DD = 0.062、Sortino = 3.322、MDD = 0.123。

交易成本敏感性

成本从 1bp 提到 10bp,DLS 的 Sharpe 从 1.962 降到 1.403,但仍高于所有基准;DWP 则从 0.818 掉到 -0.753(转负)。论文用箱线图解释:DLS 的实现收益更高,但因每日调仓(turnover 远高)累积成本也更大;在高成本档位,固定再平衡策略的相对优势上升,Allocation 3/4 与 DLS 接近。

2020 年一季度崩盘中的行为

2 月初股市小跌后,模型几乎清空股票、几乎全持债券;2 月 24 日崩盘开始时持仓集中在债券指数。债券在 3 月中旬也下跌,但模型未大幅调仓,因波动率飙升导致缩放后的债券仓位自动下降,回撤因此可控。

敏感性分析

400 个特征的时变归一化敏感度显示:最近的观测点权重最高,越久远越低——与时间序列的直觉一致,作者据此提出可用更短的回看窗口。

重要 caveat

  • 标的池只有 4 只 ETF,且是美股指数级产品。这不是个股选股,结论无法直接外推到几百只股票的横截面。
  • 测试期 2011–2020.4 约九年,且每两年重训一次模型(用当时全部可用数据),样本量偏小。
  • 成本模型是线性的(按成交额变动的比例费率 C),未建模市场冲击与滑点。
  • 波动率估计是滞后的(50 日指数加权标准差),论文自己在结论里承认它未必代表当前波动率,把"让网络顺便预测未来波动率"列为未来工作。
  • 作者明说保持网络简单以展示管线本身有效,不做超参精细调优——所以表 1 的绝对数值不能当作该架构的上限。
  • DLS 与 Allocation 4 在无缩放档的 Sortino 上互有胜负(DLS 3.135 vs Allocation 4 2.932),优势幅度依设定而变。

对 quant wiki 的意义

  1. 这是 Predict-then-Optimize 谱系里最彻底的一端:DFL 类工作仍然要预测 \mu,只是改梯度;Zhang 等 2021 连 \mu 都不预测,直接把决策目标本身当损失函数。详见 concepts/models-theory/深度学习直接优化组合 (End-to-End Deep Learning for Portfolio Optimization)。
  2. 与 Decision-Focused Learning for MVO 的对照很清楚:DFL 的梯度被 \Sigma^{-1} 倾斜,Zhang 等的梯度里根本没有 \Sigma,只有实现收益的均值与标准差。
  3. 论文对波动率缩放的处理(用滞后的 50 日波动率把组合调到目标波动)是 波动率管理 的实盘化写法,值得作为"深度学习组合 + 风险预算"的参考实现。
  4. 三位作者此前做的 DeepLOB 属于市场微观结构,这篇属于资产配置——同一组人把"端到端"的思路从订单簿搬到了组合层。

相关概念