您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[民生证券]:量化分析报告:基于强化学习的组合优化在指增策略中的应用 - 发现报告
当前位置:首页/其他报告/报告详情/

量化分析报告:基于强化学习的组合优化在指增策略中的应用

2024-06-17叶尔乐、韵天雨民生证券阿***
量化分析报告:基于强化学习的组合优化在指增策略中的应用

基于强化学习的组合优化在指增策略中的应用 叶尔乐S0100522110002 韵天雨S0100122120002 01 证券研究报告*请务必阅读最后一页免责声明 证券研究报告 2024年06月17日 *请务必阅读最后一页免责声明 目录 01 CONTENTS 什么是强化学习? 02 StockFormer强化学习交易策略 03 模型实证与分析 04 总结与思考 证券研究报告 1 *请务必阅读最后一页免责声明 05 风险提示 01. 什么是强化学习? 证券研究报告 2*请务必阅读最后一页免责声明 •强化学习是一种机器学习方法,通过与环境的交互来训练智能体,使其在不同状态下采取能够最大化累积奖励的行动。其目标是通过试错学习(trial-and-error)找到最优策略,使得在长时间内累积的奖励最大化。在强化学习中,智能体(Agent)通过与环境的互动不断学习,通过奖励和惩罚来调整其策略,以便在长期内获得最大回报。 动作1->数据分布1 智能体Agent 动态环境 动作2->数据分布2 …… 动作n->数据分布n •在强化学习中,数据是在智能体与环境交互的过程中得到的。如果智能体不采取某个决策动作,那么该动作对应的数据就永远无法被观测到,所以当前智能体的训练数据来自之前智能体的决策结果。因此,智能体的策略不同,与环境交互所产生的数据分布就不 同。 状态State 强化学习概念 智能体 Agent 行动Action 环境 奖励Reward •强化学习有很多类别,主要分为依赖模型的强化学习(如AlphaGo)与无模型强化学习;多数强化学习模型并无依赖模型,即不尝试理解或预测环境的动态(如状态转移概率和奖励结构),而是直接从与环境的交互中学习如何行动。最常见的Q学习及其衍生算法 都属于无模型的强化学习。 强化学习分类 基于策略 策略梯度 PPO TRPOA2C/A3C 无模型强化学习 不尝试理解或预测环境的动态 (如状态转移概 直接在策略空间中搜索最优策略,而不是首先学习价值函数。策略通常被参数化(例如神经网络),并且策略的参数直接通过优化算法进行调整。 基于价值 Actor-Critic方法结合了基于价值的和基于策略的方法的优点。它使用策略模型用于选择动作,再使用价值函数模型用于评估采取这些动作的结果。如SAC 强化学习 率和奖励结构) 给定模型,如AlphaZero Q学习:学习一个动作价值函数Q,给出在特定状态下采取特定动作的期望回报 Sarsa 依赖模型强化学习 建立一个预测模型(如状态转移和奖励的函数),并利用这个模型来规划最优策略,如动态规划和蒙特卡洛树搜索(MCTS)等。 1.2强化学习在金融中的应用 •在金融领域中,已有许多尝试使用强化学习(RL)方法进行交易决策【ThéateandErnst,2021;Wengetal.,2020;Liangetal.,2018;Benhamouetal.,2020】。这些模型的主要区别在于输入状态的定义【Zhongetal.,2020;Liuetal.,2021;Wengetal.,2020】、奖励函数的设计【Liangetal.,2018;HuandLin,2019】以及强化学习算法的选择【Benhamouetal.,2020; Surietal.,2021;Huotarietal.,2020】。强化学习在金融中的应用 Data-DrivenMarket-MakingviaModel-FreeLearning •用订单薄作为数据输入刻画市场状态 •Q-learning实现高频实时决策 •输入状态:当前市场环境,如过去一段时间的股票量价,风格,基本面等。 DeepReinforcementLearningforOptimizingFinancePortfolioManagement •用GRU输出早期动态市场环境 •在奖励函数中增加风险调整 •奖励函数:交易后的账户净值变化,或者是每日投资组合的回报率,低回撤等。 PracticalDeepHierarchicalReinforcementLearningforTradeExecution 引入分层强化学习算法,提高交易胜率 •算法:使用Q学习、深度Q网络(DQN)、策略梯度方法(PolicyGradient)、深度确定性策略梯度(DDPG)、软演员-评论家(SAC)等强化学习算法来训练智能体,使其学会在不同市场状态下采取最优的交易动作。 •本篇研究中用到了SAC强化学习算法,SAC(SoftActor-Critic)算法是一种基于actor-critic框架的深度强化学习方法,它采用了最 大熵强化学习理论进行策略的优化。这种算法的特点是在学习过程中不仅考虑了最大化累积奖励,同时还增加了熵项来鼓励探索,从而使得策略在探索和利用之间取得更好的平衡。 •最大熵强化学习(maximumentropyRL)的思想就是除了要最大化累积奖励,还要使得策略更加随机。如此,强化学习的目标中就加入了一项熵的正则项,熵正则化增加了强化学习算法的探索程度,有助于加速后续的策略学习,并减少策略陷入较差的局部最优的可能性。下图展示了最大熵强化学习中,动作价值函数Q与策略函数𝜋�的分布区别示意。 传统强化学习与最大熵强化学习的区别 •SAC算法中的S即Soft策略迭代改变了目标函数Q为soft贝尔曼方程 (softQ函数),并用soft策略评估可以收敛到策略�的softQ函数。我们为两个动作价值函数Q和一个策略函数𝜋(PolicyNetwork) 建模。基于DoubleDQN的思想,SAC使用两个Q网络,但每次用网络时会挑选一个Q值小的网络,从而缓解Q值过高估计的问题。 •SAC通过结合策略梯度方法和Q学习,持续地更新Actor(策略模型)和Critic(价值模型即V网络)以寻找最优策略。策略不仅会被训练以最大化预期奖励,同时增加的熵项鼓励策略探索更多可能的交易策略,增强模型的泛化能力和适应性。 资料来源:《SoftActor-Critic:Off-PolicyMaximumEntropyDeepReinforcement7 证券研究报告*请务必阅读最后一页免责声明 LearningwithaStochasticActor》TuomasHaarnoja,民生证券研究院 02. StockFormer强化学习交易策略 证券研究报告 8*请务必阅读最后一页免责声明 2.1利用Transformer构造市场状态 •本篇研究我们参考了SiyuGao等人在2023年发表的论文StockFormer:LearningHybridTradingMachineswithPredictiveCoding,论文中作者采用SAC强化学习作为基础框架,并采用类Transformer模型的输出作为强化学习的输入状态 •Transformer模型已经被广泛应用于股票收益预测并输出因子,最初由Vaswani等人在2017年的论文《AttentionisAllYouNeed》中提出,其核心特点是全面依赖于注意力机制,并行学习序列的不同子空间,这种机制可以让模型从不同角度理解数据的同时,大大提高训练效率。 证券研究报告资料来源:《AttentionisAllYouNeed》Vaswani,et.al.,民生证券研究院 9 *请务必阅读最后一页免责声明 •除此之外,模型中还加入了位置编码,使模型能够利用序列的顺序;加入前馈网络有助于进一步转换注意力层的输出;加入残差连接帮助避免在深层网络中训练时的梯度消失问题。 Transformer模型结构 2.1利用Transformer构造市场状态 •论文中,作者用到了3个Transformer网络来构造市场状态的输入,分别学习股票短期收益预测、股票中期收益预测与股票间相关性的潜在表示,这些表示共同形成了下一个训练阶段用于学习投资策略的组合状态空间。 •首先,将原始Transformer中的多头注意力块用一组前馈网络(FFNs)替代单个FFN,每个FFN分别对应多头注意力层输出中的一个头。这样可以保持从多个同时市场资产序列中学到的时间模式的多样性,增强特征解耦能力,能够在不增加模型参数的情况下更好地处理多样化的时间序列模式,提高模型的表达能力和鲁棒性。 多头前馈网络(FFN)代替单个FFN 2.1利用Transformer构造市场状态 •随后,作者利用第二个Transformer网络对股票量价的协方差矩阵和技术指标输入Transformer的编码器(Encoder中),捕捉不同股票之间的动态相关性,输出相关状态(RelationalState)。随后将股票技术面指标与编码器的输出输入解码器,输出对于股票收益的预测状态(predictivestate),我们有L个编码器层和M个解码器层。 SAC强化学习 预测Transformer模块 2.2StockFormer模型结构 •StockFormer通过预测编码从时间序列数据中提取强化学习的潜在状态,然后在组合状态空间中优化交易决策。前文中,我们从三个Transformer分支中获得三种类型的潜在表示:关系状态(𝑆𝑆𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑡)、中期预测状态(𝑆𝑆𝑟𝑟𝑙𝑙𝑙𝑙𝑙�,5天收益预测)和短期预测状态 �� (𝑆𝑆𝑠𝑠𝑠𝑙𝑙𝑟𝑟�,1天收益预测),随后通过多头注意力层将𝑆𝑆𝑟𝑟𝑙𝑙𝑙𝑙𝑙�与𝑆𝑆𝑠𝑠𝑠𝑙𝑙𝑟𝑟�整合为未来状态(𝑆𝑆𝑓𝑓𝑓𝑓𝑡𝑓𝑓𝑟𝑟𝑟�),最后与𝑆𝑆𝑟𝑟𝑟𝑟𝑟𝑟𝑟𝑟�合并为SAC的状态输入 � St,输入SAC强化学习。 �� �� StockFormer结构 2.2StockFormer模型结构 •在后续的SAC强化学习中,SAC将输出策略函数𝜋,决定当期的买入/卖出金额。SAC方法包括一个演员网络(𝜋𝜃�)和两个评论家网络(𝑄𝑄𝜙𝜙1和𝑄𝑄𝜙𝜙2),演员网络通过对高斯分布采样生成动作(𝑎𝑎𝑡𝑡),评论家网络通过最小化贝尔曼残差来预测动作值Q函数,SAC算法的目标是最大化策略的熵和期望累积奖励。具体目标函数为: •其中,E𝜋𝜋𝜋�表示通过策略𝜋𝜃�生成的动作的期望值。 •r𝑡�表示在时间步𝑡�采取动作𝑎𝑎𝑡�后得到的即时奖励,及股票收益。 •γ表示折现因子,即用于折扣未来奖励的权重,值在0到1之间。越接近1表示越重视未来奖励,越接近0表示越重视即时奖励 •表示在状态𝑠𝑠𝑡�采取动作𝑎𝑎𝑡�后,转移到下一个状态𝑠𝑠𝑡𝑡+1的期望值 •α表示控制策略熵的权重。高熵策略意味着更高的探索性,而低熵策略意味着更高的确定性 03. 模型实证与分析 证券研究报告 14*请务必阅读最后一页免责声明 03 模型实证与分析 3.1模型效果实证 •首先,我们将Transformer模型作为本篇研究中的基模型,与后续的Transformer+SAC强化学习算法形成对照。在Transformer模型中,我们与论文中一样,采用日频行情即部分技术因子作为输入。数据输入与模型细节如下: 数据输入 Transformer 收益排序 特征X:过去60个交易日个股的高、开、低、收、成交量、VWAP,及民生金特征处理工因子库中20个技术面因子,维度为(n,60,26),时序z-score标准化 标签y:个股未来5日收益排序分位数 GRU:input_size=26,hidden_size=64,num_layers=2,n_heads=10模型结构Dropout:dropout概率为0.1 MLP:全连接层,输入维度64,输出维度1,激活函数为Tanh损失函数:-IC batch_size:每天的所有中证1000成分股,epoch:50,早停:20