APP下载

基于深度强化学习SAC 算法的投资组合管理

2020-04-25傅丰王康

现代计算机 2020年9期
关键词:最大化深度预测

傅丰,王康

(四川大学计算机学院,成都610065)

1 介绍

投资组合管理[1],是将一定数量的资产配置到不同的金融投资产品中的决策过程。目的是,在风险相同的情况下,最大化收益[2]。传统的投资组合管理方法可分为“跟随赢家”、“跟随输家”、“模式匹配”和“元学习”四类[3]。机器学习[4]是当今的热门话题,其中,强化学习与深度学习是它的两个子领域。本文尝试采用深度强化学习技术,在股票池中分配资产。采用无模型强化学习算法,不假设先验知识或建立模型,而是使模型直接与金融环境接触,让模型从历史市场中观察和学习,最终使累积收益最大化。

在金融市场领域,许多传统机器学习使用历史市场数据预测价格变动或者价格趋势[5]。神经网络以金融资产的历史价格作为输入,输出下一时间周期金融资产的预测向量。交易决策者根据这个预测价格,采取相应的动作。这是回归问题,也是一个有监督的学习。这种基于价格预测的算法,其表现性能在很大程度上取决于预测的精确度。但是,要精确地预测未来的股市价格,是非常困难的。股票市场的分布,不一定是一成不变的,而且还受投资者的心理因素、政治因素等影响。将价格预测转换为相应的动作,还需要额外的逻辑转换,是不高效的,扩展性较差。

实际上高精度的价格变动预测,往往难以实现,而且投资组合管理目标,就是为了获得最高的利润。因此,本文根据历史市场数据,直接获得对金融资产的动作行为,即投资组合向量。实验证明,在不预测未来价格的情况下,可以将上述的无模型算法交易问题转化为强化学习的问题[6]。Zhengyao Jiang 等人将深度强化学习运用于加密货币的投资组合管理中,在1.8 个月的交易周期内,实现了10 倍的回报。这些RL 算法直接输出交易的动作信号。

无模型深度强化学习面临着高的样本复杂度和超参数脆弱性等困境。即使是简单的任务,也需要大量的数据;为了获得良好的效果,必须为不同的问题仔细设置超参数。Tuomas Haarnoja 等人引入了基于最大熵框架的SAC(Soft Actor Critic)算法[7]。

2 强化学习

强化学习(RL)[8]是机器学习中的一个领域,它主要包含四个元素:智能体、环境、动作、奖励。强化学习强调如何基于环境而行动,以取得最大化的预期收益。深度学习[9]的快速发展,使得强化学习能够解决具有高维的状态-动作空间行为,并因此建立了深度强化学习(DRL)。

无模型深度强化学习面临着高采样复杂度和脆弱的收敛性等两个困境,严重依赖调参。在金融股票领域,数据的状态空间非常庞大,数据之间存在高相关性,因此,限制了强化学习在金融股票领域的应用。所以,我们使用Soft Actor Critic 框架,应用在金融股票领域。SAC 要求actor 同时最大化期望和策略分布的熵[10],与DDPG 相反[11],即在最大化收益的同时鼓励探索。SAC 的软策略迭代过程分为软策略评估和软策略更新。

软策略评估为:

Tπ是Bellman backup 算子,且Qk+1=TπQk

软策略更新为:Zπold( )

st是配分函数。

重复交替使用软策略评估和软策略更新,最终策略会收敛到最优。

学习目标是:

超参数α控制最优策略的随机程度,由下式求解:

本文将s 定义为金融市场的状态,即为每日资产的价格。本文中,将s(状态)设置为每日股票的最高价和收盘价。a 代表强化学习中智能体的动作,在金融领域一般即为[买入,卖出,持有]。用每日持有的各个相应资产权重的差值,代表每日相应的动作,即[买入,卖出,持有];reward 代表相应动作的奖励。我们的目标即为一个回合结束时,最大化我们的资金。

我们观测数据为前十天的资产价格,智能体获得前十天的历史价格序列,并据此做出投资决策,这个过程将持续到最后一个交易期。智能体的目的就是最大化累积奖励。

