CN111861751A - 基于深度强化学习的股票量化交易方法、存储介质及设备 - Google Patents
基于深度强化学习的股票量化交易方法、存储介质及设备 Download PDFInfo
- Publication number
- CN111861751A CN111861751A CN202010718040.5A CN202010718040A CN111861751A CN 111861751 A CN111861751 A CN 111861751A CN 202010718040 A CN202010718040 A CN 202010718040A CN 111861751 A CN111861751 A CN 111861751A
- Authority
- CN
- China
- Prior art keywords
- network
- reinforcement learning
- action
- model
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明公开了一种基于深度强化学习的股票量化交易方法、存储介质及设备,获取基本面数据并进行预处理,构建技术指标因子;根据基本面数据和技术指标因子构建深度残差网络,定义深度强化学习模型并进行训练;对训练好的深度强化学习模型进行回测,分析回测结果验证强化学习模型的有效性;利用回测后的深度强化学习模型构建股票池,获取每只股票的历史数据,传入训练好的目标网络中,计算对应采取动作,完成交易策略构建,根据策略实现股票量化交易。本发明使用引入了深度残差网络的深度强化学习模型来进行股票的量化交易,在提升了模型对股票市场的拟合程度的同时,提高了交易效率。避免了人手工操盘的缺陷。
Description
技术领域
本发明属于智慧金融技术领域,具体涉及一种基于深度强化学习的股票量化交易方法、存储介质及设备。
背景技术
近几年来,伴随着计算机科学与技术的飞速发展,人工智能算法领域也有了很大的进步。深度强化学习也在此之中逐步发展起来,结合了强化学习对环境的探索与学习能力与深度神经网络对环境强大的感知能力,深度强化学习越来越多的收到广大学者的青睐。其发展不出大多被用于自动化,智能控制,自动驾驶等这些领域。近年来,部分学者开始考虑将其应用于金融行业,用来进行对金融市场的分析研究,与决策。
深度强化学习在金融领域的应用是当下热点。大多数的研究都是采用强化学习的方法来优化深度神经网络的参数,得到一个最优的算法模型用来进行决策交易。但针对于这方面的一些研究还存在着一些问题:
1)没有更多的考虑过拟合的问题,只是简单的采用随机丢弃模型节点的方法来降低模型的过拟合问题。但对于金融数据来说,层数较深的深度神经网络及易产生过拟合现象,导致模型样本外的效果降低。因此,本文引入残差网络替代以往研究中的网络层,解决过拟合问题。
2)针对强化学习的状态抽象方面仍存在问题,当前的研究定义状态主要有两种方式,一种是基于时间序列(如使用前几日的数据当作当日的状态),第二种则是使用当天的基本面数据(或添加一些常用的指标)作为状态的抽象。这两种办法虽各有有点但仍不太好,时间序列数据主要在于寻求前后数据之间的关系,而只采用当天的数据则忽视了之前数据对之后的影响。因此在此我们定义一种新的状态定义方法,结合当日基本面数据与之前N天数据共同作用来作为当天的状态抽象。
发明内容
本发明所要解决的技术问题在于针对上述现有技术中的不足,提供一种基于深度强化学习的股票量化交易方法、存储介质及设备,引入新的网络层架构,将强化学习与深度残差网络相结合,增加模型的拟合效果,同时避免过拟合问题的产生,用来进行股票的分析以及量化交易。
本发明采用以下技术方案:
一种基于深度强化学习的股票量化交易方法,包括以下步骤:
S1、获取基本面数据并进行预处理,构建技术指标因子;
S2、根据步骤S1的基本面数据和技术指标因子构建深度残差网络,定义深度强化学习模型并进行训练;
S3、对步骤S2训练好的深度强化学习模型进行回测,分析回测结果验证强化学习模型的有效性;
S4、利用步骤S3回测后的深度强化学习模型构建股票池,获取每只股票的历史数据,传入步骤S3训练好的目标网络中,计算对应采取动作,完成交易策略构建,根据策略实现股票量化交易。
具体的,步骤S1具体为:
S101、采用开源的聚宽量化平台提供的API接口获取股票的日线数据,对日线数据进行预处理后存入本地数据库;获取基本数据后,对数据进行清洗,计算数据的技术指标,然后存入数据库中;
S102、如果步骤S101获取的基本数据存在缺失情况,采用均值方式进行填充;
S103、基本数据构建技术指标,计算技术指标因子,对获取的及计算出来的数据进行归一化处理。
进一步的,步骤S102中,采用均值的方式进行填充,具体为:
其中,X为填充结果,n为获取数据的个数,xi为第i个数据的取值。
具体的,步骤S2具体为:
S201、定义强化学习用于探索环境,根据当前环境模拟投资者做出买入,卖出或持有动作,采取一个动作之后能够带来收益的变化当作奖励值,使用探索环境所产生的数据深度强化学习当中的深度残差网络;
S202、深度神经网络采用7层残差神经网络,包括两个结构完全相同的深度神经网络,一个为当前值网络,一个为目标值网络,当前值网络用于时时根据当前的状态计算动作值函数的到当前状态下应该采用的动作;目标值网络用计算出来的结果构建损失函数更新参数,并将当前值网络的参数拷贝给目标值网络;作为模型结构构建深度强化学习算法模型;
S203、采用强化学习的所探索的数据作为当前值与目标值网络的输入,动作值函数作为输出,对步骤S202构建的模型进行训练。
进一步的,步骤S203具体为:
S2031、根据网络结构使用Tensorflow构建两个结构相同的深度残差网络并随机初始化网络参数。
S2032、深度强化学习模型获取当前时刻市场所处的状态St并传入步骤S2031所构建的网络当前值网络当中,计算此时所要采取的动作at;
S2033、模型执行动作at并计算采取对应动作之后所到达的下一状态St+1,以及所获取的奖励值R;
S2034、将本轮的转换序列(St,at,St+1,R)存入记忆回放单元,并检查是否到达最后一个状态;
S2035、若还未到达最后一个状态则跳转至步骤S2032继续探索,否则使用记忆回放单元中所存储的数据依据奖励最大化的原则优化网络参数,并将网络参数拷贝给目标值网络;
S2036、判断整个训练过程是否结束,若未结束则跳转至步骤S2032开始下一轮的探索学习;否则训练过程结束,将目标值网络的模型及学习好的参数存储到本地即为训练好的模型。
更进一步的,步骤S2033中,奖励值R等于当前状态本身的值函数加上执行动作at后所获取的后续奖励,具体计算如下:
R=Rt+(CLOSEt-OPENt)*Volume
其中,CLOSEt表示t时刻的收盘价,OPENt表示t时刻的开盘价,Rt表示所获取的收益,Volume表示每次的交易量。
具体的,步骤S3具体为:
S301、当步骤S2的模型训练好后,将训练好的目标网络导入开源的聚宽平台上,利用平台提供的回测环境进行回测,观察模型的收益率,分析算法模型的效果;
S302、在构建策略时,在回测策略当中构建与目标网络相同的网络结构,并将网络结构导入,参数的更新只存在于当前值网络当中,导入网络参数,并在回测当中传入当日状态计算的出采取的动作值函数;采取动作值函数最大的动作进行交易。
具体的,步骤S4具体为:
S401、选取在训练模型时所使用的股票构建股票池;
S402、每日开盘后,获取股票池内股票的历史数据,传入所训练好的目标值网络当中,计算对应股票该日采取的动作,将采取动作值最大的动作作为执行动作;
S403、当动作为买入时,表示当日以当前价格买入10股;当动作为卖出时,表示当日以当前价格卖出10股,当动作为持有时,当日不对股票进行交易。
S404、将步骤S3构建好的策略导入聚宽模拟交易服务器上,根据聚宽平台提供的交易接口,每日自动进行计算,执行策略的买入卖出或持有动作,实现量化交易。
本发明的另一个技术方案是,一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行所述的方法中的任一方法。
本发明的另一个技术方案是,一种计算设备,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行所述的方法中的任一方法的指令。
与现有技术相比,本发明至少具有以下有益效果:
本发明一种基于深度强化学习的股票量化交易方法,使用深度强化学习训练的模型来指导交易,得益于计算的计算准确率及计算速度,当模型训练好之后可以更加准确迅速对当前行情做出判断;极大的减少了人主观计算,以及人工操作失误带来的影响。同时,通过算法模型进行判断,可以减少人主观情绪化操作带来的一些损失;在及时,准确,迅速决策的基础上减少了交易人员的工作量。
进一步的,在算法模型的训练方面,深度强化学习模型旨在寻找一个最优的交易策略,面对于复杂的金融市场,采用深度神经网络进行高纬度拟合时,若网络层数过浅,则无法更好的拟合模型,网络层数过深时,又可能维带来过拟合现象,导致模型的样本外效果变差。因此,引入深度残差网络作为网络层,拟合高纬度的数据,减少过拟合的风险,增强模型的拟合程度。
进一步的,强化学习是一种通过智能体相对于环境的运动,从环境中获得回报,从而最大化回报的一种机器学习算法。因此,强化学习算法存在几个基本的要素环境,状态,动作,回报(或称为奖励)。作用于金融领域而言,环境则是我们面对的股票交易市场,针对于股票的操作我们有买,卖,持有三种不同的动作。回报则可定义为采取某一动作之后带来的后续收益。某一时刻t的状态的定义尤为重要,因为状态决定了在该状态下采取怎样的动作。如何定义状态直接影响模型的最终结果。采用一个二维的向量来抽象状态。包含了前N日的基本面数据及一些技术指标因子,并且对N日数据进行加权处理,使得更接近于当前时间点的数据具有更高的权重。以此,定义的状态能更好的反应当前时刻行情,以便模型可以采取正确的决策,进一步提升模型对市场的整体拟合效果。
综上所述,本发明使用引入了深度残差网络的深度强化学习模型来进行股票的量化交易,在提升了模型对股票市场的拟合程度的同时,提高了交易效率。避免了人手工操盘的缺陷。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
图1为本发明方法使用模型整体框架图;
图2为本发明深度强化学习模型图;
图3为本发明网络结构图;
图4为深度强化学习模型训练流程图本发明流程图;
图5为量化交易流程图。
具体实施方式
本发明提供了一种基于深度强化学习的股票量化交易方法,针对于强化学习中对状态以及动作的抽象,引入股票当日的基本面以及之前N日的数据,构建新的二维向量,当作每日的状态抽象。解决了股票数据中存在时序关系的问题。
请参阅图1,本发明一种基于深度强化学习的股票量化交易方法,包括以下步骤:
S1、数据的获取及预处理;
S101、基本面数据获取;
采用开源的聚宽量化平台提供的API接口获取股票的日线数据,由于,获取的数据可能存在缺失,或者噪声等问题,对数据进行预处理后存入本地的数据库。对清洗过后的数据,进行技术指标的计算,用于后续强化学习状态的抽象并将计算好的数据一并存入数据库中。
表1采用聚宽平台获取基本面数据的格式如下表:
S102、数据的预处理包括:
缺失值的填充
对于缺失的数据在这里我们采用均值的方式进行填充,以保证数据的完整性
其中,X为填充结果,n为获取数据的个数,xi为第i个数据的取值。
S103、技术指标因子计算
除了开盘价,收盘价,最高价,最低价,成交量之外,根据基本数据构建5个技术指标。技术指标通常也是金融领域普遍被大家所利用的用来指导决策的指标,用以反映数据之间存在的内部联系,采用的技术指标如表2所示:
表2技术因子指标
指标名称 | 指标定义 |
MACD | 异同移动平均线 |
AR | 人气指标以分析历史股价为手段的技术指标 |
CMI | 市场波动指数 |
K | 随机指标K值 |
D | 随机指标D值 |
J | 随机指标J值 |
RSI | 相对强弱指数 |
ADX | 平均趋向指数 |
MA5 | 5日移动平均线 |
EMA5 | 5日平滑移动平均线 |
数据归一化
由于的到的数据量纲不一样,因此需要对获取的以及计算出来的数据进行归一化处理,归一化的公式如下:
S2、模型的构建及训练;
包括深度残差网络的构建,强化学习模型的定义,以及模型的训练。为定义深度残差网络的网络深度及一些网络参数,定义强化学习模型的状态,动作,回报等要素,以及构建训练模型。
S201、强化学习要素定义;
请参阅图2,强化学习主要用来探索环境,使用探索的数据跟新神经网络。最终训练结束后使用最后的目标网络来进行交易。在强化学习的过程中,模型根据当前环境模拟投资者做出买入,卖出,持有着三个动作,由于股票市场每日的价格变动。采取一个动作之后会带来收益的变化,以此来当作奖励值,并以此来更新网络,最终找到一个最优的交易策略。
具体到实际的市场当中,操作均是日线级别的。算法模型在每个时刻可以得到当前市场的状态St,模型根据当前的状态和已有的策略采取一个动作a,作用于环境当中,并以后续的收益作为回报r,随着不断的探索以及策略的更新,模型会不断的选择累计奖励最大动作,如此,进行迭代训练,最终得到目标网络,用来指导交易。
在状态的构建方面采用获取的股票基本面数据,以及计算的指标因子,向前取5日,当作当日的状态抽象。由于,在习惯上我们认为距离当前时间越接近的时刻可能对当前的影响更大,因此,对这5日进行一个权重的分配。记当日的权重为1,每向前一日权重衰减为当前的80%。一次构建一个5*20的二维状态向量。
算法模型选择的动作,使用当前值网络计算出动作值函数,然后从动作值函数中根据贪婪策略选取动作值函数最大的那个动作作为当前状态下所要采取的动作,作用于环境当中会得到一个新的状态以及回报;完成强化学习的一个Step之后继续进行动作选择直到一轮结束。
在回报的定义方面,采用收益率作为回报,即在状态St下以开盘价买入,在St+1下以开盘价卖出,因此,回报r可由如下公式计算得到:
r=(Opent+1-Opent)*BuyVolume
其中,r为正代表收益率为正,表明在t时刻采取了有利的动作,r为负表示收益率为负,表明在t时刻采取的动作不利。网络模型也是朝着累计收益率最大的方向进行更行。最终确保在每一部可以采取可获得更高收益率(回报)的动作。
S202、深度残差网络构建
强化学习是为了取探索感知环境,最终得到的最优的策略参数仍然是保存在网络当中的。因此本模型采用了两个结构完全相同的深度神经网络,一个当前值网络,一个目标值网络,当前值网络是用来时时根据当前的状态计算动作值函数的到当前状态下应该采用的动作。由于深度学习是一种监督学习,因此对网络的更新需要有计算值与目标值,因此目标值网络用计算出来的结果构建损失函数更新参数,并且每过一段时间将当前值网络的参数拷贝给目标值网络。最终得到的目标值网络也就是训练的出的模型。
请参阅图3,深度残差网络采用7层神经网络,Layer1-Layer6(其中每层各各有64个神经元),和一个softmax层,此外还包括网络的输入层与输出层。输入层负责输入状态向量,然后在中间层进行逐层的前向传播,在最后通过softmax层将结果转化为3*1的动作向量作为输出。
输入5*20的数据代表状态向量,最后输出3*1的输出结果,代表三个动作的值函数。为了提高模型的拟合效果引入残差原理,也就是跳跃连接。即不同于以往的前向传播的步骤,layer3层得到的结果不仅由layer2层的得到,还由layer1层的输入联合得到。减少训练的误差,提高模型的拟合程度,同时有助于解决梯度消失与梯度爆炸的问题的发生。
普通的前向传播神经网络:
Layer3=Relu(Layer2)
引入残差块的神经网络:
Layer3=Relu(Layer2)+Layer1
其中,Layer1为浅层的输出,Layer2为较深层的输出,这样的传递方式,当浅层所代表的特征已经足够成熟时。如果,此时loss变大,则网络会自动趋于学习成为0,浅层的输出则从恒等映射的路径继续传递。因此残差模块的存在减少了模块中参数的值从而让网络中的参数对反向传到的损失值有了更敏感的响应能力,从而很大程度上促进了网络的优化。
S203、训练模型
请参阅图4,训练模型的步骤具体如下:
S2031、根据所叙述的网络结构使用Tensorflow构建两个结构相同的残差网络(当前值网络和目标值网络)并随机初始化网络参数。
S2032、深度强化学习模型获取当前时刻市场所处的状态St(即为获取的股票的基本面数据及计算出来的因子)并将所获得的状态向量St传入步骤S2031所构建的网络当前值网络当中,计算的出此时所要采取动做at。
在动做at的选择上E-greedy获取,即在模型训练的刚开始采取较大的概率随机的选取一个动作,随着模型拟合程度的增加逐渐降低随机概率并选取,动作值函数最大的动作。
S2033、模型执行动作at并计算采取该动作之后所到达的下一状态St+1,以及所获取的奖励值R。
奖励值R等于当前状态本身的值函数加上执行动作at后所获取的后续奖励。
R=Rt+(CLOSEt-OPENt)*Volume
其中,CLOSEt表示t时刻的收盘价,OPENt表示t时刻的开盘价,Rt表示所获取的收益,Volume表示每次的交易量。
S2034、将本轮的转换序列(St,at,St+1,R)存入记忆回放单元,并检查是否到达最后一个状态。
S2035、若还未到达最后一个状态则跳转至步骤S2032继续探索,否则使用记忆回放单元中所存储的数据依据奖励最大化的原则优化网络参数,并将网络参数拷贝给目标值网络。
优化网络当中我们使用均方误差损失函数通过最小化损失函数来进行学习
m表示从记忆回放单元中取出记录的个数;Ytarget表示目标值网络的输出,Ycurrent表示当前值网络的输出。
S2036、判断整个训练过程是否结束,若未结束则跳转至步骤S2032开始下一轮的探索学习。否则则训练过程结束,将目标值网络的模型及学习好的参数存储到本地即为训练好的模型。
S3、模型的有效性检验;
根据训练好的模型进行回测,以及分析回测结果验证模型有效性两个方面。本发明将训练好的目标值网络层参数导入聚宽平台,构建策略,对样本外数据进行回测,观察效果。
S301、样本外回测;
当模型训练好之后,将训练好的目标网络导入到开源的聚宽平台上,利用平台提供的回测环境进行回测,观察模型的收益率从而分析算法模型的效果。
S302、根据回测结果验证模型有效性
由于最终的方法模型即训练出的网络,那么在构建策略时,需要在回测策略当中构建与目标网络相同的网络结构,并将网络结构导入,这里需要说明的是,由于在模型中,目标网络只是用来计算。参数的更新只存在于当前值网络当中,因此在构建目标网络的时候,就不需要将其构建成残差网络,只需要于当前值网络的结构一样即可。这样,便可将网络的参数导入,并在回测当中传入当日状态计算的出应该采取的动作值函数。采取动作值函数最大的动作进行交易,观察其收益情况。
S4、根据步骤S1至步骤S3当中所做的描述,完成模型的训练及相关的模型有效性的验证。此处根据训练好的模型进行实际交易观察结果参考图5所示。
S401、选取在训练模型时所使用的那五只股票中国平安(601318),中国联通(600050),招商银行(600036),恒瑞医药(600276),中国银行(601988)构建股票池。基础资金设置1000w。
S402、每日开盘后,获取每只股票的历史数据传入所训练好的目标值网络当中根据网络计算出对该只股票该日所应该采取的动作。(由于输出的动作是一个3*1维的值向量)采取动作值最大的动作作为应该执行的动作。
S403、动作为买入,则表示当日以当前价格买入10股;动作为卖出,则表示当日以当前价格卖出10股,动作为持有,则当日不对该只股票进行交易。
S404、将构建好的策略导入聚宽模拟交易服务器上,根据聚宽平台提供的交易接口,每日程序自动进行计算,执行策略的买入卖出或持有动作,进行交易。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中的描述和所示的本发明实施例的组件可以通过各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本算法模型及后面的模型有效性分析中所构建的策略,均采用python语言实现。在模型的构建上使用开源的tensorflow深度学习算法框架,构建网络层,并使用其接口进行模型参数的导出,此外还涉及到python中常用的numpy,pandas数据处理库。方便对数据更好更快的处理。
算法模型的最开始,将从开源平台聚宽上获取到的数据,经过上述4.2中所提及的方法处理之后,存入到我们的本地数据库当中。在股票品种的选择上我们选用中国平安(601318),中国联通(600050),招商银行(600036),恒瑞医药(600276),中国银行(601988)这5只股票。之所以选用这几只股票是因为,一方面这几只股票都是A股市场的老股票,可用数据多。另一方面从其走势中可以发现其基本包含了股票市场可能出现的大多数情况,涵盖面较广。如中国平安在07年之前一直稳步增长从17年末到19年初的这段时间迎来了很大的一波熊市,之后一直到14年平安一直没有较大的趋势,14年之后回暖,总的来看一直上涨。相比于中国平安,恒瑞医药自07年以来到现在一直保持这稳固的上涨可以说是常牛。这些在股票市场上都是比较典范的票。在数据选取的时间上,采用2007-1-1到2014-12-31的数据进行模型的训练,取2015-1-1到2017-12-31的数据进行模型的验证,取2018-1-1到2019-12-31的数据进行回测,观察模型的表现。
数据处理好之后,便是模型环节,依据构建的深度强化学习算法模型,将测试数据读入到模型当中按时间排序,由于构建的强化学习的状态需要取前5日的数据,因此,从第五条数据开始读起往前取4日构建5*20的二维向量,将其当作第一个状态。
对于模型当中的当前值网络与目标值网络,在模型建立时首先通过tensorflow提供的随机方法对其参数进行初始化。
便由计算结果进行更新,构建好状态与初始化网络参数之后,将状态传入初始化后的网络,计算的出一个1*3为的的动作值向量,根据动作选择算法从三个值中选取值最大的动作作为该状态下所要采取的动作,并执行该动作,观察后续的收益率作为回报;
将此次探索过程存入记忆回放单元,方便之后的训练,至此,模型的一步迭代完成。
一步完成之后,检查其下一状态是否已经到达末尾,如若不是,则将此状态当作当前状态继续进行训练;若已经到达最后一个状态,此时代表训练结束,则将状态置为初始的那个状态,并且使用记忆回放单元中所存储的数据对当前值网络进行学习,学习完成之后,将当前值网络中的参数拷贝到目标值网络当中。
初始时设置一个权重weight,算法值行每一次使用随机算法随机一个值randomNumber,若randomNumber大于权重则选取动作值向量中值最大的那个动作,作为当前动作;否则,则随机选取一个动作。并且每经过一轮训练weight减小为之前的90%。这样,在模型的刚开始,由于环境是未知的,因此模型有很大的概率是随机选择动作。随着模型不断的学习,网络慢慢对环境有一定程度的拟合,模型便逐步以更大的概率选择动作值向量中值最大的那个所对应的动作,即保证了,模型对环境的有效探索,同时也让模型更快的达到最优。
在训练的次数上,设置参数iteration=500,即模型需要训练500轮,从观察中发现,在训练500轮的时候模型的下过基本上已经达到最后,之后在进行训练的化模型已无更大的提升。因此将训练回合数设置为500这样的训练次数既可以保证模型由更好的拟合,也不至于是训练次数过多导致资源的额外浪费。
训练完之后,使用验证数据对模型进行一定的验证。将我们的验证数据,按照同样的方式处理。但此时模型已经不需要训练,因此,只需将数据输入到目标值网络当中观察其输出的动作,并根据该只股票实际的涨跌,判断决策的正确率,最终的出模型样本外的验证效果。
至此模型训练过程就已经完成。但是,构建深度强化学习算法模型是为了进行量化交易的,最终目的就是为了将训练好的模型作用于构建交易策略上,代替人工进行自动化交易。因此,将模型导入开源的聚宽平台(此平台可以提供一个策略的回测环境)构建交易策略,选股方面仍采用训练时所用的5只股票,初始资金设置为1000万。回测时每日根据之前相同的规则构建状态变量,输入目标值网络当中,输出三位的动作值向量,采用动作值最大的动作进行交易。回测时间设置为2018-1-1到2019-12-31日,观察其收益率。
综上所述,本发明一种基于深度强化学习的股票量化交易方法,针对于模型现有的不足,一方面引入了残差网络,改进了模型拟合程度方面的问题,另一方面,优化了对于强化学习状态的抽象,使对于股票每日的状态有了更好的抽象。之后构建策略实现了自动化的交易。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (10)
1.一种基于深度强化学习的股票量化交易方法,其特征在于,包括以下步骤:
S1、获取基本面数据并进行预处理,构建技术指标因子;
S2、根据步骤S1的基本面数据和技术指标因子构建深度残差网络,定义深度强化学习模型并进行训练;
S3、对步骤S2训练好的深度强化学习模型进行回测,分析回测结果验证强化学习模型的有效性;
S4、利用步骤S3回测后的深度强化学习模型构建股票池,获取每只股票的历史数据,传入步骤S3训练好的目标网络中,计算对应采取动作,完成交易策略构建,根据策略实现股票量化交易。
2.根据权利要求1所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S1具体为:
S101、采用聚宽量化平台提供的API接口获取股票的日线数据,对日线数据进行预处理后存入本地数据库;获取基本数据后,对数据进行清洗,计算数据的技术指标,然后存入数据库中;
S102、采用均值方式对步骤S101获取的基本数据中的缺失情况进行填充;
S103、对步骤S101和步骤S102的数据进行归一化处理。
4.根据权利要求1所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S2具体为:
S201、定义强化学习用于探索环境,根据当前环境模拟投资者做出买入,卖出或持有动作,采取一个动作之后能够带来收益的变化当作奖励值,使用探索环境所产生的数据深度强化学习当中的深度残差网络;
S202、深度神经网络采用7层残差神经网络,包括两个结构完全相同的深度神经网络,一个为当前值网络,一个为目标值网络,当前值网络用于时时根据当前的状态计算动作值函数的到当前状态下应该采用的动作;目标值网络用计算的结果构建损失函数更新参数,并将当前值网络的参数拷贝给目标值网络;作为模型结构构建深度强化学习算法模型;
S203、采用强化学习的所探索的数据作为当前值与目标值网络的输入,动作值函数作为输出,对步骤S202构建的模型进行训练。
5.根据权利要求4所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S203具体为:
S2031、根据网络结构使用Tensorflow构建两个结构相同的深度残差网络并随机初始化网络参数;
S2032、深度强化学习模型获取当前时刻市场所处的状态St并传入步骤S2031所构建的网络当前值网络当中,计算此时所要采取的动作at;
S2033、模型执行动作at并计算采取对应动作之后所到达的下一状态St+1,以及所获取的奖励值R;
S2034、将本轮的转换序列(St,at,St+1,R)存入记忆回放单元,并检查是否到达最后一个状态;
S2035、若还未到达最后一个状态则跳转至步骤S2032继续探索,否则使用记忆回放单元中所存储的数据依据奖励最大化的原则优化网络参数,并将网络参数拷贝给目标值网络;
S2036、判断整个训练过程是否结束,若未结束则跳转至步骤S2032开始下一轮的探索学习;否则训练过程结束,将目标值网络的模型及学习好的参数存储到本地即为训练好的模型。
6.根据权利要求5所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S2033中,奖励值R等于当前状态本身的值函数加上执行动作at后所获取的后续奖励,具体计算如下:
R=Rt+(CLOSEt-OPENt)*Volume
其中,CLOSEt表示t时刻的收盘价,OPENt表示t时刻的开盘价,Rt表示所获取的收益,Volume表示每次的交易量。
7.根据权利要求1所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S3具体为:
S301、当步骤S2的模型训练好后,将训练好的目标网络导入开源的聚宽平台上,利用平台提供的回测环境进行回测,观察模型的收益率,分析算法模型的效果;
S302、在构建策略时,在回测策略当中构建与目标网络相同的网络结构,并将网络结构导入,参数的更新只存在于当前值网络当中,导入网络参数,并在回测当中传入当日状态计算的出采取的动作值函数;采取动作值函数最大的动作进行交易。
8.根据权利要求1所述的基于深度强化学习的股票量化交易方法,其特征在于,步骤S4具体为:
S401、选取在训练模型时所使用的股票构建股票池;
S402、每日开盘后,获取股票池内股票的历史数据,传入所训练好的目标值网络当中,计算对应股票该日采取的动作,将采取动作值最大的动作作为执行动作;
S403、当动作为买入时,表示当日以当前价格买入10股;当动作为卖出时,表示当日以当前价格卖出10股,当动作为持有时,当日不对股票进行交易;
S404、将步骤S3构建好的策略导入聚宽模拟交易服务器上,根据聚宽平台提供的交易接口,每日自动进行计算,执行策略的买入卖出或持有动作,实现量化交易。
9.一种存储一个或多个程序的计算机可读存储介质,其特征在于,所述一个或多个程序包括指令,所述指令当由计算设备执行时,使得所述计算设备执行根据权利要求1至8所述的方法中的任一方法。
10.一种计算设备,其特征在于,包括:
一个或多个处理器、存储器及一个或多个程序,其中一个或多个程序存储在所述存储器中并被配置为所述一个或多个处理器执行,所述一个或多个程序包括用于执行根据权利要求1至8所述的方法中的任一方法的指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718040.5A CN111861751A (zh) | 2020-07-23 | 2020-07-23 | 基于深度强化学习的股票量化交易方法、存储介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010718040.5A CN111861751A (zh) | 2020-07-23 | 2020-07-23 | 基于深度强化学习的股票量化交易方法、存储介质及设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111861751A true CN111861751A (zh) | 2020-10-30 |
Family
ID=72949813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010718040.5A Pending CN111861751A (zh) | 2020-07-23 | 2020-07-23 | 基于深度强化学习的股票量化交易方法、存储介质及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111861751A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769630A (zh) * | 2021-04-06 | 2021-05-07 | 北京焦点新干线信息技术有限公司 | 开盘场景的流量回放方法及装置 |
CN114240647A (zh) * | 2021-11-24 | 2022-03-25 | 厦门小蚜虫量化软件开发有限公司 | 一种基于esg指标的etf量化交易方法及系统 |
CN116934486A (zh) * | 2023-09-15 | 2023-10-24 | 深圳格隆汇信息科技有限公司 | 一种基于深度学习的决策评估方法及系统 |
-
2020
- 2020-07-23 CN CN202010718040.5A patent/CN111861751A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112769630A (zh) * | 2021-04-06 | 2021-05-07 | 北京焦点新干线信息技术有限公司 | 开盘场景的流量回放方法及装置 |
CN112769630B (zh) * | 2021-04-06 | 2021-06-25 | 北京焦点新干线信息技术有限公司 | 开盘场景的流量回放方法及装置 |
CN114240647A (zh) * | 2021-11-24 | 2022-03-25 | 厦门小蚜虫量化软件开发有限公司 | 一种基于esg指标的etf量化交易方法及系统 |
CN116934486A (zh) * | 2023-09-15 | 2023-10-24 | 深圳格隆汇信息科技有限公司 | 一种基于深度学习的决策评估方法及系统 |
CN116934486B (zh) * | 2023-09-15 | 2024-01-12 | 深圳市蓝宇飞扬科技有限公司 | 一种基于深度学习的决策评估方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wu et al. | Adaptive stock trading strategies with deep reinforcement learning methods | |
WO2021082809A1 (zh) | 一种外汇时间序列预测的训练优化方法 | |
WO2021082811A1 (zh) | 一种外汇时间序列预测方法 | |
Wang et al. | DeepTrader: a deep reinforcement learning approach for risk-return balanced portfolio management with market conditions Embedding | |
CN111861751A (zh) | 基于深度强化学习的股票量化交易方法、存储介质及设备 | |
WO2021082810A1 (zh) | 一种外汇时间序列预测的构建方法 | |
CN115660086A (zh) | 基于逻辑规则与强化学习的知识图谱推理方法 | |
Wu et al. | An uncertainty-oriented cost-sensitive credit scoring framework with multi-objective feature selection | |
Kang et al. | A CWGAN-GP-based multi-task learning model for consumer credit scoring | |
Chen et al. | A combined mixed integer programming and deep neural network-assisted heuristics algorithm for the nurse rostering problem | |
CN116703607A (zh) | 一种基于扩散模型的金融时间序列预测方法与系统 | |
US20230252387A1 (en) | Apparatus, method and recording medium storing commands for providing artificial-intelligence-based risk management solution in credit exposure business of financial institution | |
CN116090522A (zh) | 一种基于因果反馈的缺失数据集因果关系发现方法及系统 | |
Ge et al. | Single stock trading with deep reinforcement learning: A comparative study | |
Zhang et al. | A hybrid forecasting model based on deep learning feature extraction and statistical arbitrage methods for stock trading strategies | |
Bai et al. | Commercial Bank Credit Grading Model Using Genetic Optimization Neural Network and Cluster Analysis | |
Pei | Construction and application of talent evaluation model based on nonlinear hierarchical optimization neural network | |
Wang et al. | Optimizing financial engineering time indicator using bionics computation algorithm and neural network deep learning | |
Nur | Comparing the Accuracy of Multiple Discriminant Analyisis, Logistic Regression, and Neural Network to estimate pay and not to pay Dividend | |
Hao et al. | Application of deep reinforcement learning in financial quantitative trading | |
Xu et al. | Novel Early-Warning Model for Customer Churn of Credit Card Based on GSAIBAS-CatBoost. | |
CN113327162B (zh) | 一种信贷风控规则制定系统 | |
KR102565219B1 (ko) | 빅데이터 기반 투자성향 분석 결과에 따른 분산투자 추천 시스템 | |
Supriyanto | Comparison of Grid Search and Evolutionary Parameter Optimization with Neural Networks on JCI Stock Price Movements during the Covid 19 | |
Misitano | INFRINGER: a novel interactive multi-objective optimization method able to learn a decision maker’s preferences utilizing machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |