姚小强 ,侯志森
(1.空军工程大学 防空反导学院,西安 710051; 2.西安交通大学 软件学院, 西安 710049)(*通信作者电子邮箱icemissile@sina.com)
金融时间序列的预测一直备受关注,有效的预测手段却十分稀少。长短期记忆(Long Short-Term Memory, LSTM)神经网络是目前金融时间序列预测领域内比较先进的技术手段,它的记忆功能对解决蕴含时间序列信息的问题具有天然优势[1],这种网络技术已被广泛运用到很多与时序相关的领域,如自然语言处理[2-3]、动作识别[4]、语音识别[5]、金融时间序列预测[6-7]等。相比传统的BP(Back Propagation)神经网络,LSTM神经网络能利用选择性记忆的高级机器学习功能,深入挖掘出金融价格时间序列中的固有规律,使预测得到更高的准确性。Fischer等[8]的研究发现LSTM网络的表现通常优于无记忆的分类方法; Saini等[9]对传统的前馈型神经网络与带有记忆功能的循环结构神经网络进行了对比研究,通过考察它们在外汇价格预测上的表现,发现这两种网络都为所有的货币提供了良好的预测结果,而循环网络带来的结果比前馈型网络更好。
在时间序列的预测研究中,多周期尺度下的特征融合是一种重要的分析方法,然而多数应用LSTM神经网络的时间序列预测方法,往往只针对某一特定周期进行特征提取,忽视了时间序列在其他时间尺度上的信息,导致预测模型的能力得不到充分发挥; 故而,本文提出一种基于树结构神经网络模型用于预测未来黄金价格的变化方向与强度。树结构模型对蕴含多尺度特征的问题有很好的适配性,应用树结构有利于同时对复杂的多尺度特征进行提取挖掘,进而提高分类预测的准确性;遗憾的是,目前这种结构还主要停留在图像识别领域[10]。Zangeneh等[11]以卷积神经网络为基础,分别为高分辨率和低分辨率的人脸图像建立拥有两个分支的预测模型,结果显示,引入分支的模型能够显著提高识别性能,这一结论为本文的方法提供了思路与灵感。
在金融时间序列的分类预测问题上,类标签的可信度(即分类的合理性)是预测的基础,它的设置将直接影响输入数据与输出数据内部关联性的强弱。本文将盈亏比的概念融入类标签的划分过程,综合考虑到类标签的可信度与预测结果的价值和意义,建立合理有效的数据模型,使数据内部的关联性得以强化。即便如此,金融时间序列的前后关联性还是在大量噪声干扰下被削弱,一些较弱的关联规则几乎消散,致使关联性样本分布稀少,而噪声样本占据多数。这种非平衡的样本分布给预测模型的训练过程带来巨大障碍。本文从样本抽取模式与目标权值优化两个角度进行研究,以降低样本分布不均所带来的负面影响。
利用过去一段时间内黄金价格历史时间序列信息,实现对未来一段时间内黄金价格运行方向与强度的预测。将之具体化为:利用过去60 h内的K线数据,预测未来20 h内黄金价格的运行方向与强度。
针对以上任务,提出图1所示的方法路线。
图1 问题求解方法路线
本文所建立的预测模型以LSTM神经网络为基础,同时考虑到金融时间序列多周期共振特点,设计了融合多尺度特征的分支结构;在预测目标的量化标记方面,设计了检索标定算法;训练的过程中通过监控盈利指数来保存性能优越的过程模型;为提高预测模型对主要类别样本的关注度,引入目标权值优化方法;另外还采用不同类别样本平衡抽取的策略进行训练,避免各类样本不均衡可能带来的问题。
相比传统的预测方法,具有如下优势:
1)相比单个周期序列作为输入的预测模型,本文方法能更加适应金融时间序列多周期共振的特征,又比小波分解等多尺度特征提取方法更具有周期针对性,处理过程也更加简单高效。
2)目标检索标定方法,充分考虑了金融价格实现周期与幅度的不确定性,相比价格回归预测以及形态聚类等目标量化标定方法更符合金融价格波动的内在规律。
3)引入阈值调整、目标权值优化、多类别样本平衡抽取等一系列方法策略,相比一般的预测方法更加系统、完善。
4)传统的方法通常是将损失误差作为过拟合监控的标准,使得最终模型往往无法取得理想的预测性能;为此,本文创造性提出了盈利指数的概念以及计算公式,并将其应用到模型训练的监控过程,为模型性能的评估提供了科学的依据,也为过程模型的优选带来极大便利。
将黄金历史价格时间序列表示成X,未来价格时间序列的变化结果表示成Y, 则价格的预测问题就是寻找X与Y之间的映射关系,用函数形式可以表示为:
Y=f(X,θ)
(1)
式中:f为X到Y的映射函数,也称预测函数;θ为预测函数内部的所有参数。
X的表示 考虑到多周期共振特征可能带来更好的预测效果,将1 h与15 min两个周期的历史序列数据同时作为输入,分别记为xa、xb,两个周期的窗口截取长度都为60,即60根K线数据,每根K线被表示成一个4维的向量[o,h,l,c], 则t时刻预测函数的输入xt可表示成:
xt=[xa,xb]t=
(2)
式中:G为归一化方法;R为利用归一化方法G将原始窗口序列,转换为预测模型可用的输入。
归一化方法 选择3倍时间窗口的历史序列作为搜索空间,得到期间的最高价格与最低价格,然后利用最大最小值的方法对当前窗口中的每个输入变量xi进行归一化处理。归一化的结果按照式(3)计算:
(3)
式中:PriceMax为3倍时间窗口历史序列中的最高价格;PriceMin为3倍时间窗口历史序列中的最低价格。
Y的表示yt为t时刻Y的值,它是一个4维向量,各分量依次代表弱震荡、上涨、下跌、强波动4种情况。为了与交易系统很好衔接,将弱与强的量化边界分别对应止损价格与止盈价格。止损价格为3美元,止盈价格为7.5美元,对应盈亏比为2.5。检索标定算法如下:
1)利用t时刻的收盘价格O,初始化上涨幅度h,与下跌幅度l。
2)遍历未来20 h内的价格变化,i为循环变量。
3)如果t+i时刻的最高价>h,更新h=最高价[t+i]。
4)如果t+i时刻的最低价 5)若h>O+7.5且l>O-3,则类别T=涨,退出遍历。 6)若l 7)如果完成遍历,转下一步;否则转到步骤3)。 8)若h 9)弱h>O+7.5且l 2.2.1 LSTM模型简介 LSTM结构模型因其拥有记忆功能,在解决时间序列的回归与分类问题中具有很强优势。 如图2所示,LSTM模块由多个同构单元格(Cell)构成,单元格也常被称作节点(Node)。每个节点内部包括:遗忘门(Forget Gate)、输入门(Input Gate)和输出门(Output Gate),以及由它们控制的输入到输出的各种连接。三个门是LSTM的核心,可以看作是张量流在LSTM内部流动时的调节者。它们的具体功用如下: 遗忘门 负责对此前状态空间中的信息进行过滤调节。 输入门 它的主要作用是调节各节点的输入信息进入状态空间的比例。 输出门 主要作用是对当前节点下状态空间所保存的信息流入隐层的过程进行调控。 图2 LSTM结构 经过遗忘门与输入门的调控,状态空间C得到更新,t时刻的值为Ct。ht作为隐层的输出将同时与状态信息Ct被送入下一时刻的节点。 LSTM模块中各门控函数以及状态传递过程的计算公式如下: (4) LSTM模型有很多变体,但在性能上区别不是很大,因此本文提出的树结构LSTM神经网络就是在传统的LSTM模型之上建立的。 2.2.2 树结构LSTM神经网络模型 网络结构 树结构LSTM神经网络总体结构上由两个分支子网与一个顶层全连接子网组成。两个分支子网同构,前端包括3个LSTM神经网络模块,末端引入一个全连接网络层,两个分支子网分别用于15 min与1 h两个时间尺度下的特征提取;顶层全连接网络首先通过一个ADD层将两个分支LSTM子网的输出拼接,然后通过两个全连接神经网络层汇集的特征进行综合分类预测。模型结构如图3所示。 参数设置 神经网络在训练过程中容易陷入局部最小值,简单的做法是引入Dropout层,通过随机抑制部分神经元的输出,让所有神经元实现更充分训练;该Dropout参数的大小应与数据集的信息量负相关,与网络规模正相关,经测试,当弃点概率设为0.2时基本可以满足训练需要。网络中所有LSTM层的激活函数均采用非线性函数“tanh”,它与门函数的取值(0-1)刚好适配,同时也适用于金融时间序列的非线性特征;顶层激活函数选择适用于多分类的“softmax”;全连接层的激活函数采用线性函数“relu”,模型前端以非线性函数来映射金融时间序列的数值特征,后端的全连接层依据这些特征进行线性整合划分最终输出分类向量,选择“relu”可以保持可用性的同时,提高训练效率;优化器采用“rmsprop”,这是一种类似随机梯度下降的权值优化算法,在深度学习网络的优化中被广泛试用。 过拟合监控 神经网络分类器如果过度训练会出现过拟合情况,使得模型泛化能力不进反退。为了防止这种情况的发生,采取的方法是每完成一次训练,利用模型对检验集进行预测,得到一个模型泛化评价指标,如果指标有提升则保存该模型到文件,保存模型时以非覆盖的形式进行,防止更好的模型被覆盖掉,待完成训练后再参考拟合曲线或其他指标,对过程模型进行甄选。 平衡抽取 为保持不同类别之间的平衡性,每次迭代随机从4类样本中随机抽取相等数量的样本,此方法可以防止预测模型向分布较多的样本倾斜。 图3 树结构LSTM神经网络结构 权值调整 通过动态调整目标函数中各样本对应的权值来实现注意力机制,目的是让模型在训练时将注意力集中到更关注的类别(涨、跌类)。对于预测结果为涨、跌的样本,预测结果高于阈值0.8的权值为2,否则设为1;对于预测结果为弱、强的样本,预测结果高于阈值0.8的权值为1,否则为0.5。在模型训练过程中,模型会向更高权值样本的分布特征倾斜。为了获得在主类别样本上更高的准确率,可以适当牺牲主类别的召回率,以及非主类别的判断能力。 评价指标是针对预测模型的预测结果与训练过程进行评价与监控的重要依据,模型对数据的预测结果包括4种情况: 3) 利用公共管廊管道的风险评价模型,对上海某化工园区的氢气管廊管道进行了风险评价。结果表明: 该管廊管道失效概率等级为1级,失效后果等级为B级,风险评价结果为低风险。 1)TT:预测为真,实际为真,预测正确; 2)TF:预测为真,实际为假,预测错误; 3)FF:预测为假,实际为假,预测正确; 4)FT:预测为假,实际为真,预测错误。 准确率 用于考察模型在测试集上对主类别样本的预测准确性,计算公式如下: (5) 召回率 用于考察模型对测试集中主类别样本的漏判程度召回率越高,漏判程度越低。计算公式如下: (6) 盈利指数 准确率与召回率相互依存,不能顾此失彼。对与金融投资来说,准确率p对应投资的胜率,并与召回率r共同决定交易机会的多少。结合盈亏比b,可以得到一个模型总体盈亏能力的一个指数IW,它可作为模型训练时的监控量,盈利指数IW的公式推导如下: W=盈利总额-亏损总额=NTT·b·v-NTF·v= N·v·r·(b+1-1/p)⟹ IW=r·(b+1-1/p) (7) 式中:N为总交易机会,对于特定时间段而言,交易机会为常数,等于该段时间内所有主类别样本数量;W为总盈亏,也称净盈利;v为每场交易的平均亏损额度,这里可视为常数;NTT为盈利交易次数,此时预测结果为主类别,且与实际值相符;NTF为亏损交易次数,此时预测结果为主类别,但与主类别不符。 从式(7)可以看出,召回率与准确率越高,IW的值越大。当p=1且r=1时,IW取最大值b;而当p=0且r=0时,IW取最小值,具体需要依据非主类样本的数量比例来确定。 数据来源 数据是从MT4交易平台中采集得到,交易品种为国际黄金现货(黄金价格对美元进行折算),其中包含2008- 01 — 2017- 12的15 min与1 h的K线数据。 数据集划分 训练集来自2008- 01 — 2016- 12的数据,用于预测模型的训练;测试集来自2017- 01 — 2017- 12的数据,用于考察预测模型的准确性与泛化性能;检验集从训练集中无放回抽取5 000个样本。样本分布情况如图4所示。 图4中显示了4类样本(弱(价格小幅波动)、上(价格以上涨为主,下跌幅度不超过止损价格)、下(价格以下跌为主)、强(价格上下波动的幅度均超过止盈价格))的占比情况,以及波动强度信息,其中图例中百分比的数值代表这类样本占总体样本数量的比例;最后的整数代表此类样本的具体数量。图中重叠较严重的区域,代表样本分布密集。在样本集划分阶段,主要关注样本总体分布的平衡性。 训练过程模型拟合情况如图5所示。从图5(a)、5(b)中可以看到,涨、跌两类样本的准确率在开始阶段波动十分剧烈,多次触及100%。然而不能将此时的模型作为最终的模型,因为召回率(为方便查看,召回率被向上平移了0.1)此时还处于底部,即便是一味追求高胜率,而不关心模型的综合盈利能力,也需结合图5(c)的盈利指数变化情况,在模型迭代500次之后寻找准确率高的位置选择模型。 图4 输出数据分布 本文最终模型是在迭代训练1 500次之后选定的,从这个位置开始上涨盈利指数已经开始逐渐下滑,而下跌盈利指标相对保持平稳,说明模型已经开始出现过拟合;而从图5(c)可以看出,迭代1 530次时,综合盈利指数取得最大值,本文将其从保存的过程模型中调出,作为最终的预测模型。 预测模型的输出形式为[y1,y2,y3,y4],每个分量的取值范围为[0, 1]。为了提高预测结果的准确率,将输出阈值调整为[0.5, 1]内的一个数值。当阈值为0.77时,预测结果为上涨与下跌的样本分布情况如图6所示。 从图4(b)可知,测试集的样本分布中涨跌样本的分布数量分别为23%与22%,而图6中显示此时预测结果所对应的分布数量分别为27%与31%。这一结果说明预测模型学习到了一部分规律,使得预测结果的分布高于样本的原始分布,但27%还没有达到28.7%的最低概率要求。 图5 预测模型训练过程曲线 图6 阈值为0.77时预测结果为涨或跌的样本分布 对图4(a)观察发现,类别为“弱”的样本在上涨样本的附近分布比较密集,而预测为上涨和下跌的样本中“弱”样本都占据了40%以上的分布。为此,本文将盈亏限制调整为止损2美元,止盈5美元,其他参数保持不变。调整后,得到新的样本分布如图7所示,上涨与下跌的分布概率分别达到38.57%与38.27%,它们同时代表了预测的胜率,此时已经高于最小成功概率(28.7%)将近10个百分点。 图7 止损2美元时预测结果为涨或跌的样本分布 通过继续对阈值与止损价格进行综合调整,应该还可以取得更好的预测准确率,如果需要建立一个综合盈利能力更强的预测模型,可以参考本文所给出的盈利指数计算方法,对阈值和止损价格进行遍历优化。将预测模型应用于自动化交易系统之前,还需要对模型的连续亏损次数等数据进行统计,从而得到资金最大回撤幅度等风险指标,最终确定交易系统中的开仓比例等具体参数。 为了证实模型的通用性,将这种双通道的结构模型,在欧元兑美元的汇率指数变动的预测中做了同样的尝试,选择的输入周期仍然是15 min与1 h,预测距离等其他参数保持不变。按照文中的方法,很容易得到一个积极的预测模型(准确率高于28.7%)。 经分析,取得积极预测效果的主要因素有3个: 1)引入了树结构模型;2)时空分割法强化了数据内部的关联;3)利用阈值来限制预测时机,减少了一些不稳定因素。为了证实树结构的优势,引入文献[7]中的建模方法,按如下步骤进行对比实验。 第1步 选择归一化后的1 h的历史收盘价格作为输入序列,窗口长度为60; 第2步 利用离散小波分解(db4)进行降噪处理; 第3步 以降噪后的时序数据为输入,利用自动编码器,建立三层编码网络,节点数量设为50、30、20,传递函数为“tanh”; 第4步 以编码结果为输入,建立LSTM预测模型,并进行简单训练; 第5步 联合编码网络与LSTM网络进行整体调优训练。 最后,在测试集上进行预测。最终取得的准确率为32.31%,经过阈值调整,性能并没有得到明显提高。 根据多周期共振原理,建立树结构LSTM神经网络预测模型,是金融时间序列预测的一种有效方法。配合本文设计的目标类别标定方法(见Y的表示方法)与过拟合监控手段(引入盈利指数),预测性能可达到辅助交易的要求。这种树结构模型可进一步融合多个关联性较强的数据特征,如成交量、更多周期、关联品种、相关基本面、消息面等信息。对这些数据特征的选择需要一定的实践经验作为支撑,否则不但会增加训练成本,还达不到理想的预测效果。为提高预测的准确率,本文的方法是调整盈亏比以及限制预测的精度。实践发现,并非所有训练得到的模型都能够在提高阈值精度条件下,同时提高预测的准确性,这一问题并未在文中进行着重提出,有待进一步研究。2.2 网络模型
3 评价指标
4 实证结果与分析
5 结语