CN114049222A - 一种基于注意力机制和强化学习的趋势预测方法 - Google Patents
一种基于注意力机制和强化学习的趋势预测方法 Download PDFInfo
- Publication number
- CN114049222A CN114049222A CN202111417896.XA CN202111417896A CN114049222A CN 114049222 A CN114049222 A CN 114049222A CN 202111417896 A CN202111417896 A CN 202111417896A CN 114049222 A CN114049222 A CN 114049222A
- Authority
- CN
- China
- Prior art keywords
- data
- sequence
- price
- futures
- reinforcement learning
- 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/06—Asset management; Financial planning or analysis
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Game Theory and Decision Science (AREA)
- Human Resources & Organizations (AREA)
- Operations Research (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于注意力机制和强化学习的趋势预测方法,该方法充分利用市场信息,更好地捕捉到市场动态,尽可能在期货价格处于低位并且有上升趋势时入场,并减少决策失误的概率。首先选择期货品种,尽可能选择成立时间较长成交量较大的品种,并根据分形理论,通过测试判断该期货是否适合做数据增强,在一定程度上解决了数据量较少的问题。接着通过数据清洗和基于注意力机制的特征提取模型,优化模型提取金融数据特征的能力,作为最终策略网络的输入,最终使用强化学习算法并引入连续动作控制,得到一个具有策略随机性和鲁棒性的智能体,该智能体能根据市场动态做出决策。
Description
技术领域
本发明涉及信息科学领域,更具体地,涉及一种基于注意力机制和强化学习的趋势预测方法。
背景技术
传统的金融投资方法很大程度上依赖于要求投资人有较为丰富的金融知识、面对市场低谷时较为强大的抗压能力、果断的决断力,所以缺少经验的投资者往往会在初入金融市场时陷入困境。由于市场分析有三个基本原则:1.价格包含一切。2.价格以趋势的方式演变。3.历史会一再重演。所以近年来,金融创新和人工智能技术在各种金融应用中成功结合,包括定量交易(QT)。尽管有大量的研究致力于利用深度学习(DL)方法构建更好的QT策略,但现有的研究仍然面临严峻的挑战,特别是来自金融方面的挑战,如风险与回报的平衡,抵抗极端损失,不同资产间的相关性以及策略的可解释性。这限制了基于DL的策略在现实金融市场中的应用。
关于量化交易策略,传统的方法是根据计量经济学的一些规律来设计的策略,其根据当前市场信息计算金融技术指标,再根据这些指标和金融学规律来做出决策。但这些方法比较依赖于过往总结的一些市场规律,具有一定的时效性和局限性。因此,如今比较先进的做法是结合机器学习模型和市场数据来设计交易策略,这样的方法可以及时学习到市场的最新规律,以达到更稳定盈利的目的。例如Jingyuan Wang,Yang Zhang等人于2019年提出了一种可解释的深度强化学习注意力神经网络结构Alpha Stock,用于在金融交易中有效捕捉市场动态和并循环做出组合交易决策。该结构结合了注意力机制Attetion、深度神经网络DL和强化学习RL。Attention和DL部分是为了有效提取金融数据的特征而更好地表征出市场状态,RL部分则与特征提取模型交互,进而做出相应的交易决策,以更好地适应市场快速变化的特点。
随着人工智能技术的快速发展,强化学习被引入到量化交易领域中使用,强化学习依赖于它强大的随机探索能力、自适应控制能力和自我学习能力,能够很好地应用于量化交易这种需要序列决策的问题中。常见的强化学习算法有Soft Actor-Critic(SAC)、Proximal Policy Optimization(PPO)、Deep Deterministic PolicyGradient(DDPG)等等,不同的算法有其独有的特点和优势,需要根据不同的应用场景来选择。
循环神经网络(RNN)和长短期记忆网络(LSTM)在提取时序特征、处理序列问题上有较好的表现,但当序列较长时会容易出现长期依赖等问题,所以为了解决这个问题,使模型在处理长序列时也可以很好地提取全局性特征,基于注意力机制的Self-Attention、Transformer模型相继诞生,在自然语言处理领域取得了惊人的效果,并且随后也被应用到各种其他领域中。
趋势交易策略是一种常见的量化交易策略,趋势是指市场价格未来的走势。比如,市场价格持续上涨,并突破了某个价格,那么投资人就买入(做多),反之则卖出(做空)。透过对价格的不断跟踪,用支付成本不断尝试的办法去追踪中级以上的趋势,当趋势发生以后,交易系统会去跟随这个趋势。
现有技术中公开一种基于注意力以及密集连接的股价趋势预测方法的专利,还专利方法首先获取待预测股票对应的若干价量数据;基于所述若干价量数据,确定所述预测股票对应的特征数据;基于时域注意力机制以及所述特征数据,确定所述待预测股票对应的预测股价趋势。该专利通过若干价量数据,利用注意力机制和密集连接使得模型关注于若干价量数据的短期信息,从而提高预测股价趋势的准确性。同时,本申请仅需要股票的价量信息,使用简单,适用范围较广,可以广泛应用到投资决策的过程中。然后,该专利并未涉及尽可能在期货价格处于低位并且有上升趋势时入场,并减少决策失误的概率。首先选择期货品种,尽可能选择成立时间较长成交量较大的品种,并根据分形理论,通过测试判断该期货是否适合做数据增强,在一定程度上解决了数据量较少的问题。
发明内容
本发明提供一种基于注意力机制和强化学习的趋势预测方法,该方法能在期货价格处于低位并且有上升趋势时入场,并减少决策失误的概率。
为了达到上述技术效果,本发明的技术方案如下:
一种基于注意力机制和强化学习的趋势预测方法,包括以下步骤:
S1:选择期货品种,获取所选品种的期货历史行情数据;
S2:对数据进行数据清洗;
S3:对数据进行预处理;
S4:使用预处理数据,预训练特征提取模型;
S5:将特征提取模型的输出与原始数据拼接,用于强化学习模型训练;
S6:把训练得到的强化学习模型用于决策,导出决策序列;
S7:在回测平台进行测试。
进一步地,所述步骤S1的具体过程是:
S11:由于金融数据噪声较大,相比其他机器学习的任务,训练趋势预测模型往往需要更多的数据才能取得较好的效果,选择的数据为分钟级数据,根据分形理论,两分钟级、五分钟级甚至日级数据与分钟级数据拥有相似的分布,所以使用上述数据作为训练数据,以达到数据增强的目的;为了取得更好的效果,根据期货历史行情数据计算偏度和峰度,筛选期货品种,通过实验发现,当1<SKE<2且0<KUR<2时,智能体表现较好,有更多机会以较低的价格买入,以极高的价格卖出;
偏度SKE,也被称为概率模型的第三个标准中心矩,通常用来描述数据的对称性,计算公式如下:
峰度KUR,也被称为概率模型的第四个标准中心矩,通常用来描述数据的尾部厚度,计算公式如下:
S12:期货历史行情数据主要包含t时刻的最高价hightt、最低价lowt、开盘价opent、收盘价closet、成交量volumet。
进一步地,所述步骤S2的具体过程是:
S21:去除日期时间重复的数据、空值数据、异常值数据;
S22:令数据行连续,中间不能出现空行。
进一步地,所述步骤S3的具体过程是:
S31:根据数据计算用于训练的金融技术指标,所用到的指标有:布林线指标BOLL、顺势指标CCI、价格上升率PR、强力指标FI、简易波动指标EMV,之后对上述指标进行归一化处理;
布林线指标BOLL的来源是:假设股票价格为正态分布,那么股价落在离均值两个标准差区间内的概率为95.5%。BOLL指标由阻力线和支撑线构成,区间上界的股票价格称为阻力线UP,区间下界的股票价格称为支撑线DN的计算公式如下:
UP(k)=MA+2*SD
DN(k)=MA-2*SD
其中k为回看窗口长度,通常选择5、10、20、60或120;
顺势指标CCI的计算公式如下:
价格上升率PR的计算公式如下:
强力指标FI的计算公式如下:
FI=volumet*(MAt-MAt-1)
简易波动指标EMV的计算公式如下:
归一化处理的方式为Z-score标准化,计算公式如下:
其中,μ为均值,σ为标准差;
S33:把当前时间点t时刻的收盘价close与lowXmin进行比较,若close≤lowXmin,且在训练即测试过程中持有期货,则退场;
S34:设置连续动作空间,设置动作a的值和连续控制次数k的值,未来上涨的趋势越明显则a的值越大,之后执行入场动作。
进一步地,步骤S34中,设置动作a的值在0-1之间,设置连续控制次数k的值在1-5之间。
进一步地,所述步骤S4的具体过程是:
S41:选择Attention+MLP的结构作为强化学习框架中的策略网络,Transformer是一种seq2seq模型,在提取长序列的时序特征和全局性特征上有较好的表现,Attention模块借鉴了Transformer Encoder模块,主要由多头自注意力模块MHSA和位置相关前馈神经网络模块PFFN两个子模块构成:
MHSA使用多组可学习参数将输入线性投影到子空间,然后并行地应用点积形式的注意力函数来产生输出表示,这些表示被连接起来并再次投影,具体公式如下:
MH(H)=[head1;head2;...;headh]WO
其中H=[h1,h2,...,ht]∈Rtxd为一个附带位置信息的期货序列,t是回看窗口的长度,d是输入向量的长度,WO∈Rdxd均为可学习参数,如果不添加位置信息,随意交换向量的位置也不会影响输出的结果,即Transformer Encoder无法感知到期货序列的位置相关性,更无法提取到期货序列的时序特征,令hi=vi+pi,vi为:
[UPi(k),DNi(k),CCIi(k),PRi,FIi,EMVi(k),highi,lowi,openi,closei,volumei]
pi为对应的位置向量,将其视为一个可学习的参数,同时使用正余弦函数的方法来表示;
PFFN由两个仿射变换组成,并使用较为平滑的高斯误差线性单元GELU作为激活函数,使模型具有非线性,并增大各个维度之间的相互作用,具体公式如下:
PFFN(H)=[FFN(h1)T;FFN(h2)T;...;FFN(ht)T]T
FFN(x)=GELU(xW(1)+b(1))W(2)+b(2)
GELU(x)=xφ(x)
其中φ(x)为标准高斯分布的累积分布函数,W(1)∈Rdx4d,W(2)∈R4dxd,b(1)∈R4d,b(2)∈Rd;
数据在各模块间之间的传递会经过Dropout、残差计算和层正则化LN操作:
Trm(H)=LN(A+Dropout(PFFN(A)))
A=LN(H+Dropout(MH(H)));
S42:由于在金融市场中,不同期货品种间的走势有着一定的相关性,所以使用同样的方法收集其他期货品种的行情数据作为辅助序列,使用智能体决策的期货序列作为主序列,通过S41中的模型提取各序列的特征,再将输出序列张成一维向量并通过全连接层,得到该序列的一个特征向量,最后使用自注意力机制,融合辅助序列与主序列的信息,得到最终的特征表示具体公式如下:
Zi=WassRS(trmass(Xi))+bass
U=WmainRS(Trmmain(Y))+bmain
其中Xi∈Rtxd表示第i个辅助序列,Y∈Rtxd表示主序列,上述序列均已带有位置信息,Wass,Wmain∈Rdx(t*d),bass,bmain∈Rd,WQ,WK,WV∈Rdxd为可学习参数,由于金融数据中不同品种的时序特征通常不同,辅助序列和主序列的模型之间不共享参数,对主序列获得更好的特征提取效果,辅助序列之间共享参数,减少模型的参数数量;
S43:由于强化学习框架基于随机探索的思想进行训练,对于较复杂的策略网络,在训练过程中很可能出现难收敛或者过拟合情况,所以通过引入有监督任务的方式来预训练特征提取模型,在S42的特征向量之后连接一个简单的MLP,最终输出是预测主序列下一个时刻的价格、或者未来k个时刻的价格走向,由于MLP架构比较简单,想获得比较好的结果,必须有比较好的特征表示,这也解释了预训练特征提取模型的合理性,通过这种方式,模型收敛速度会明显高于直接在强化学习框架训练。
进一步地,所述步骤S5的具体过程是:
S51:训练算法选择SAC算法,用金融技术指标作为状态输入,用差分斯特林比率Dt作为模型的奖励函数,斯特林比率是金融交易中比较常见的指标,它不仅关注到了收益Rt,还考虑了最大回撤,使智能体的优化目标转化为最大化风险调整后的累积收益,而差分斯特林比率通过指数移动平均的方法近似计算斯特林比率,在加快计算效率的同时,返回每次决策的立即奖励而不需要等到整个回合结束,具体公式如下:
profit=(closesell-closebuy)*position-2*commission
At=At-1+η(Rt-At-1)
Dt≡其中closesell是卖出时的收盘价,closebuy是买入时的收盘价,position是持有的仓位数量,commission是每次买入或卖出交易所需要的手续费,discount是为了考虑机会成本而设置的惩罚参数,DDT是回撤风险,At和为收益和回撤风险的指数移动平均,η是常数;
S52:训练时算法在训练集随机选择开始时间点;
S53:SAC算法是一种典型的基于Actor-Critic框架的强化学习算法,SAC算法最大的特点是将最大熵框架引入到目标函数、状态值函数和状态-行为值函数中,增大策略网络的随机性,让智能体在放弃明显低奖励路径的同时,拥有更强的环境探索能力、增大策略随机性、降低策略陷入局部最优值的概率,具体公式如下:
其中H(π(·|st))为表示策略π在状态st下的熵,π*为SAC算法的策略优化目标,γ为折扣因子,γ越大表示智能体越关注长期的奖励,α为温度参数,用于控制熵值与奖励的比重,状态值函数Vπ(s)和状态-行为值函数Qπ(s,a)的关系用以下公式表示:
Vπ(s)=Ea~π[Qπ(s,a)+αH(π(·|s))];
S54:策略网络中,在注意力机制模型之后,有两个MLP网络,分别用于预测在某时刻的动作a和执行该动作的次数k,在接下来的k个时刻均采取动作a,提高策略网络的稳定性,激活函数使用Relu。
进一步地,所述步骤S7的具体过程是:
S71:回测使用zipline回测框架,zipline是一种给基于bar的中低频量化交易框架,逻辑相对简单,使用该框架需要设置合约大小、最小价格变动、手续费比率等基本信息,回测得到的回测指标包括:累积收益、年化收益、最大回撤、夏普比率;
S72:在交易策略中,设定仓位大小position,每次读入一个bar,根据模型的决策输出结果决定是否要入场。
优选地,步骤S6中,把2019年9月-2021年9月的金融技术指标作为模型输入;步骤S52中,每个episode区间大小在500-1000之间选择。
与现有技术相比,本发明技术方案的有益效果是:
本发明能充分利用市场信息,更好地捕捉到市场动态,尽可能在期货价格处于低位并且有上升趋势时入场,并减少决策失误的概率。首先选择期货品种,尽可能选择成立时间较长成交量较大的品种,并根据分形理论,通过测试判断该期货是否适合做数据增强,在一定程度上解决了数据量较少的问题。接着通过数据清洗和基于注意力机制的特征提取模型,优化模型提取金融数据特征的能力,作为最终策略网络的输入,最终使用强化学习算法并引入连续动作控制,得到一个具有策略随机性和鲁棒性的智能体,该智能体能根据市场动态做出决策。最后再将智能体放在回测平台上进行测试,并输出结果。
附图说明
图1本发明方法流程图。
具体实施方式
附图仅用于示例性说明,不能理解为对本专利的限制;
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
下面结合附图和实施例对本发明的技术方案做进一步的说明。
实施例1
如图1所示,一种基于注意力机制和强化学习的趋势预测方法,包括以下步骤:
S1:选择期货品种,获取所选品种的期货历史行情数据;
S2:对数据进行数据清洗;
S3:对数据进行预处理;
S4:使用预处理数据,预训练特征提取模型;
S5:将特征提取模型的输出与原始数据拼接,用于强化学习模型训练;
S6:把训练得到的强化学习模型用于决策,导出决策序列;
S7:在回测平台进行测试。
本实施例中,首先选择期货品种,尽可能选择成立时间较长成交量较大的品种,并根据分形理论,通过测试判断该期货是否适合做数据增强,在一定程度上解决了数据量较少的问题。接着通过数据清洗和基于注意力机制的特征提取模型,优化模型提取金融数据特征的能力,作为最终策略网络的输入,最终使用强化学习算法并引入连续动作控制,得到一个具有策略随机性和鲁棒性的智能体,该智能体能根据市场动态做出决策。最后再将智能体放在回测平台上进行测试,并输出结果。
实施例2
如图1所示,一种基于注意力机制和强化学习的趋势预测方法,包括以下步骤:
S1:选择期货品种,获取所选品种的期货历史行情数据;
S2:对数据进行数据清洗;
S3:对数据进行预处理;
S4:使用预处理数据,预训练特征提取模型;
S5:将特征提取模型的输出与原始数据拼接,用于强化学习模型训练;
S6:把训练得到的强化学习模型用于决策,导出决策序列;
S7:在回测平台进行测试。
步骤S1的具体过程是:
S11:由于金融数据噪声较大,相比其他机器学习的任务,训练趋势预测模型往往需要更多的数据才能取得较好的效果,选择的数据为分钟级数据,根据分形理论,两分钟级、五分钟级甚至日级数据与分钟级数据拥有相似的分布,所以使用上述数据作为训练数据,以达到数据增强的目的;为了取得更好的效果,根据期货历史行情数据计算偏度和峰度,筛选期货品种,通过实验发现,当1<SKE<2且0<KUR<2时,智能体表现较好,有更多机会以较低的价格买入,以极高的价格卖出;
偏度SKE,也被称为概率模型的第三个标准中心矩,通常用来描述数据的对称性,计算公式如下:
峰度KUR,也被称为概率模型的第四个标准中心矩,通常用来描述数据的尾部厚度,计算公式如下:
S12:期货历史行情数据主要包含t时刻的最高价hightt、最低价lowt、开盘价opent、收盘价closet、成交量volumet。
步骤S2的具体过程是:
S21:去除日期时间重复的数据、空值数据、异常值数据;
S22:令数据行连续,中间不能出现空行。
实施例3
如图1所示,本发明提供了一种基于注意力机制和强化学习的趋势预测方法,包括以下步骤:
S1:根据分形理论选择期货品种,获取所选品种的期货历史行情数据,包括以下步骤:
S11:根据期货历史行情数据计算偏度和峰度,筛选期货品种,当1<SKE<2且0<KUR<2时,智能体表现较好,有更多机会以较低的价格买入,以极高的价格卖出。
偏度SKE,也被称为概率模型的第三个标准中心矩,通常用来描述数据的对称性,计算公式如下:
峰度KUR,也被称为概率模型的第四个标准中心矩,通常用来描述数据的尾部厚度,计算公式如下:
S12:并获取其分钟级OHLC数据,本发明选择的数据是大连期货商品交易所焦煤JM在2019年9月-2021年9月的OHLC数据,期货历史行情数据主要包含t时刻的最高价hightt、最低价lowt、开盘价opent、收盘价closet、成交量volumet;
S2:进行数据清洗,包括以下步骤:
S21:去除日期时间重复的数据、空值数据、异常值数据等;
S22:令数据行连续,中间不能出现空行。
S3:将数据清洗之后的数据进行预处理,包括以下步骤
S31:根据数据计算用于训练的金融技术指标,所用到的指标有:布林线指标BOLL、顺势指标CCI、价格上升率PR、成交量TV、强力指标FI、简易波动指标EMV,之后对上述指标进行归一化处理;
布林线指标BOLL的来源是:假设股票价格为正态分布,那么股价落在离均值两个标准差区间内的概率为95.5%。BOLL指标由阻力线和支撑线构成,区间上界的股票价格称为阻力线UP,区间下界的股票价格称为支撑线DN。的计算公式如下:
UP(k)=MA+2*SD
DN(k)=MA-2*SD
其中k为回看窗口长度,通常可以选择5、10、20、60和120;
顺势指标CCI的计算公式如下:
价格上升率PR的计算公式如下:
强力指标FI的计算公式如下:
FI=TV*(MAt-MAt-1)
简易波动指标EMV的计算公式如下:
归一化处理的方式为Z-score标准化,计算公式如下:
其中,μ为均值,σ为标准差。
S33:把当前时间点t时刻的收盘价close与lowxmin进行比较,若close≤lowxmin,且在训练即测试过程中持有期货,则退场;
S34:设置连续动作空间,动作a的值在0-1之间,连续控制次数k的值在1-5之间,智能体认为未来上涨的趋势越明显则a的值越大,之后根据一定的策略进行入场动;
S4:使用预处理之后的数据预训练特征提取模型,包括以下步骤:、
S41:本方法选择Attention+MLP的结构,作为强化学习框架中的策略网络,Transformer是一种seq2seq模型,在提取长序列的时序特征和全局性特征上有较好的表现,本发明中的Attention模块借鉴了Transformer Encoder模块,主要由多头自注意力模块MHSA(Multi-Head Self-Attention)和位置相关前馈神经网络模块PFFN(Position-wiseFeed-Forward Network)两个子模块构成:
MHSA使用多组可学习参数将输入线性投影到子空间,然后并行地应用点积形式的注意力函数来产生输出表示,这些表示被连接起来并再次投影,具体公式如:
MH(H)=[head1;head2;...;headh]WO
其中H=[h1,h2,...,ht]∈Rtxd为一个附带位置信息的期货序列,t是回看窗口的长度,d是输入向量的长度,WO∈Rdxd均为可学习参数。如果不添加位置信息,随意交换向量的位置也不会影响输出的结果,即Transformer Encoder无法感知到期货序列的位置相关性,更无法提取到期货序列的时序特征,所以在本方法中令hi=vi+pi,vi为:
[UPi(k),DNi(k),CCIi(k),PRi,FIi,EMVi(k),highi,lowi,openi,closei,volumei],pi为对应的位置向量,本方法将其视为一个可学习的参数,也可以使用正余弦函数的方法来表示。
PFFN由两个仿射变换组成,并使用较为平滑的高斯误差线性单元GELU(GaussianError Linear Unit)作为激活函数,使模型具有非线性,并增大各个维度之间的相互作用,具体公式如下:
PFFN(H)=[FFN(h1)T;FFN(h2)T;...;FFN(ht)T]T
FFN(x)=GELU(xW(1)+b(1))W(2)+b(2)
GELU(x)=xφ(x)
其中φ(x)为标准高斯分布的累积分布函数,W(1)∈Rdx4d,W(2)∈R4dxd,b(1)∈R4d,b(2)∈Rd;
数据在各模块间之间的传递会经过Dropout、残差计算和层正则化LN操作:
Trm(H)=LN(A+Dropout(PFFN(A)))
A=LN(H+Dropout(MH(H)));
S42:由于在金融市场中,不同期货品种间的走势有着一定的相关性,所以使用同样的方法收集其他期货品种的行情数据作为辅助序列,使用智能体决策的期货序列作为主序列,通过S41中的模型提取各序列的特征,再将输出序列张成一维向量并通过全连接层,得到该序列的一个特征向量,最后使用自注意力机制,融合辅助序列与主序列的信息,得到最终的特征表示具体公式如下:
Zi=WassRS(Trmass(Xi))+bass
U=WmainRS(trmmain(Y))+bmain
其中Xi∈Rtxd表示第i个辅助序列,Y∈Rtxd表示主序列,上述序列均已带有位置信息,Wass,Wmain∈Rdx(t*d),bass,bmain∈Rd,WQ,WK,WV∈Rdxd为可学习参数,由于金融数据中不同品种的时序特征通常不同,辅助序列和主序列的模型之间不共享参数,对主序列获得更好的特征提取效果,辅助序列之间共享参数,减少模型的参数数量;
S43:由于强化学习框架基于随机探索的思想进行训练,对于较复杂的策略网络,在训练过程中很可能出现难收敛或者过拟合等情况,所以通过引入有监督任务的方式来预训练特征提取模型,本方法在S42的特征向量之后连接一个简单的MLP,最终输出可以是预测主序列下一个时刻的价格、或者未来k个时刻的价格走向等等,由于MLP架构比较简单,想获得比较好的结果,必须有比较好的特征表示,这也解释了预训练特征提取模型的合理性。通过这种方式,模型收敛速度会明显高于直接在强化学习框架训练;
S5:训练强化学习模型,包括以下步骤:
S51:训练算法选择SAC算法,首次训练数据选用焦煤RB0001的2019年9月-2021年9月数据,用金融技术指标作为状态输入,用差分斯特林比率Dt作为模型的奖励函数,斯特林比率(Sterling Ratio)是金融交易中比较常见的指标,它不仅关注到了收益Rt,还考虑了最大回撤,使智能体的优化目标转化为最大化风险调整后的累积收益。而差分斯特林比率通过指数移动平均的方法近似计算斯特林比率,在加快计算效率的同时,可以返回每次决策的立即奖励而不需要等到整个回合结束,具体公式如下:
profit=(closesell-closebuy)*position-2*commission
At=At-1+η(Rt-At-1)
其中closesell是卖出时的收盘价,closebuy是买入时的收盘价,position是持有的仓位数量,commission是每次买入或卖出交易所需要的手续费,discount是为了考虑机会成本而设置的惩罚参数,DDT是回撤风险,At和为收益和回撤风险的指数移动平均,η是常数;
S52:训练时算法在训练集随机选择开始时间点,为了有效利用数据,每个episode区间大小在500-1000之间选择;
S53:SAC算法是一种典型的基于Actor-Critic框架的强化学习算法。SAC算法最大的特点是将最大熵框架引入到目标函数、状态值函数和状态-行为值函数中,增大策略网络的随机性,让智能体在放弃明显低奖励路径的同时,拥有更强的环境探索能力、增大策略随机性、降低策略陷入局部最优值的概率,具体公式如下:
H其中H(π(·|st))为表示策略π在状态st下的熵,π*为SAC算法的策略优化目标,γ为折扣因子,γ越大表示智能体越关注长期的奖励,α为温度参数,用于控制熵值与奖励的比重,状态值函数Vπ(s)和状态-行为值函数Qπ(s,a)的关系可以用以下公式表示:
Vπ(s)=Ea~π[Qπ(s,a)+αH(π(·|s))]
S54:策略网络中,在注意力机制模型之后,有两个MLP网络,分别用于预测在某时刻的动作a和执行该动作的次数k,在接下来的k个时刻均采取动作a,提高策略网络的稳定性,激活函数使用Relu。
S6:把2019年9月-2021年9月的金融技术指标作为模型输入,用先前训练得到的模型对2019年9月-2021年9月数据进行预测,导出决策序列,决策序列由0和1组成,其中1表示入场,0表示不入场。
S7:回测,包括以下步骤:
S71:回测使用zipline回测框架,需要设置焦煤JM合约大小60吨/手、最小价格变动0.5元/吨、回测本金100000元、手续费比率(合约价值的万分之一)等信息,并提前导入焦煤JM在2019年9月-2021年9月的OHLC数据;
S72:在交易策略中,为了简化问题模型,最大仓位设置为1,每次读入一个bar,根据模型预测的动作和执行次数共同决策的结果决定是否要入场,如果入场,每次买入一手,如果满仓则不再买入;
S73:为了避免过夜持仓过程中出现的灰犀牛事件和黑天鹅事件,本方法会在每天交易时间结束前平仓;
S74:退场条件:当bar的close低于过去60分钟low的最小值时退场。
相同或相似的标号对应相同或相似的部件;
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
Claims (10)
1.一种基于注意力机制和强化学习的趋势预测方法,其特征在于,包括以下步骤:
S1:选择期货品种,获取所选品种的期货历史行情数据;
S2:对数据进行数据清洗;
S3:对数据进行预处理;
S4:使用预处理数据,预训练特征提取模型;
S5:将特征提取模型的输出与原始数据拼接,用于强化学习模型训练;
S6:把训练得到的强化学习模型用于决策,导出决策序列;
S7:在回测平台进行测试。
2.根据权利要求1所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S1的具体过程是:
S11:由于金融数据噪声较大,相比其他机器学习的任务,训练趋势预测模型往往需要更多的数据才能取得较好的效果,选择的数据为分钟级数据,根据分形理论,两分钟级、五分钟级甚至日级数据与分钟级数据拥有相似的分布,所以使用上述数据作为训练数据,以达到数据增强的目的;为了取得更好的效果,根据期货历史行情数据计算偏度和峰度,筛选期货品种,通过实验发现,当1<SKE<2且0<KUR<2时,智能体表现较好,有更多机会以较低的价格买入,以极高的价格卖出;
偏度SKE,也被称为概率模型的第三个标准中心矩,通常用来描述数据的对称性,计算公式如下:
峰度KUR,也被称为概率模型的第四个标准中心矩,通常用来描述数据的尾部厚度,计算公式如下:
S12:期货历史行情数据主要包含t时刻的最高价hightt、最低价lowt、开盘价opent、收盘价closet、成交量volumet。
3.根据权利要求2所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S2的具体过程是:
S21:去除日期时间重复的数据、空值数据、异常值数据;
S22:令数据行连续,中间不能出现空行。
4.根据权利要求3所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S3的具体过程是:
S31:根据数据计算用于训练的金融技术指标,所用到的指标有:布林线指标BOLL、顺势指标CCI、价格上升率PR、强力指标FI、简易波动指标EMV,之后对上述指标进行归一化处理;
布林线指标BOLL的来源是:假设股票价格为正态分布,那么股价落在离均值两个标准差区间内的概率为95.5%。BOLL指标由阻力线和支撑线构成,区间上界的股票价格称为阻力线UP,区间下界的股票价格称为支撑线DN的计算公式如下:
UP(k)=MA+2*SD
DN(k)=MA-2*SD
其中k为回看窗口长度,通常选择5、10、20、60或120;
顺势指标CCI的计算公式如下:
价格上升率PR的计算公式如下:
强力指标FI的计算公式如下:
FI=volumet*(MAt-MAt-1)
简易波动指标EMV的计算公式如下:
归一化处理的方式为Z-score标准化,计算公式如下:
其中,μ为均值,σ为标准差;
S33:把当前时间点t时刻的收盘价close与lowxmin进行比较,若close≤lowxmin,且在训练即测试过程中持有期货,则退场;
S34:设置连续动作空间,设置动作a的值和连续控制次数k的值,未来上涨的趋势越明显则a的值越大,之后执行入场动作。
5.根据权利要求4所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,步骤S34中,设置动作a的值在0-1之间,设置连续控制次数k的值在1-5之间。
6.根据权利要求5所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S4的具体过程是:
S41:选择Attention+MLP的结构作为强化学习框架中的策略网络,Transformer是一种seq2seq模型,在提取长序列的时序特征和全局性特征上有较好的表现,Attention模块借鉴了Transformer Encoder模块,主要由多头自注意力模块MHSA和位置相关前馈神经网络模块PFFN两个子模块构成:
MHSA使用多组可学习参数将输入线性投影到子空间,然后并行地应用点积形式的注意力函数来产生输出表示,这些表示被连接起来并再次投影,具体公式如下:
MH(H)=[head1;head2;...;headh]WO
其中H=[h1,h2,...,ht]∈Rtxd为一个附带位置信息的期货序列,t是回看窗口的长度,d是输入向量的长度,WO∈Rdxd均为可学习参数,如果不添加位置信息,随意交换向量的位置也不会影响输出的结果,即Transformer Encoder无法感知到期货序列的位置相关性,更无法提取到期货序列的时序特征,令hi=vi+pi,vi为:
[UPi(k),DNi(k),CCIi(k),PRi,FIi,EMVi(k),highi,lowi,openi,closei,volumei]
pi为对应的位置向量,将其视为一个可学习的参数,同时使用正余弦函数的方法来表示;
PFFN由两个仿射变换组成,并使用较为平滑的高斯误差线性单元GELU作为激活函数,使模型具有非线性,并增大各个维度之间的相互作用,具体公式如下:
PFFN(H)=[FFN(h1)T;FFN(h2)T;...;FFN(ht)T]T
FFN(x)=GELU(xW(1)+b(1))W(2)+b(2)
GELU(x)=xφ(x)
其中φ(x)为标准高斯分布的累积分布函数,W(1)∈Rdx4d,W(2)∈R4dxd,b(1)∈R4d,b(2)∈Rd;
数据在各模块间之间的传递会经过Dropout、残差计算和层正则化LN操作:
Trm(H)=LN(A+Dropout(PFFN(A)))
A=LN(H+Dropout(MH(H)));
S42:由于在金融市场中,不同期货品种间的走势有着一定的相关性,所以使用同样的方法收集其他期货品种的行情数据作为辅助序列,使用智能体决策的期货序列作为主序列,通过S41中的模型提取各序列的特征,再将输出序列张成一维向量并通过全连接层,得到该序列的一个特征向量,最后使用自注意力机制,融合辅助序列与主序列的信息,得到最终的特征表示具体公式如下:
Zi=WassRS(Trmass(Xi))+bass
U=WmainRS(Trmmain(Y))+bmain
其中Xi∈Rtxd表示第i个辅助序列,Y∈Rtxd表示主序列,上述序列均已带有位置信息,Wass,Wmain∈Rdx(t*d),bass,bmain∈Rd,WQ,WK,WV∈Rdxd为可学习参数,由于金融数据中不同品种的时序特征通常不同,辅助序列和主序列的模型之间不共享参数,对主序列获得更好的特征提取效果,辅助序列之间共享参数,减少模型的参数数量;
S43:由于强化学习框架基于随机探索的思想进行训练,对于较复杂的策略网络,在训练过程中很可能出现难收敛或者过拟合情况,所以通过引入有监督任务的方式来预训练特征提取模型,在S42的特征向量之后连接一个简单的MLP,最终输出是预测主序列下一个时刻的价格、或者未来k个时刻的价格走向,由于MLP架构比较简单,想获得比较好的结果,必须有比较好的特征表示,这也解释了预训练特征提取模型的合理性,通过这种方式,模型收敛速度会明显高于直接在强化学习框架训练。
7.根据权利要求6所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S5的具体过程是:
S51:训练算法选择SAC算法,用金融技术指标作为状态输入,用差分斯特林比率Dt作为模型的奖励函数,斯特林比率是金融交易中比较常见的指标,它不仅关注到了收益Rt,还考虑了最大回撤,使智能体的优化目标转化为最大化风险调整后的累积收益,而差分斯特林比率通过指数移动平均的方法近似计算斯特林比率,在加快计算效率的同时,返回每次决策的立即奖励而不需要等到整个回合结束,具体公式如下:
profit=(closesell-closebuy)*position-2*commission
At=At-1+η(Rt-At-1)
其中closesell是卖出时的收盘价,closebuy是买入时的收盘价,position是持有的仓位数量,commission是每次买入或卖出交易所需要的手续费,discount是为了考虑机会成本而设置的惩罚参数,DDT是回撤风险,At和为收益和回撤风险的指数移动平均,η是常数;
S52:训练时算法在训练集随机选择开始时间点;
S53:SAC算法是一种典型的基于Actor-Critic框架的强化学习算法,SAC算法最大的特点是将最大熵框架引入到目标函数、状态值函数和状态-行为值函数中,增大策略网络的随机性,让智能体在放弃明显低奖励路径的同时,拥有更强的环境探索能力、增大策略随机性、降低策略陷入局部最优值的概率,具体公式如下:
其中H(π(·|st))为表示策略π在状态st下的熵,π*为SAC算法的策略优化目标,γ为折扣因子,γ越大表示智能体越关注长期的奖励,α为温度参数,用于控制熵值与奖励的比重,状态值函数Vπ(s)和状态-行为值函数Qπ(s,a)的关系用以下公式表示:
Vπ(s)=Ea~π[Qπ(s,a)+aH(π(·|s))];
S54:策略网络中,在注意力机制模型之后,有两个MLP网络,分别用于预测在某时刻的动作a和执行该动作的次数k,在接下来的k个时刻均采取动作a,提高策略网络的稳定性,激活函数使用Relu。
8.根据权利要求7所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,所述步骤S7的具体过程是:
S71:回测使用zipline回测框架,zipline是一种给基于bar的中低频量化交易框架,逻辑相对简单,使用该框架需要设置合约大小、最小价格变动、手续费比率等基本信息,回测得到的回测指标包括:累积收益、年化收益、最大回撤、夏普比率;
S72:在交易策略中,设定仓位大小position,每次读入一个bar,根据模型的决策输出结果决定是否要入场。
9.根据权利要求8所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,步骤S6中,把2019年9月-2021年9月的金融技术指标作为模型输入。
10.根据权利要求9所述的基于注意力机制和强化学习的趋势预测方法,其特征在于,步骤S52中,每个episode区间大小在500-1000之间选择。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111417896.XA CN114049222A (zh) | 2021-11-25 | 2021-11-25 | 一种基于注意力机制和强化学习的趋势预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111417896.XA CN114049222A (zh) | 2021-11-25 | 2021-11-25 | 一种基于注意力机制和强化学习的趋势预测方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114049222A true CN114049222A (zh) | 2022-02-15 |
Family
ID=80211173
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111417896.XA Pending CN114049222A (zh) | 2021-11-25 | 2021-11-25 | 一种基于注意力机制和强化学习的趋势预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114049222A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115545790A (zh) * | 2022-10-20 | 2022-12-30 | 北京宽客进化科技有限公司 | 价格数据预测方法、装置、电子设备及存储介质 |
CN117314635A (zh) * | 2023-09-07 | 2023-12-29 | 北京工业大学 | 一种基于深度强化学习的专利交易系统、存储介质及终端 |
CN117634320A (zh) * | 2024-01-24 | 2024-03-01 | 合肥工业大学 | 基于深度强化学习的三相高频变压器多目标优化设计方法 |
-
2021
- 2021-11-25 CN CN202111417896.XA patent/CN114049222A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115545790A (zh) * | 2022-10-20 | 2022-12-30 | 北京宽客进化科技有限公司 | 价格数据预测方法、装置、电子设备及存储介质 |
CN115545790B (zh) * | 2022-10-20 | 2023-06-09 | 北京宽客进化科技有限公司 | 价格数据预测方法、装置、电子设备及存储介质 |
CN117314635A (zh) * | 2023-09-07 | 2023-12-29 | 北京工业大学 | 一种基于深度强化学习的专利交易系统、存储介质及终端 |
CN117314635B (zh) * | 2023-09-07 | 2024-04-05 | 北京工业大学 | 一种基于深度强化学习的专利交易系统、存储介质及终端 |
CN117634320A (zh) * | 2024-01-24 | 2024-03-01 | 合肥工业大学 | 基于深度强化学习的三相高频变压器多目标优化设计方法 |
CN117634320B (zh) * | 2024-01-24 | 2024-04-09 | 合肥工业大学 | 基于深度强化学习的三相高频变压器多目标优化设计方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Baek et al. | ModAugNet: A new forecasting framework for stock market index value with an overfitting prevention LSTM module and a prediction LSTM module | |
McNelis | Neural networks in finance: gaining predictive edge in the market | |
CN114049222A (zh) | 一种基于注意力机制和强化学习的趋势预测方法 | |
Sisodia et al. | Stock market analysis and prediction for NIFTY50 using LSTM Deep Learning Approach | |
Lee et al. | Exploring the effectiveness of deep neural networks with technical analysis applied to stock market prediction | |
Yinka-Banjo et al. | Stock market prediction using a hybrid of deep learning models | |
Agarwal et al. | A deep convolutional kernel neural network based approach for stock market prediction using social media data | |
Ghasemieh et al. | A robust deep learning model for predicting the trend of stock market prices during market crash periods | |
Lin et al. | A new attention-based LSTM model for closing stock price prediction | |
Alghamdi et al. | A novel hybrid deep learning model for stock price forecasting | |
KR20220167039A (ko) | 딥러닝과 경제 지표 기반 주가 예측 시스템 | |
CN111861752A (zh) | 一种基于强化学习的趋势交易方法及系统 | |
Jonáková et al. | POWER PURCHASE STRATEGY OF RETAIL CUSTOMERS UTILIZING ADVANCED CLASSIFICATION METHODS. | |
Moody | Forecasting the economy with neural nets: A survey of challenges and solutions | |
Gabler et al. | Pattern learning via artificial neural networks for financial market predictions | |
Ali et al. | Ensemble Model Based on Deep Learning for Forecasting Crypto Asset Futures in Markets | |
Park et al. | Combining Machine Learning Models with Gsadf Test for Bitcoin Market Crash Prediction | |
ADRIKO DEBO et al. | Predicting Implicit Patterns and Optimizing Market Entry and Exit Decisions in Stock Prices using integrated Bayesian CNN-LSTM with Deep Q-Learning as a Meta-Labeller | |
Shah et al. | Stock Market Prediction Using Deep Learning | |
CN117196842A (zh) | 基于因果关系图神经网络的股票特征分析系统及方法 | |
Sharma et al. | Enhancing Option Pricing Accuracy in theIndian Market: A CNN-BiLSTM Approach | |
Pornwattanavichai | Cascading model for Forex market forecasting using fundamental and technical indicator data based on bert | |
Tabe et al. | Comparison of Deep Learning Algorithms for “Bitcoin Cash” Price Prediction | |
Somkunwar et al. | Stock Value Prediction Accuracy Enhancement Using CNN and Multiple Linear Regression for NIFTY | |
Tuininga | Uncovering the Potential of Deep Learning in Algorithmic Trading: Deep reinforcement learning stock market trading, utilizing a CNN with candlestick images |
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 |