文献阅读荟-No.280-深度强化学习在交易中的应用

2024-09-14 10:01   广东  

论文:深度强化学习在交易中的应用

Zhang Z, Zohren S, Roberts S. Deep reinforcement learning for trading[J]. The Journal of Financial Data Science, 2020, 2(2): 25 - 40.

下载地址:

https://doi.org/10.3905/jfds.2020.1.030


01 引言

年来,机器学习算法在包括图像分类和自然语言处理等不同应用领域取得了显著成功,类似的技术也被应用于金融市场试图获得更高的超额收益。大多数研究集中预测某一时段内的超额收益或市场走势。然而,很少有讨论涉及如何将这些预测信号转换为实际的交易头寸(训练深度学习模型直接学习头寸)。实际上,这种映射并非易事,预测时段通常较短,而大的市场趋势可能会持续数周或数月(伴随盘整期)。因此,不仅需要具有良好预测能力的信号,还需要能够持续做出正确方向判断的信号。

本文引入深度强化学习算法来解决上述问题,直接训练模型输出交易头寸,绕过了明确的预测步骤。现代投资组合理论表明,在给定的有限时间范围内,交易者会选择行动来最大化最终财富的预期效用: 其中,  是效用函数,  是在有限时间范围  内的最终财富,  表示财富的变化值。最终财富的表现取决于一系列相互依赖的行动序列,最优交易决策不仅决定了当前的交易收益,还会影响未来的收益。这属于最优控制理论的范畴,构成了经典的序列决策过程。如果交易者是风险中性的,则效用函数为线性,只需最大化预期的累计交易收益  。可以看到,这个问题完全契合强化学习(RL)框架,其目标是通过智能体与不确定环境的交互,最大化预期累计奖励。在RL框架下,可以直接将不同的市场情况映射到交易头寸,并方便地将佣金等市场摩擦纳入奖励函数,从而直接优化交易表现。
本文采用深度强化学习算法来设计期货连续合约的交易策略(包括深度Q网络DQN、策略梯度算法PG和优势演员-评论家算法A2C),考虑离散和连续的动作空间(Action Space),并引入了波动率缩放机制,以构建基于市场波动调整交易头寸的奖励函数(Reward Function)。交易策略在2011年至2019年期间对50个流动性最强的期货合约上进行了测试,并研究其在不同资产类别(包括大宗商品、股票指数、固定收益和外汇市场)中的表现差异,结果显示深度强化学习算法策略优于基准模型,即使在高交易成本的情况下仍能实现正收益。深度强化学习算法能够在不频繁调仓的情况下跟随大的市场趋势,并且在市场盘整期时减小仓位或保持现有仓位。

02 文献综述
现有关于强化学习在交易中的文献可以分为三种主要方法:评论家算法(critic-only)、演员算法(actor-only)以及演员-评论家算法(actor-critic)。其中深度Q网络(DQN)是评论家算法领域中发表最多的方法,该方法通过构建状态-动作价值函数Q用于表示在某一状态下采取某一动作的好坏。这类算法采用离散动作空间,训练代理完全做多或做空某个头寸。然而,在高波动时期,完全投资的头寸风险较大,当市场朝相反方向波动时,会暴露于严重的风险之中。交易者希望根据当前的市场状况调整仓位的大小,需要较大的动作空间实现这一点,,评论家算法在面对较大的动作空间时表现不佳,因为需要为每个可能的动作分配一个评分。
第二类常见的方法是演员算法,代理直接优化目标函数,而无需计算状态下每个动作的预期结果。由于直接学习策略,演员算法可以推广到连续动作空间。已有研究使用批梯度上升法优化目标函数,如累计收益或夏普比率。然而,标准的演员算法需要为策略学习一个分布,为了研究策略的分布,训练过程中采用了策略梯度定理和蒙特卡洛方法,并且模型在每个回合结束时进行更新。常遇到学习速度缓慢的问题,并且需要大量样本才能获得最优策略,因为只要总收益是好的,个别的错误动作仍然会被视为“好”的动作,因此需要很长时间来调整这些动作。
演员-评论家算法构成了第三类,旨在通过实时更新策略来解决上述学习问题。其关键思想是交替更新两个模型:演员模型,负责在给定当前状态下控制代理的操作;评论家模型,评估所选动作的好坏。然而,这种方法在金融应用中研究较少,相关文献也较为有限。本文旨在补充这一领域,研究该方法在交易中的有效性。

