CN108305167A - 一种基于深度增强学习算法的外汇交易方法及系统 - Google Patents
一种基于深度增强学习算法的外汇交易方法及系统 Download PDFInfo
- Publication number
- CN108305167A CN108305167A CN201810030006.1A CN201810030006A CN108305167A CN 108305167 A CN108305167 A CN 108305167A CN 201810030006 A CN201810030006 A CN 201810030006A CN 108305167 A CN108305167 A CN 108305167A
- Authority
- CN
- China
- Prior art keywords
- account
- data
- model
- price
- training
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (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
本发明公开了一种基于深度增强学习算法的外汇交易方法及系统,包括步骤:1)对外汇交易场景建立增强学习Double‑DQN模型;2)构建深度神经网络模型并训练增强学习Double‑DQN模型,学习Q函数;3)加载训练好的模型参数,使用不同特征的训练数据集,重复步骤2)进行叠加训练和参数微调,根据各自需要调整模型更新的周期,定期在不同特征的训练数据集上叠加训练,不断使用新特征的数据集训练模型,使模型拥有更好的扩展性和鲁棒性。本发明使模型能够在不同的数据环境下做出有效的外汇交易动作,并利用不同的训练集对模型进行叠加训练,使模型能在复杂外汇数据流的环境下,更加健壮和鲁棒。
Description
技术领域
本发明涉及机器学习中的深度学习、增强学习的技术领域,尤其是指一种基于深度增强学习算法的外汇交易方法及系统,基于深度增强学习算法Double-DQN在外汇交易平台Metatrader4的应用,同时还需要异步消息队列ZMQ进行跨平台的进程通信作为实时智能交易的技术支撑。
背景技术
传统的机器学习方法用于金融交易,通常是有监督算法学习数据特征的过程。常用的方法是构建多特征的训练数据,首先根据经验或者金融指标,对训练数据进行标记,再使用有监督的分类算法进行建模和学习,最后在测试集上测试。有监督的机器学习算法,训练样本之间独立同分布,对于分类问题往往追求准确率,即追求单次交易或行为所带来的收益。但是,金融数据背后可能蕴藏着各种潜在因素,包括人为调控的随机因素、国家政策因素、经济发展因素等,追求单次的收益,并不能带来长远的利润。同时,在复杂的潜在因素影响下,传统的机器学习特征提取的能力显得极为有限,需要更高层次的抽象才能更好地学习数据特征。
增强学习,本质是一个马尔科夫决策过程,包含环境和智能代理两个核心部分,智能代理与环境进行交互,伴随状态转移和感知环境给予的奖励,如图4-1。因此,可以通过一个神经网络模型作为智能代理,利用每次动作产生的状态转移和即时回报去训练模型,使智能代理与环境交互产生的动作序列带来的累计回报达到最大。使用这样的方式训练模型,学习的是与环境交互的策略,该策略兼顾了当前情况下的即时回报和未来的回报,因此每次采取的动作都是一个具有长远考虑的最优决策。
深度学习与增强学习的结合称为深度增强学习Deep Reinforcement Learning(DRL),即用深度神经网络去提取数据特征,训练增强学习算法模型,使得模型能够充分学习复杂外部环境的规律,并在不同的环境下做出正确的动作,并且在长期的交互中,获得较高的累计回报。
因为外汇市场广阔,受限于各种政策、经济因素,人为操纵的随机性比较小,适合用以结合人工智能的新技术去研究,因此本发明提出了一种基于深度增强学习算法的外汇交易方法及系统。
发明内容
本发明的目的在于克服现有技术的不足,提出了一种行之有效、科学合理的基于深度增强学习算法的外汇交易方法及系统,将人工智能的技术与外汇交易相结合。
为实现上述目的,本发明所提供的技术方案,如下:
一种基于深度增强学习算法的外汇交易方法,包括以下步骤:
1)对外汇交易场景建立增强学习Double-DQN模型;
2)构建深度神经网络模型并训练增强学习Double-DQN模型,学习Q函数;
3)加载训练好的模型参数,使用不同特征的训练数据集,重复步骤2)进行叠加训练和参数微调,且根据各自需要调整模型更新的周期,定期在不同特征的训练数据集上叠加训练,不断使用新特征的数据集训练模型,使模型拥有更好的扩展性和鲁棒性;其中,不同特征的训练数据集包括总体上升趋势、总体下降趋势、总体先上升再下降、总体先下降在上升、总体相对平稳这些特征,也能够基于国际外汇政策的变动、各国家的经济发展的变化采集对应时间段的数据集。
在步骤1)中,使用外汇货币对的时间序列数据构建环境,深度神经网络构建智能代理,其中智能代理与环境进行交互,对增强学习的马尔科夫决策过程建模如下:
1)对于智能代理的状态空间{sn},定义为外汇价格序列和账户资产情况,其中账户资产情况使用自定义的指标或者附加其它的金融指标,自定义的指标有money_askt、money_bidt、ratet,分别表示ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,计算公式如下:
ratet=Accountt/Account_All
式中,lotsi表示对应订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元;pip表示外汇交易中的一个点,取值0.0001;lever表示杠杆;Accountt表示当前t时刻账户的净资产,Account_All表示账户初始资产;
智能代理的状态转移由其采取不同的动作而决定,从初始状态到最终状态称的一条状态转移轨迹为一个情节,称为episode;当账户当前净资产占账户初始资产比小于设定的阈值时,则进入最终状态,当前情节终止;
2)对于智能代理的动作空间A={-2,-1,0,1,2},分别代表平卖动作、卖出动作、持有动作、买入动作、平买动作;对于五个交易动作,买入和卖出动作,会使用账户中的资金去交易,使账户中增加一笔ASK/BID订单,每次动作会交易0.01lots;对于平买动作,会把账户中ASK订单做平仓操作,平卖动作同理;持有动作,则保持账户中现有订单,不操作;
每个交易动作,都会改变账户资产的状态,并会产生即时回报rt,即时回报计算公式如下:
dpricet=pricet+1-pricet
式中,N_orders表示账户当前的订单数;T(orderi)表示订单类型,ASK订单取值为0,BID订单取值为1;lotsi表示每笔订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元,dpricet表示当前t时刻价格差,表示下一时刻的外汇价格与当前时刻外汇价格的差;lever表示采用的杠杆,默认取1。
在步骤2)中,构建的深度神经网络模型的输入数据维度是(N+M)*1,N代表用长度为N的时间窗口去截取价格时间序列,最后的M维包括ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,或者附加其它的金融指标;模型最终的输出是5个神经元的全连接层,分别表示卖出动作、平卖动作、持有动作、买入动作、平买动作这五个动作在当前环境下的Q值;
其中,使用价格序列和账户资产情况作为神经网络输入,所述价格序列使用秒、分、时中的一种或者多种粒度的数据,账户资产情况使用自定义的指标或者附加其它的金融因子,并将以上不同量纲的数据同时作为网络的输入;对于不同量纲的输入数据,模型将数据进行切分并输入到不同的神经网络,进行不同的特征提取,最后把多个模型的输出进行融合,再统一输出到最后一层全连接网络;以上深度神经网络模型主要有两种设计方案,分别为卷积神经网络模型和长短期记忆神经网络模型:
a、卷积神经网络的模型
使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过卷积神经网络和全连接神经网络分别进行特征提取;矩阵A先使用卷积层,接着将结果拉伸输出到全连接层;矩阵B使用全连接层,并与卷积神经网络的输出进行融合,最后输出层是5个神经元的全连接网络;其中隐含层激活函数都使用ReLU,最后输出层不使用激活函数;使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个卷积神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络;其中,隐含层激活函数都使用ReLU,输出层不使用激活函数;
b、长短期记忆神经网络模型
长短期记忆神经网络模型结构与上述卷积神经网络类似,使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过长短期记忆神经网络和全连接神经网络分别进行特征提取;矩阵A通过长短期记忆神经网络,矩阵B使用全连接层并与长短期记忆神经网络的输出进行融合,最后输出层是5个神经元的全连接网络;使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个长短期记忆神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络;
在训练增强学习Double-DQN模型的过程中,使用智能代理动作的正确率、带来的平均收益来衡量模型训练效果,计算方法如下:
式中,ri、rj、rt都表示每次采取动作获得的即时汇报,steps表示采取的动作总次数,I是指示函数。
一种基于深度增强学习算法的外汇交易系统,包括:
数据采集模块,该模块采用PUB/SUB模式,交易服务端作为发布者,客户端作为订阅者;其中,所述交易服务端利用异步消息队列发送实时的外汇价格序列;所述客户端接收交易服务端发送的实时外汇价格序列数据流,存储为不同长度、不同走势的时间序列数据集;
模型训练模块,用于对外汇交易场景建立增强学习Double-DQN模型以及构建深度神经网络模型并训练增强学习Double-DQN模型和学习Q函数;其中,加载训练好的模型参数,使用不同特征的训练数据集,对Double-DQN模型进行叠加训练和参数微调;智能代理与环境交互会产生状态转移和即时回报,该模块通过状态转移和即时回报的数据训练深度神经网络,使智能代理每次采取动作的累计折扣即时回报最大化,并且定期使用不同的数据对深度神经网络进行叠加训练,参数微调;该模块训练好的模型能够直接用于外汇交易,即根据不同的实时外汇数据,输出对应的交易动作;
智能交易模块,该模块采用PUB/SUB、REQ/REP模式,客户端作为订阅者和请求者,交易服务端作为发布者和应答者;其中,所述交易服务端发送实时外汇价格序列数据,接收、解析并执行客户端发送的服务请求指令,再将执行结果返回给客户端;所述客户端利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易。
使用外汇交易平台Metatrader4作为交易服务端进行编程,使用轻量级的异步消息队列ZMQ发送实时外汇价格序列数据流,并在客户端接收实时外汇价格序列数据。
在智能交易模块中,客户端的功能不仅是利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易;同时,还提供外汇价格查询、订单查询、账户信息查询这些基本服务指令。
本发明与现有技术相比,具有如下优点与有益效果:
1、传统的有监督方法训练模型,需要手动进行样本标记,但是针对时序的金融数据进行标记,通常需要使用一些金融指标或者历史交易记录进行参考评估,但是选取哪些因素或者指标进行参考,具有一定的主观因素,并不能保证准确性,因此也不能保证训练模型的准确性。本发明基于增强学习算法,针对外汇交易过程建模,使用原始价格数据,不需要手动标记,模型的训练通过每次动作获得的即时回报进行学习,学习到的是一种与环境交互的策略,相比于传统的手工标记数据,该方法更为准确和直接有效。
2、针对复杂的金融市场,用传统的机器学习有监督方法建立训练集并训练分类器,旨在追求单次行为的正确率,这不能保证模型长期有效并带来长期收益。本发明基于增强学习算法,是一种基于马尔科夫决策过程的建模方法,对外汇交易过程建模,训练深度神经网络模型,该过程学习的是一种交易策略,不仅仅是单一的分类。其中Q-learning的学习方式,通过设置γ参数的大小,使训练得到的模型在决策上能一定程度上地兼顾即时回报和未来行为带来的回报,从而做出使累计折扣即时回报尽可能大的动作。
3、针对外汇价格序列数据构建环境,采用多模型融合的深度神经网络模型,使得神经网络的输入更加多元、灵活,即构建更复杂的外部环境。比如,使用价格序列和账户资产情况作为神经网络输入,价格序列可以使用秒、分、时等一种或者多种粒度的数据,账户资产情况也可以使用自定义的指标或者附加其它的金融指标,并将以上不同量纲的数据同时作为网络的输入。对于不同量纲的输入数据,模型将数据进行切分并输入到不同的神经网络,进行不同的特征学习,最后把多个模型的输出进行融合,再统一输出到最后一层网络,这种方式使得构建的环境拥有更加丰富完整的信息,并对不同量纲的数据进行不同的特征提取方式,可以更充分的学习外汇市场的规律,利于模型的训练出更好的交易策略。
4、针对复杂多变的外汇市场,模型需要进行增量式的训练,因此,定期使用不同特征的价格时间序列去进行叠加训练、参数微调,这也是一种迁移学习的过程,使得模型更加完善和健壮。
5、本发明是自动智能交易方法及系统,利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列将交易信号发送给外汇交易平台,实时自动智能交易,并可以带来一定的经济收益。
附图说明
图1为本发明的框架图。
图2-1为本发明的深度神经网络结构示意图。
图2-2为本发明的一个实施例的卷积神经网络模型结构图。
图2-3为本发明的一个实施例的长短期记忆神经网络模型结构图。
图3为本发明的一个实施例的输入数据的样例图。
图4-1为马尔科夫决策过程状态转移示意图。
图4-2为本发明训练增强学习模型的算法流程图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
如图1所示,本实施例所提供的基于深度增强学习算法的外汇交易方法,包括以下步骤:
1)对外汇交易场景建立增强学习Double-DQN模型
使用外汇货币对的时间序列数据构建环境,深度神经网络构建智能代理,其中智能代理与环境进行交互,对增强学习的马尔科夫决策过程建模,如图4-1所示(注释:马尔科夫决策过程,智能代理与环境交互,定义动作空间A={0,1};智能代理采取不同的动作,会从环境中获得不同的即时回报,从初始状态到最终状态称为一个情节,即episode;每一次状态转移称为一步,即step;因此,一个情节包含了<s1,a1,r1,s2,terminal1>……<sn,an,rn,sn+1,terminaln>的序列,增强学习的训练目标,就是求使累计折扣回报达到最大的策略)。
对于智能代理的状态空间{sn},定义为外汇价格序列和账户资产情况,其中账户资产情况使用自定义的指标或者附加其它的金融指标,自定义的指标有money_askt、money_bidt、ratet,分别表示ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,计算公式如下:
ratet=Accountt/Account_All
其中,lotsi表示对应订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元;pip表示外汇交易中的一个点,取值0.0001;lever表示杠杆;Accountt表示当前t时刻账户的净资产,Account_All表示账户初始资产。智能代理的状态转移由其采取不同的动作而决定,从初始状态到最终状态称的一条状态转移轨迹为一个情节,当账户当前净资产占账户初始资产比小于设定的阈值时,则进入最终状态,当前情节终止。
对于智能代理的动作空间A={-2,-1,0,1,2},分别代表平卖动作、卖出动作、持有动作、买入动作、平买动作。对于五个交易动作,买入和卖出动作,会使用账户中的资金去交易,使账户中增加一笔ASK/BID订单,每次动作会交易0.01lots;对于平买动作,会把账户中ASK订单做平仓操作,平卖动作同理;持有动作,则保持账户中现有订单,不操作。每个交易动作,都会改变账户资产的状态,并会产生即时回报rt,即时回报计算公式如下:
dpricet=pricet+1-pricet
其中N_orders表示账户当前的订单数;T(orderi)表示订单类型,ASK订单取值为0,BID订单取值为1;lots表示每笔订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元,dpricet表示当前t时刻价格差,表示下一时刻的外汇价格与当前时刻外汇价格的差;lever表示采用的杠杆,默认取1。
2)构建深度神经网络模型(如图2-1所示)并训练增强学习Double-DQN模型及学习Q函数,具体如下:
构建的深度神经网络模型的输入数据维度是(N+M)*1,N代表用长度为N的时间窗口去截取价格时间序列,最后的M维包括ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,或者附加其它的金融指标。模型最终的输出是5个神经元的全连接层,分别表示卖出动作、平卖动作、持有动作、买入动作、平买动作这五个动作在当前环境下的Q值。
其中,使用价格序列和账户资产情况作为神经网络输入,其中价格序列使用秒、分、时等一种或者多种粒度的数据,账户资产情况使用自定义的指标,或者附加其它的金融因子,并将以上不同量纲的数据同时作为网络的输入;对于不同量纲的输入数据,模型将数据进行切分并输入到不同的神经网络,进行不同的特征提取,最后把多个模型的输出进行融合,再统一输出到最后一层全连接网络;以上深度神经网络模型主要有两种设计方案,分别为卷积神经网络模型(如图2-2所示)和长短期记忆神经网络模型(如图2-3所示):
a、卷积神经网络模型
使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过卷积神经网络和全连接神经网络分别进行特征提取,矩阵A先使用卷积层,接着将结果拉伸输出到全连接层;矩阵B使用全连接层,并与卷积神经网络的输出进行融合,最后输出层是5个神经元的全连接网络;其中隐含层激活函数都使用ReLU,最后输出层不使用激活函数,一种神经网络结构参数设置如图2-2。使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个卷积神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络;其中,隐含层激活函数都使用ReLU,输出层不使用激活函数。
b、长短期记忆神经网络模型
长短期记忆神经网络模型结构与上述卷积神经网络类似,使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过长短期记忆神经网络和全连接神经网络分别进行特征提取;矩阵A通过长短期记忆神经网络,矩阵B使用全连接层并与长短期记忆神经网络的输出进行融合,最后输出层是5个神经元的全连接网络,一种神经网络结构参数设置如图2-3。使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个长短期记忆神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络。
训练增强学习Double-DQN模型的过程如图4-2,使用智能代理动作的正确率、带来的平均收益来衡量模型训练效果,计算方法如下:
其中,ri、rj、rt都表示每次采取动作获得的即时汇报,steps表示采取的动作总次数,I是指示函数。
3)加载训练好的模型参数,使用不同特征的训练数据集,重复步骤2)进行叠加训练和参数微调,且可根据各自需要调整模型更新的周期,定期在不同特征的训练数据集上叠加训练,不断使用新特征的数据集训练模型,使模型拥有更好的扩展性和鲁棒性;其中,不同特征的训练数据集可以包括总体上升趋势、总体下降趋势、总体先上升再下降、总体先下降在上升、总体相对平稳这些特征,也可以基于国际外汇政策的变动、各国家的经济发展的变化采集对应时间段的数据集。
本实施例所提供的基于深度增强学习算法的外汇交易系统,包括:
数据采集模块,该模块采用PUB/SUB模式,交易服务端作为发布者,客户端作为订阅者;其中,所述交易服务端利用异步消息队列发送实时的外汇价格序列;所述客户端接收交易服务端发送的实时外汇价格序列数据流,存储为不同长度、不同走势的时间序列数据集;比如采取最近一个月,一年的价格时间序列,也可以根据需要,采取不同走势的价格序列,比如总体呈现上升趋势的数据、总体下降趋势的数据等等,也可以采取某个经济政策下的价格序列。其中,在数据采集模块中,使用外汇交易平台Metatrader4作为交易服务端进行编程,使用轻量级的异步消息队列ZMQ发送实时外汇价格序列数据流,并在客户端接收实时外汇价格序列数据流,存储为不同长度、不同走势的时间序列数据集。
模型训练模块,用于对外汇交易场景建立增强学习Double-DQN模型及构建深度神经网络模型并训练增强学习Double-DQN模型和学习Q函数;加载训练好的模型参数,使用不同特征的训练数据集,对Double-DQN模型进行叠加训练和参数微调;智能代理与环境交互会产生状态转移和即时回报,该模块通过状态转移和即时回报的数据训练深度神经网络,使智能代理与环境交互产生的动作序列带来的累计折扣即时回报最大化,并且定期使用不同的数据对深度神经网络进行叠加训练,参数微调;该模块训练好的模型可以直接用于外汇交易,即根据不同的实时外汇数据,输出对应的交易动作。
智能交易模块,该模块采用PUB/SUB、REQ/REP模式,客户端作为订阅者和请求者,交易服务端作为发布者和应答者;其中,所述交易服务端发送实时外汇价格序列数据,接收、解析并执行客户端发送的服务请求指令,再将执行结果返回给客户端;所述客户端利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易。其中,在智能交易模块中,客户端的功能不仅是利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易;同时,还提供外汇价格查询、订单查询、账户信息查询、等其它基本服务指令。
下面以外汇货币对中的欧元\美元的买入价格为例,对本实施例上述方法及系统进行具体说明,系统框架如图1所示,深度神经网络结构示意图如图2-1所示,其具体情况如下:
在数据采集模块中,交易服务端使用ZMQ进行编程,发送Metatrader4中EUR\USD的实时价格序列数据流,客户端监听本地端口,将接收到的价格序列保存下来,存储为不同长度、不同走势的时间序列数据集,包括总体呈现上升趋势的数据、总体下降趋势的数据。
在模型训练模块中,使用卷积神经网络模型,接收维度为(20+3)*1的输入数据如图3所示(注释:神经网络输入样本的数据格式,前20个数据代表EUR\USD连续20个价格序列,最后3个数据代表账户资产状况,初始状态下,最后三维的值为0.0、0.0、1.0),因为输入数据由两部分不同量纲的数据组成,故将其切分为20*1和3*1的两个矩阵,通过不同的神经网络进行特征学习,神经网络模型结构如图2-2所示。完成初步训练之后,加载训练好的模型参数,使用其它的不同特征的训练数据集,进行叠加训练,参数微调。
在智能交易模块中,利用训练好的模型接收外汇实时价格数据流给出交易动作,再利用异步消息队列将包含交易动作的指令发送给外汇交易平台,发起服务请求,实时自动智能交易。
本发明在数据采集模块和智能交易模块,使用MQL4、ZMQ在模型训练模块,使用深度学习训练增强学习模型Double-DQN,使用Python2.7,基于Theano深度学习框架Keras以及Keras-rl,实验运行的GPU型号为2块NVIDIA GeForce GTX 1080Ti,一共22GB显存。
长短期记忆神经网络模型,训练方法与上述类似,结构如图2-3所示。
综上所述,本发明利用深度增强学习在策略学习上的优势对外汇交易场景建模,充分发挥了深度神经网络的特征提取能力,使模型能够学习外汇市场复杂的数据特征并拟合外汇交易动作的Q函数,使模型在不同的数据环境下做出有效的外汇交易动作;并利用不同的训练集对模型进行叠加训练,使得模型能够在复杂外汇数据流的环境下,更加健壮和鲁棒。同时,利用异步消息队列编程,使得模型和外汇交易服务端进行及时交互,实现自动智能交易。因而本发明具有实际应用价值,值得推广。
以上所述之实施例子只为本发明之较佳实施例,并非以此限制本发明的实施范围,故凡依本发明之形状、原理所作的变化,均应涵盖在本发明的保护范围内。
Claims (6)
1.一种基于深度增强学习算法的外汇交易方法,其特征在于,包括以下步骤:
1)对外汇交易场景建立增强学习Double-DQN模型;
2)构建深度神经网络模型并训练增强学习Double-DQN模型,学习Q函数;
3)加载训练好的模型参数,使用不同特征的训练数据集,重复步骤2)进行叠加训练和参数微调,且根据各自需要调整模型更新的周期,定期在不同特征的训练数据集上叠加训练,不断使用新特征的数据集训练模型,使模型拥有更好的扩展性和鲁棒性;其中,不同特征的训练数据集包括总体上升趋势、总体下降趋势、总体先上升再下降、总体先下降在上升、总体相对平稳这些特征,也能够基于国际外汇政策的变动、各国家的经济发展的变化采集对应时间段的数据集。
2.根据权利要求1所述的一种基于深度增强学习算法的外汇交易方法,其特征在于:在步骤1)中,使用外汇货币对的时间序列数据构建环境,深度神经网络构建智能代理,其中智能代理与环境进行交互,对增强学习的马尔科夫决策过程建模如下:
1)对于智能代理的状态空间{sn},定义为外汇价格序列和账户资产情况,其中账户资产情况使用自定义的指标或者附加其它的金融指标,自定义的指标有money_askt、money_bidt、ratet,分别表示ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,计算公式如下:
ratet=Accountt/Account_All
式中,lotsi表示对应订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元;pip表示外汇交易中的一个点,取值0.0001;lever表示杠杆;Accountt表示当前t时刻账户的净资产,Account_All表示账户初始资产;
智能代理的状态转移由其采取不同的动作而决定,从初始状态到最终状态称的一条状态转移轨迹为一个情节,称为episode;当账户当前净资产占账户初始资产比小于设定的阈值时,则进入最终状态,当前情节终止;
2)对于智能代理的动作空间A={-2,-1,0,1,2},分别代表平卖动作、卖出动作、持有动作、买入动作、平买动作;对于五个交易动作,买入和卖出动作,会使用账户中的资金去交易,使账户中增加一笔ASK/BID订单,每次动作会交易0.01lots;对于平买动作,会把账户中ASK订单做平仓操作,平卖动作同理;持有动作,则保持账户中现有订单,不操作;
每个交易动作,都会改变账户资产的状态,并会产生即时回报rt,即时回报计算公式如下:
dpricet=pricet+1-pricet
式中,N_orders表示账户当前的订单数;T(orderi)表示订单类型,ASK订单取值为0,BID订单取值为1;lotsi表示每笔订单交易的数量,默认0.01;standard_order,表示1标准手,为100000美元,dpricet表示当前t时刻价格差,表示下一时刻的外汇价格与当前时刻外汇价格的差;lever表示采用的杠杆,默认取1。
3.根据权利要求1所述的一种基于深度增强学习算法的外汇交易方法,其特征在于:在步骤2)中,构建的深度神经网络模型的输入数据维度是(N+M)*1,N代表用长度为N的时间窗口去截取价格时间序列,最后的M维包括ASK类型订单使用的金额占当前净资产的比重、BID类型订单使用的金额占当前净资产的比重和账户当前净资产占账户初始资产的比重,或者附加其它的金融指标;模型最终的输出是5个神经元的全连接层,分别表示卖出动作、平卖动作、持有动作、买入动作、平买动作这五个动作在当前环境下的Q值;
其中,使用价格序列和账户资产情况作为神经网络输入,所述价格序列使用秒、分、时中的一种或者多种粒度的数据,账户资产情况使用自定义的指标或者附加其它的金融因子,并将以上不同量纲的数据同时作为网络的输入;对于不同量纲的输入数据,模型将数据进行切分并输入到不同的神经网络,进行不同的特征提取,最后把多个模型的输出进行融合,再统一输出到最后一层全连接网络;以上深度神经网络模型主要有两种设计方案,分别为卷积神经网络模型和长短期记忆神经网络模型:
a、卷积神经网络的模型
使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过卷积神经网络和全连接神经网络分别进行特征提取;矩阵A先使用卷积层,接着将结果拉伸输出到全连接层;矩阵B使用全连接层,并与卷积神经网络的输出进行融合,最后输出层是5个神经元的全连接网络;其中隐含层激活函数都使用ReLU,最后输出层不使用激活函数;使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个卷积神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络;其中,隐含层激活函数都使用ReLU,输出层不使用激活函数;
b、长短期记忆神经网络模型
长短期记忆神经网络模型结构与上述卷积神经网络类似,使用单粒度的价格序列和账户资产情况作为输入,即接收维度为(N+M)*1的输入数据;输入数据由两部分不同量纲的数据组成,故将其切分为维度为N*1的矩阵A和维度为M*1的矩阵B,通过长短期记忆神经网络和全连接神经网络分别进行特征提取;矩阵A通过长短期记忆神经网络,矩阵B使用全连接层并与长短期神经网络的输出进行融合,最后输出层是5个神经元的全连接网络;使用多粒度的价格序列和账户资产情况作为输入,即接收维度为(n*N+M)*1的输入数据;输入数据由(n+1)个不同量纲的数据组成,故将其切分为n个维度为N*1的矩阵和维度为M*1的矩阵,n个维度为N*1的矩阵通过n个长短期记忆神经网络分别进行特征提取,M*1的矩阵使用全连接层,再将各个网络模型的输出融合,最后输出层是5个神经元的全连接网络;
在训练增强学习Double-DQN模型的过程中,使用智能代理动作的正确率、带来的平均收益来衡量模型训练效果,计算方法如下:
式中,ri、rj、rt都表示每次采取动作获得的即时汇报,steps表示采取的动作总次数,I是指示函数。
4.一种基于深度增强学习算法的外汇交易系统,其特征在于,包括:
数据采集模块,该模块采用PUB/SUB模式,交易服务端作为发布者,客户端作为订阅者;其中,所述交易服务端利用异步消息队列发送实时的外汇价格序列;所述客户端接收交易服务端发送的实时外汇价格序列数据流,存储为不同长度、不同走势的时间序列数据集;
模型训练模块,用于对外汇交易场景建立增强学习Double-DQN模型以及构建深度神经网络模型并训练增强学习Double-DQN模型和学习Q函数;其中,加载训练好的模型参数,使用不同特征的训练数据集,对Double-DQN模型进行叠加训练和参数微调;智能代理与环境交互会产生状态转移和即时回报,该模块通过状态转移和即时回报的数据训练深度神经网络,使智能代理每次采取动作的累计折扣即时回报最大化,并且定期使用不同的数据对深度神经网络进行叠加训练,参数微调;该模块训练好的模型能够直接用于外汇交易,即根据不同的实时外汇数据,输出对应的交易动作;
智能交易模块,该模块采用PUB/SUB、REQ/REP模式,客户端作为订阅者和请求者,交易服务端作为发布者和应答者;其中,所述交易服务端发送实时外汇价格序列数据,接收、解析并执行客户端发送的服务请求指令,再将执行结果返回给客户端;所述客户端利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易。
5.根据权利要求4所述的一种基于深度增强学习算法的外汇交易系统,其特征在于:使用外汇交易平台Metatrader4作为交易服务端进行编程,使用轻量级的异步消息队列ZMQ发送实时外汇价格序列数据流,并在客户端接收实时外汇价格序列数据。
6.根据权利要求4所述的一种基于深度增强学习算法的外汇交易系统,其特征在于:在智能交易模块中,客户端的功能不仅是利用训练好的模型接收外汇价格数据流得到交易动作,再利用异步消息队列向交易服务端发送交易请求,实时自动智能交易;同时,还提供外汇价格查询、订单查询、账户信息查询这些基本服务指令。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810030006.1A CN108305167A (zh) | 2018-01-12 | 2018-01-12 | 一种基于深度增强学习算法的外汇交易方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810030006.1A CN108305167A (zh) | 2018-01-12 | 2018-01-12 | 一种基于深度增强学习算法的外汇交易方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108305167A true CN108305167A (zh) | 2018-07-20 |
Family
ID=62868851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810030006.1A Pending CN108305167A (zh) | 2018-01-12 | 2018-01-12 | 一种基于深度增强学习算法的外汇交易方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108305167A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109130550A (zh) * | 2018-08-21 | 2019-01-04 | 嘉兴学院 | 一种电流体动力学喷印的人工智能控制系统及控制方法 |
CN109345048A (zh) * | 2018-07-27 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 预测方法、装置、电子设备及计算机可读存储介质 |
CN109492420A (zh) * | 2018-12-28 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、系统及介质 |
CN109711871A (zh) * | 2018-12-13 | 2019-05-03 | 北京达佳互联信息技术有限公司 | 一种潜在客户确定方法、装置、服务器及可读存储介质 |
CN110782096A (zh) * | 2019-10-29 | 2020-02-11 | 山东科技大学 | 一种外汇时间序列预测方法 |
CN110795232A (zh) * | 2019-09-16 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN113469808A (zh) * | 2021-05-21 | 2021-10-01 | 中国工商银行股份有限公司 | 模型结构、模型训练方法、交易处理方法、设备、介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794430A (zh) * | 2010-02-11 | 2010-08-04 | 帅亿 | 全自动操盘服务器 |
US20170011419A1 (en) * | 2015-07-09 | 2017-01-12 | International Business Machines Corporation | Life-Cycle Modeling Based on Transaction and Social Media Data |
-
2018
- 2018-01-12 CN CN201810030006.1A patent/CN108305167A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101794430A (zh) * | 2010-02-11 | 2010-08-04 | 帅亿 | 全自动操盘服务器 |
US20170011419A1 (en) * | 2015-07-09 | 2017-01-12 | International Business Machines Corporation | Life-Cycle Modeling Based on Transaction and Social Media Data |
Non-Patent Citations (2)
Title |
---|
FLOOD SUNG: "DQN从入门到放弃6 DQN的各种改进", 《知乎(HTTPS://ZHUANLAN.ZHIHU.COM/P/21547911)》 * |
量化投资与机器学习编辑部: "CNN预测股票走势基于Tensorflow(思路+程序)", 《量化投资与机器学习(HTTPS://MP.WEIXIN.QQ.COM/S/0LBRYPIAJ2IOUZFO0Z_D8Q)》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109345048A (zh) * | 2018-07-27 | 2019-02-15 | 阿里巴巴集团控股有限公司 | 预测方法、装置、电子设备及计算机可读存储介质 |
CN109345048B (zh) * | 2018-07-27 | 2023-02-10 | 创新先进技术有限公司 | 预测方法、装置、电子设备及计算机可读存储介质 |
CN109130550B (zh) * | 2018-08-21 | 2020-02-04 | 嘉兴学院 | 一种电流体动力学喷印的人工智能控制系统及控制方法 |
CN109130550A (zh) * | 2018-08-21 | 2019-01-04 | 嘉兴学院 | 一种电流体动力学喷印的人工智能控制系统及控制方法 |
CN109711871B (zh) * | 2018-12-13 | 2021-03-12 | 北京达佳互联信息技术有限公司 | 一种潜在客户确定方法、装置、服务器及可读存储介质 |
CN109711871A (zh) * | 2018-12-13 | 2019-05-03 | 北京达佳互联信息技术有限公司 | 一种潜在客户确定方法、装置、服务器及可读存储介质 |
CN109492420B (zh) * | 2018-12-28 | 2021-07-20 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、系统及介质 |
CN109492420A (zh) * | 2018-12-28 | 2019-03-19 | 深圳前海微众银行股份有限公司 | 基于联邦学习的模型参数训练方法、终端、系统及介质 |
US11947680B2 (en) | 2018-12-28 | 2024-04-02 | Webank Co., Ltd | Model parameter training method, terminal, and system based on federation learning, and medium |
CN110795232A (zh) * | 2019-09-16 | 2020-02-14 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
CN110795232B (zh) * | 2019-09-16 | 2023-10-20 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、计算机可读存储介质和计算机设备 |
WO2021082811A1 (zh) * | 2019-10-29 | 2021-05-06 | 山东科技大学 | 一种外汇时间序列预测方法 |
CN110782096A (zh) * | 2019-10-29 | 2020-02-11 | 山东科技大学 | 一种外汇时间序列预测方法 |
CN113469808A (zh) * | 2021-05-21 | 2021-10-01 | 中国工商银行股份有限公司 | 模型结构、模型训练方法、交易处理方法、设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108305167A (zh) | 一种基于深度增强学习算法的外汇交易方法及系统 | |
LeBaron | Empirical regularities from interacting long-and short-memory investors in an agent-based stock market | |
Chen | Evolutionary computation in economics and finance | |
CN109615531A (zh) | 证券市场量化投资策略的精准回测与评估系统及方法 | |
CN109472700A (zh) | 股票价格的预测方法、服务器及存储介质 | |
Brabazon et al. | An introduction to evolutionary computation in finance | |
Fisichella et al. | Can deep learning improve technical analysis of forex data to predict future price movements? | |
Li et al. | Learning to trade with deep actor critic methods | |
CN117036011A (zh) | 一种基于多智能体深度强化学习的最优执行策略优化方法及系统 | |
Guo et al. | Market Making with Deep Reinforcement Learning from Limit Order Books | |
Jabbur et al. | Design and evaluation of automatic agents for stock market intraday trading | |
CN112418575A (zh) | 一种基于云计算和人工智能深度学习算法的期货主力合约量化择时决策系统 | |
Carmona et al. | High frequency market making | |
CN110033376A (zh) | 一种资产管理方法及装置、一种计算设备及存储介质 | |
CN108846761A (zh) | 一种基于人工神经网络的期权期货交易分析方法 | |
CN113450228A (zh) | 一种数字加密货币交易价格走势的预测系统及预测方法 | |
Becker | Decomposition methods for large scale stochastic and robust optimization problems | |
Dostál | The use of soft computing methods for forecasting in business, their applications in practice | |
Ritter | Reinforcement learning in finance | |
Kim et al. | The impact of investment lags on investment decision | |
Yao et al. | Reinforcement Learning in Agent-Based Market Simulation: Unveiling Realistic Stylized Facts and Behavior | |
Arsi et al. | A proposed model of neural network for rupiah exchange rate’s prediction | |
Jin | An intelligent algorithmic trading based on a risk-return reinforcement learning algorithm | |
Supriyanto | Comparison of Grid Search and Evolutionary Parameter Optimization with Neural Networks on JCI Stock Price Movements during the Covid 19 | |
Boonrawd et al. | Thailand Stock Index Forecasting Based on Multiple Data Sources Using RNN-LSTM Approach |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180720 |