基于CNN-LSTM的股票中长期趋势预测
2020-06-10宋睿
宋睿
(上海海事大学信息工程学院 上海市 201306)
1 引言
曾安提出使用LSTM网络对股票进行短期价格拟合,但预测周期的变长使效果极具变差[1],Kim使用CNN对股票数据生成图片进行特征提取[2],但是无法有效的提取股票结构特征。黄志辉研究了CNN不同结构对股票短期拟合的影响[3],发现小卷积核深层网络具有更好的效果,但对稍长周期效果较差,本文提出基于CNNLSTM的股票长期趋势预测算法,同时利用CNN和LSTM网络的对结构和时序特征提取的优势,对股票中长期趋势进行分类预测,并可以由分类评分依照历史样本反推新股票样本的预期涨跌幅和趋势。
2 基于CNN-LSTM的股票中长期趋势预测
2.1 特征提取
现有的股票数据的特征提取大多只使用简单的收盘价和MACD指标。这种特征提取方法没有考虑到特征的特点。本文为完成股票中长期趋势预测任务,根据文献和市场经验,选择价格、成交量、乖离率[4]、波动率[5]四大类指标并结合MACD计算方法对四大类指标进行长期趋势特征提取。特征提取流程图如图1所示。
2.2 CNN-LSTM趋势分类网络
本文提出的CNN-LSTM股票分类网络模型是基于CNN和LSTM网络构建的分类网络。CNN网络具有较好的空间具有局部视野和共享权值的特点。股价数据的局部形态特征符合局部视野和权值共享的思想因此CNN网络可以提取单一LSTM网络无法提取的股价形态等高度抽象的特征;股票数据是金融时间序列。LSTM网络具有时序信息保留和长期记忆的能力,对于超长时间跨度的股票数据在经过CNN处理后,时间序列变短,将CNN网络的输出作为LSTM网络的输入可以同时发挥CNN和LSTM的优势。softmax对多分类问题具有优异表现的特性,使用 softmax分类器对股票涨跌幅进行分类预测,不同的分类结果对应不同的涨跌形态。网络结构图如图2所示。
3 实验
3.1 实验设计
本文将提取2.1中提到的全部特征,应用2.2中的CNN-LSTM网络,并采用平均池化的方法进行模型训练。最后对实验结果进行分析。
3.2 评价体系
图1:特征提取流程图
图2:CNN-LSTM股票分类网络结构图
本文选取分类准确率CA(Classification Accuracy)、平均绝对误差MAE(Mean Absolute Error)、0.96MR(Mean Ratio评分大于0.96的样本比例)、DM(最大回撤率Drawdown Max)以及MRR(Mean Rate Of Return平均收益率)来定量的评价CNN-LSTM网络模型的预测性能
分类准确率CA:
平均绝对误差MAE:
MMR(其中rise代表分类评分大于0.96样本的真实涨跌幅):
表1:模型训练过程及正确率
表2:不同排序的指标分析
表3:回推验证结果分析表
4 实验结果分析
依照模型流程将训练集数据输入神经网络训练,结果如表1:在60个epoch时模型达到最大测试集正确率86.5%。
本文将测试集样本交由神经网络进行分类打分。按照上涨评分,下跌评分,横盘震荡评分对训练样本数据进行排序,并计算每样本的真实涨跌幅。上涨、下跌、震荡展示图如图3至图5所示: 黄线:评分;粗黑线:真实涨跌幅均线;蓝点:样本点;中间细黑线:涨幅为0。
观察上涨下跌评分排序展示图和下跌评分排序展示图,分类评分与股票涨跌具有极强的相关性。如表2所示。
本文将评分大于0.96的股价样本提取出来,按照时间顺序与深证成指相对应,结果如表3所示。表格说明,高评分个股的比例对市场环境也有极强的表现能力。
图3:上涨评分排序展示图
图4:下跌评分排序展示图
图5:震荡评分排序展示图
5 总结
基于CNN-LSTM的股票长期趋势预测算法可以较为准确地预测到股价中期的涨跌趋势情况,并且利用高上涨评分的股票占比可以较好地估计此时市场环境的好坏和牛熊市运行阶段,可以很好为中长线投资者提供参考。本文提出的CNN-LSTM模型对于输入数据数量有较高要求,无法涵盖交易日小于850日(特征抽取会剔除250个交易日的数据)的新股,同时不能预测短期趋势,无法满足短线投资者的需求。本文会继续改进算法,尝试对短期趋势和涨跌幅进行预测。