03 研究方法
3.1 模型构建
将交易问题转化为马尔可夫决策过程,其中代理在离散时间步与环境交互。在每个时间步  ,代理进入环境的状态  。基于此状态,选择一个动作  ,基于这个动作,代理在下一个时间步收到奖励  ,同时进入新的状态  。代理与环境的交互产生一个轨迹  。在任意时间步骤  ,强化学习的目标是最大化期望收益  : 其中,  是贴现因子。如果交易者具有线性效用函数,并且使用  表示交易收益,优化  等同于优化预期效用。
状态空间
本文采用历史价格、不同时间跨度的收益率  ,以及技术指标(包括MACD和RSI)来表示状态。在某个给定的时间步,采用每个特征的过去60个观测值来构成一个状态。以下是具体特征列表:
  • 标准化的收盘价序列;
  • 将过去1月、2月、3月和一年的年收益率标准化为  ,其中  使用60天窗口的指数加权移动标准差计算;
  • MACD:  ,  ;
  • RSI:衡量近期价格变动的幅度,代表资产的超卖(低于20)或超买(高于80)状态,使用30天窗口计算;
动作空间
本文研究了离散和连续动作空间。对于离散动作空间,使用了一个简单的动作集合{−1,0,1}:−1对应最大空头头寸,0对应无持仓,1对应最大多头头寸。需要注意的是,如果当前动作和下一时间步动作相同,则不会产生交易成本,只需维持现有头寸。如果从完全多头头寸变为空头头寸,交易成本将翻倍。连续动作空间的设计与离散情况相似,仍然输出交易头寸,但允许动作取值在-1到1之间的任意值  。
奖励函数
奖励函数的设计取决于交易者的效用函数。在本文工作中,将效用函数设定为收益,代表风险中立的交易者在时间步  的奖励  为: 其中,  是目标波动率,而  是基于过去60天内的收益率  使用指数加权移动标准差计算的事前波动率估计。当市场波动率较低时,头寸被放大,反之则被缩小,可以将波动率缩放视为将不同合约的奖励归一化到相同的尺度。  是合约单位,本文将其设定为1。值得注意的是,交易成本项还包括一个价格项  ,将交易成本表示为交易价值的一部分。常数bp是成本率,1bp=0.0001。例如,如果成本率为1bp,需要支付0.1来购买一个价格为1000的合约单位。由于乘性利润需要进行对数变换以获得RL设置所需的累计奖励,但对数变换会对大幅度的财富增长进行惩罚,因此本文工作中使用加性利润,定义  。
3.2 强化学习方法
深度Q网络(DQN)
DQN通过采用神经网络来逼近状态-动作价值函数(Q函数),从而估计代理在给定状态下执行某个动作的好坏。假设Q函数由参数  表示。通过最小化当前Q值和目标Q值之间的均方误差来推导最优的状态-动作价值函数: 其中,  是目标函数。一个问题是,原始的DQN训练过程不稳定,容易受到波动影响。为了稳定训练过程,本文采用三种策略来改进训练:固定Q目标、Double-DQN和Dueling-DQN。
策略梯度算法(PG)
策略梯度方法直接优化策略,旨在最大化期望的累计奖励。使用参数为  的神经网络来表示策略  ,则可以从环境中生成一个轨迹  ,并获得一系列奖励。通过使用梯度上升法调整  来最大化期望累计奖励  : 与DQN相比,PG直接学习策略,并且可以输出动作的概率分布。如果希望设计随机策略或处理连续动作空间,这将非常有用。然而,PG的训练使用蒙特卡罗方法从环境中采样轨迹,更新仅在整个回合结束时进行。这通常导致训练速度较慢,且可能陷入局部最大值。
优势演员-评论家算法(A2C)
A2C旨在通过实时更新策略来解决PG的训练问题,通过最大化目标函数来更新策略演员网络  : 其中,  是优势函数,定义为: 为了计算优势值,使用评论家网络,建模状态值函数  ,通过梯度下降来最小化时序差分误差,从而更新评论家网络: A2C在处理连续动作空间时最为有用,因为其使用优势函数来减少策略的方差,并实时更新策略。A2C的训练可以同步或异步进行(即A3C),本文采用同步方法,并在多个环境中并行执行代理。

04 实证研究
4.1 数据
本文使用了来自Pinnacle Data Corp CLC数据库50个期货连续合约的数据。数据集涵盖了2005年至2019年,包含多种资产类别,包括商品、股票指数、固定收益和外汇。每5年重新训练一次模型,使用截至该时间点的所有数据来优化参数。接下来5年内,模型参数保持固定,以产生样本外结果。总的来说,测试期为2011年至2019年。
4.2 基准
将上述方法与以下基准模型进行比较:
  • 仅做多(长期持有);
  • Sign(R):   ;
  • MACD信号:  ,  ;
