基于多模态深度强化学习的投资组合优化
简介
本文开发强化学习代理以支持投资组合管理和优化,结合股票定价数据和替代数据(如SEC文件和新闻头条)。强化学习适合在线环境,能够实时反馈和响应,提升决策效果。替代数据编码进状态矩阵,帮助代理更好地调整投资组合权重。强化学习模型基于马尔可夫决策过程,能够灵活定义不同的奖励函数以满足投资者偏好。主要算法为深度强化学习,利用深度神经网络学习最优策略,目标是最大化未来预期奖励。强调在状态空间、奖励函数和深度学习模型训练系统上进行优化。
相关工作
论文[1] 通过回顾近期收益和市场指标,使用简单算法选择投资组合权重,以最大化差异化夏普比率,并与标准均值-方差优化进行比较。论文[2] 将强化学习应用于技术指标和股票协方差矩阵,使用3D卷积和张量分解提取特征,采用DDPG方法训练神经网络策略并进行回测。论文[3] 通过LSTM预测价格变动,结合新闻嵌入和HAN进行状态空间增强,使用DPG策略训练并与多个基准投资组合比较,解决环境不确定性和稀疏性问题。论文[4] 讨论如何在RL模型中合理纳入交易成本,并提供相关实现的GitHub。论文[5] 探索新闻情绪指标,应用多种学习排序算法构建表现强劲的自动交易系统。论文[6] 利用多智能体强化学习,通过惩罚智能体间的相关性,生成多个正交高效投资组合。
数据
收集、存储和预处理价格数据及替代数据用于交易策略。使用WRDS的CRSP数据,下载2010-2020年S&P100指数股票的基本价格数据(收盘价、最高价、最低价、成交量等)。下载S&P500的市值加权和等权重指数数据作为基准比较。强化学习代理将使用历史公司价格数据,反映市场对公司的价值。计划使用新闻标题和SEC文件作为替代数据,增强决策过程和投资组合策略。
SEC备案数据
SEC文件提供公司财务健康和外部风险因素的信息,按统一格式定期提交。这些文件可为公司运营提供未来展望,可能未立即反映在股价中。使用Loughran-McDonald情感词典计算情感分数,并采用指数衰减法向未来日期前推。从EDGAR数据库下载S&P100过去30年的10-K和10-Q文件,存储约115GB。解析器提取10-K的第7/7A项和10-Q的第2项,重点在管理层讨论和分析(MD&A)部分,涉及市场风险及其管理。
SEC数据处理和创建张量
解析和清理SEC文件HTML文档以提取原始文本,使用正则表达式提取10-Q中的Item 1A、7/7A和Item 2。构建数据框,包含公司代码、文件日期、提取的部分名称和文本。尝试使用FinBERT情感评分,但因数据集规模和格式问题,采用修改后的方法创建情感张量。使用Loughran-McDonald情感字典提取正面、负面和中性词,计算其比例并应用于情感概率。SEC文件按年度或季度记录,存在报告日期间隔,使用指数衰减填补这些间隔,γ参数调优至≈0.8。
SEC文件数据集统计
数据集包含99个S&P 100成分股的9000多份SEC文件,使用的子集约6100份。每年仅有4份文件,采用衰减前向填充法填补缺失日期。由于公司增减及新上市公司,文件数量不均。情感评分分布呈现明显的正偏态,表明公司倾向于发布积极的业绩和前景信息。在金融危机或市场不佳时,部分公司的情感评分出现下降,例如2013年某些科技公司。
新闻标题数据
公司特定新闻反映投资者情绪变化,影响股价。正面新闻(如收购)可推高股价,负面新闻(如领导变动)可能导致股价下跌。实时情绪信息有助于交易代理超越基准表现。数据获取和情绪评分方法详见文档的相关部分。
每日财经头条数据集
数据集包含6000多只股票的每日金融新闻,下载自Kaggle,时间范围为2009至2020年。主要有两个文件:raw_analyst_ratings.csv(来自Benzinga的分析师评级数据)和raw_partner_headlines.csv(来自其他小型合作出版商的头条数据)。每行数据包括标题、文章链接、出版商、发布时间和股票代码。将两个文件的头条数据合并,形成一个统一的数据集,涵盖所有S&P 100股票的新闻头条。
新闻数据处理和创建张量
使用预训练的FinBERT对2010-2020年间S&P 100公司的新闻标题进行情感分析,生成正面、负面和中性情感概率。开发了一个新函数,通过正负情感概率的比率和中性情感概率来提取单一情感嵌入,使用tanh进行归一化,得分范围在-1到1之间。
针对新闻数据的不规则报告日期和数据缺口,采用指数衰减方法调整情感分数,衰减因子γ调优至约0.8。创建了一个名为“NewsHeadlines”的自定义数据集类,使用PyTorch处理新闻标题数据,并实现批量预处理和迭代功能。通过Dataloader对象将数据集分批输入FinBERT,使用softmax激活函数将原始logits转换为概率向量,并保存每批的输出张量。
新闻数据集统计
数据集包含84个S&P 100的股票代码,70,872条新闻情感嵌入数据。中位数股票在905个交易日内有新闻报道,16个股票缺乏情感数据,数据覆盖不全。新闻情感分数呈双峰分布,主要为负面或正面,部分中性,显示出足够的情感强度可影响强化学习代理的决策。将实施并改进多篇文献中的方法,开发利用多个时间段的强化学习系统,最终架构与文献[3]和[4]相似。
方法
马尔可夫决策过程问题公式化
状态 S* 是一个 U × H × C 的 3D 张量,包含历史价格数据,U 为股票数量,H 为历史天数,C 为价格类型(收盘/最高/最低)。新闻信息 δ 通过预训练编码器处理后,作为额外通道添加到 S*,形成完整状态张量 S = (S*, δ)。状态 S 的每一行代表一个股票,包含过去几天的价格和替代数据,简单拼接价格数据和新闻嵌入不会影响学习效果。奖励函数 R 将实验使用两种方法:基于投资组合价值变化的利润奖励和近似夏普比率的差异夏普比率。动作空间 A 是一个长度为 m + 1 的向量,表示下一个时间段的投资组合,权重和为 1,支持短线交易和杠杆限制。项目旨在实现并复制文献 [3] 的方法,修改状态 S 和奖励 R,探索替代数据源、特征提取方法和奖励函数的组合,以优化 S&P100 股票的表现。
策略比较
最终模型架构与多种基准金融投资组合选择模型进行比较,包括:
- 简单均权投资组合
- 简单买入持有投资组合
- 持有历史夏普比率最高的资产
还将测试更先进的基准策略:OLMAR和WMAMR
比较指标包括:
- 累计回报
- 夏普比率
- Sortino比率
- 回撤
实验部分参考文献提供了方法论比较的依据。
特殊配置
RL代理在投资组合优化中根据已知信息生成最优投资组合权重。动作空间A为所有可能的投资组合权重,满足权重之和为1。状态空间S包含代理在做出投资决策时可用的所有信息,如历史价格、策略表现和新闻情绪指标。状态转移函数T为确定性,基于代理提供的权重更新投资组合并生成下一个状态。奖励函数R旨在鼓励代理生成良好的投资组合权重,可能的形式包括纯利润或差异夏普比率。
差动夏普比
Differential Sharpe Ratio用于评估强化学习代理,基于传统Sharpe Ratio的概念。传统Sharpe Ratio定义为预期超额收益与波动率的比率,主要用于策略分析。
强化学习代理需要在每个时间步获得奖励,传统Sharpe Ratio在结束时计算,无法直接应用。Differential Sharpe Ratio通过近似总Sharpe Ratio的变化来解决此问题,利用时刻t的收益R_t更新期望和方差的估计。更新公式为:
A_t和B_t为收益的第一和第二矩的估计。Sharpe Ratio的近似为S_t = A_t / (B_k - A_t),忽略无风险利率。通过泰勒展开,得出S_t的更新公式,表明Differential Sharpe Ratio为比例导数。
交易成本
在考虑交易成本的情况下,投资组合的价值和收益计算需要调整。设定有效的投资组合权重 ( w_t' ) 和交易成本因子 ( \mu_t )。
交易成本影响投资组合的最终价值,需通过迭代计算确定 ( \mu_t ) 的固定点。卖出和买入资产的交易成本分别由佣金率 ( c_s ) 和 ( c_p ) 决定。通过平衡卖出和买入资产的资金流动,建立方程以求解 ( \mu_t )。
EIIE政策
本文提出了“相同独立评估者的集成”(EIIE)框架,用于资产的政策评估。通过单一评估函数生成资产的潜在增长分数,使用Softmax计算投资组合权重。定义了特征提取函数fα和权重更新函数gβ,gβ采用多层感知机(MLP)结构。fα可以是卷积神经网络(CNN)或递归神经网络(RNN/LSTM),并支持多通道数据输入。该框架在加密货币市场的表现优于所有基准策略,易于整合额外数据源(如新闻情感)。
实证结果
实验测试了不同的替代数据使用、奖励函数和策略类型组合。训练期为2010年初至2017年底,测试期为2018年初至2019年底。选择这10年是因为数据源的最大交集。所有策略在训练和测试期间均进行了评估,测试时从$1开始,计算投资组合价值。交易成本设定为1%。本节仅展示比较汇总表,因其更易于解读。
基准投资组合
基准策略包括:Naive Equal、Equal Buy-and-Hold、Best Historical Sharpe、OLMAR、WMAMR和S&P500。大多数基准策略在盈利能力上不及S&P500指数。Equal Buy-and-Hold在净利润、Sharpe Ratio和Sortino Ratio上表现最佳。OLMAR和WMAMR策略均落后于市场。Best Historical Sharpe策略表现不佳,波动性高,Sharpe Ratio显著低于S&P500。所有策略在2018年底至2019年初的市场下跌中经历了相似的最大回撤。
RL投资组合:历史价格数据
实验使用了CNN EIIE、RNN EIIE和标准MLP神经网络,输入为过去几周的股票价格张量,测试了差异夏普比率奖励和利润奖励。使用差异夏普比率奖励的策略表现平平,显著低于S&P指数,表明该奖励难以优化,CNN表现优于RNN和MLP。利润奖励下,CNN和RNN表现合理,CNN略优于S&P指数,而MLP显著恶化,表明利润奖励易于学习,小型EIIE模型更稳健,MLP模型则过拟合。统计分析和图表结果显示了上述趋势。
RL投资组合:价格+ SEC数据
增加了SEC情绪评分通道,提升了模型性能。使用Differential Sharpe Ratio奖励的结果整体表现强劲,但未超越S&P指数。Differential Sharpe Ratio奖励难度大,限制了最佳表现,但减少了过拟合风险。CNN和RNN EIIE策略表现出色,而MLP策略表现不佳,可能因过于复杂导致过拟合。CNN和RNN策略在使用Differential Sharpe Ratio时是实验中的强有力竞争者。
RL投资组合:价格+ SEC +新闻数据
新闻数据不如SEC数据规律,且不一致性影响模型表现。结合价格、SEC和新闻情感数据能显著提升结果。使用Differential Sharpe Ratio奖励的模型表现较差,CNN和RNN优于MLP,但仍然平庸。使用Profit奖励时,模型表现显著提升,CNN EIIE模型为最佳。MLP模型存在严重过拟合问题。
对比
SEC+News CNN EIIE策略(利润奖励)在净利润、夏普比率和索提诺比率上表现最佳。SEC+News RNN策略(利润奖励)具有最低的最大回撤。所有训练策略均优于OLMAR和WMAMR基准。
总结
利润奖励函数与差异夏普比率在学习复杂性上存在差异,前者导致更优的投资组合表现。CNN EIIE和RNN EIIE在利润奖励下表现更佳,而MLP政策网络则显著过拟合。整合新闻数据时,模型学习差异夏普比率奖励的能力减弱,因数据稀疏和不一致。整合SEC文件数据后,两个奖励函数的表现均显著提升,SEC数据的规律性促进了学习。新闻数据与SEC数据结合使用时,能进一步提升表现,但不规则性对难度较大的奖励影响显著。同时整合新闻和SEC数据可实现最佳表现,显示出全面数据集的潜力。改善数据质量之外,还可通过测试不同特征提取器和正则化技术来提升收益。不同的情感嵌入函数可能更准确或更适合代理使用。
本文转载自 灵度智能,作者: 灵度智能