本文仅仅考虑回测交易,即智能体回到历史市场上的时间点,且不知道任何之后的市场信息,从这个时间点上进行交易。同时,满足下列条件:①当智能体做出交易决策时,市场允许其根据相应的价格做出交易决策;②智能体投入的资金交易操作等,不会对市场有影响。

3 数据

本文使用中国市场上的指数数据,目的是判断强化学习算法能否感知中国股市大盘环境,算法是否对中国股市有效[12]。数据为深证综指、上证指数、上证50、中证100,股票代码为‘399106.SZ'、‘000001.SH'、‘000016.SH'、‘000903.SH'。在tushare 平台上获取数据。采用现金作为无风险交易数据。时间长度为从2006 年1 月4 日至2019 年11 月14 日。本文中为每日交易且只进行一次交易。按每日各个股价的收盘价进行交易。数据归一化采用除以最大值的方法进行归一化。

本文将每日扣除手续费后的收益(分为正收益和负收益)作为强化学习中的reward,输出的每日各个资产的权重之差,作为强化学习中的action,各个资产的历史价格矩阵,作为强化学习中的state。

传统的深度强化学习在金融股票领域的应用,是预测股票的价格,所以输出的是预测价格向量。本文的网络输出的是投资组合中各个金融资产的占总资产的权重。本文算法中的动作,与奖励没有明确的映射关系,因此,本文中还可以提供更多的可扩展性。

本文将数据集分成三个部分:训练集、验证集、测试集。在训练集中,神经网络会调整相应的权重,进行学习。验证集用于调整超参数,例如网络的层数、学习率等。测试集用于评估该算法的最终性能。

本文的训练过程,利用基于梯度的方法,调整神经网络的权值,使训练集上的奖励函数最大。训练中使用Adam 优化器,学习率设置为千分之一。

4 效果评价

本文中训练集的时间跨度为从2006 年1 月13 日至2017 年2 月4 日,验证集的时间跨度为从2017 年2月14 日至2018 年6 月25 日,测试集的时间跨度为从2018 年7 月5 日至2019 年11 月14 日。根据验证集的效果选择最佳网络,初始资金设为一万元人民币。

本文将模型与以下基准进行对比。一种是将初始资金全部投资于投资组合管理中的一支股票,直至结束;一种是将初始资金全部投资于投资组合管理中的一支直至结束,然后取它们的均值。本文还将算法和policy gradient 进行对比[13]。本文的手续费设置为千分之一。采用SAC 算法的模型,测试结束时获得了12435 元的资金,年回报率为17.53%[14];采用policy gradient 算法的模型,测试结束时获得了10580 元人民币,年回报率为4.18%;将全部资金投资于单个股票并持有至结束的方法,在测试结束时,平均获得了11457 元人民币,年回报率为10.49%。

分析结果可以发现,SAC 模型的年回报率最高,动作输出比较集中于上证50,policy gradient 模型在收益方面低于长期持有平均水平,然而仍然是盈利的,且policy gradient 模型的输出动作,不会收敛至单一股票,分布相对平均,更加符合投资组合的理念。

5 结语

本文首次将强化学习中的SAC 算法应用于投资组合领域,即在最大化奖励的同时也最大化熵,保证稳定性和探索能力。本文提出的模型以原始市场数据、历史价格作为输入,直接输出投资组合中金融资产的权重向量。本文提出的方法,不依赖任何金融理论,因此具有高度的可扩展性。本文将SAC 算法的性能和其他模型进行了比较,在收益、年回报率方面取得了令人满意的效果。但是,观察智能体的输出动作,发现权重比较集中于一支股票上,这与投资组合的初衷背道而驰。而policy gradient 虽然在收益、年回报率方面较低,但动作相对比较分散,符合投资组合的初衷。

本文工作的局限在于,无法使用历史数据来完全模拟真实的在线交易。未来可以在如何有选择性、有针对性地挑选优质股票,以及添加金融市场信息等方面做改进。

猜你喜欢

最大化深度预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
四增四减 深度推进
深度思考之不等式
勉县:力求党建“引领力”的最大化
Advantages and Disadvantages of Studying Abroad
刘佳炎:回国创业让人生价值最大化
简约教学 深度学习