将上述基准模型与强化学习算法(DQN、PG和A2C)进行比较。DQN和PG具有离散动作空间{−1,0,1},而A2C具有连续动作空间[−1,1]。
4.3 模型训练方案
本文使用长短期记忆网络(LSTM)来建模演员和评论家网络。LSTM传统上用于自然语言处理,但近年来许多研究将其应用于金融时间序列,有研究表明LSTM在建模日常金融数据上表现优异。本文在所有模型中使用两层LSTM网络,分别包含64和32个单元,激活函数采用Leaky-ReLU。由于数据集包含不同的资产类别,本文为每个资产类别训练一个独立的模型。这是一种常见的做法,通过将相同资产类别的合约分组进行训练,并且本文发现这也提高了性能。
表1中列出了不同强化学习算法的超参数值,如前所述,  是贴现因子,bp是训练中使用的成本率。可以将bp视为正则化项,因为较大的bp会惩罚交易频率,使代理维持当前的交易头寸。记忆大小表示经验回放缓冲区的大小,而DQN每经过  时间步更新一次目标网络的参数。
4.4 结果
本文使用2011年至2019年期间数据测试了基准模型和强化学习方法,并计算每个合约的交易收益(扣除交易成本)。然后通过对每个合约赋予相等的权重来构建一个简单的投资组合,投资组合的交易收益为: 其中,  表示所考虑的合约数量,  是合约  在时间步  的交易收益。使用以下指标来评估该投资组合的表现:
表2中展示了实验结果,其中每个模型都应用投资组合层级的波动率调整,这使得不同方法的波动率达到相同的目标,从而可以直接比较预期和累计交易收益等指标。表2根据不同的资产类别分为五个部分,展示仅使用该特定资产类别中的合约时的投资组合表现,最后一部分展示的是使用数据集中所有合约构建的投资组合表现。不同模型和资产类别的累计交易收益如图1所示。
可以看到,RL算法在大多数资产类别上表现更好,除了股票指数类别,在此类别中,纯做多策略表现更佳。这可以解释为大部分股票指数在测试期间由大幅的上涨趋势主导。同样,固定收益类资产在2016年之前也呈现上涨趋势,之后进入盘整期。在这种情况下,最合理的策略可能是持续持有头寸,以应对持续的趋势。然而,纯做多策略在商品和外汇市场表现最差,因为这些市场的价格波动较大。RL算法在这些市场表现较好,能够在合理的时机做多或做空。总体而言,DQN在所有模型中表现最佳,紧随其后的是A2C算法。进一步研究这一现象的原因,发现A2C产生了更高的换手率,导致每次换手的平均收益较低。
本文还研究了不同交易成本下方法的表现。图2的左图绘制了在不同成本率下,包含所有合约的投资组合的年化夏普比率。可以看到,RL算法可以容忍较高的成本率,特别是DQN和A2C在25bp的成本率下仍能产生正收益。图2的右图绘制了每份合约的平均成本,发现25bp约等于每份合约3.5美元。这对于零售交易者来说是一个合理的成本,但机构交易者的费用结构基于交易量,通常拥有更低的成本。无论如何,这表明所提出的方法在现实环境中是有效的。
投资组合的表现通常优于单个合约的表现,因为风险在多个资产中得到分散,因此每单位风险的收益更高。为了探究方法的一致性,本文研究了单个合约的表现。使用图3中的箱形图展示了每个期货合约的年化夏普比率和每次交易换手的平均交易收益。总体而言,这些结果进一步证实了之前的发现,即RL算法通常表现更好,而且方法的表现并非依赖于某个表现特别优异的单一合约。

05 结论
本文采用强化学习方法学习期货连续合约的交易策略,讨论现代投资组合理论与RL收益假设之间的联系,并表明当使用线性效用函数时,二者等价。本文的分析主要集中在三个RL算法,即DQN、PG和A2C,并探讨了离散和连续动作空间,采用时序动量和技术指标特征来构建状态空间。此外,引入了波动率缩放来改进奖励函数。在2011年至2019年间对50个流动性期货合约进行了测试,结果表明RL算法优于基准模型,即使在高交易成本下也能带来利润。
后续工作将会探讨不同形式的效用函数,交易者通常是风险厌恶的,目标通常是是最大化风险调整后的绩效指标,如夏普比率,这导致了一个凹效用函数,可以借助分布式强化学习,获取Q(s, a)的整个分布,选择具有最高预期Q值且标准差最低的动作,以最大化夏普比率。还可以通过修改动作空间,给出投资组合中各个合约的权重,将此方法扩展到投资组合优化。可以将奖励函数与均值-方差投资组合理论结合,以在最小波动率的情况下提供合理的预期交易收益。

讨论时刻:

       本文介绍了深度强化学习方法在交易领域的应用,构建了DQN、PG和A2C三类RL算法模型,研究表明RL算法在不同资产类别期货合约上表现优于基准模型,说明RL在交易领域具有一定应用前景。



如果有好的建议,请留言给我们。

"大于研究"是华南理工大学经济与金融学院、金融工程研究中心于老师和学生对外分享研究成果和学习的心得的公众号。

对我们的研究感兴趣的可以联系fofscut@scut.edu.cn


大于研究
大于研究是华南理工大学金融工程研究中心的老师和学生对外分享研究成果和学习的心得的公众号。对我们的研究感兴趣的可以联系fofscut@scut.edu.cn。
 最新文章