循环神经网络股票预测
2018-11-26王子玥
王子玥
摘要:现有文献中主要讨论了传统机器学习方法在股票预测上的应用,对于循环神经网络尝试较少且均未在日级以下数据上尝试预测。本文采用标普500每分钟数据来预测股票价格,利用循环神经网络做模型构建,分别对未来一分钟和十分钟不同时间区间做出预测,从而说明分钟级股价的规律性。
关键词:股价预测;循环神经网络;标普500;时间区间;分钟级股价
中图分类号:TP183 文献标识码:A 文章编号:1009-3044(2018)22-0171-02
Abstract:Existing literature mainly discusses the application of traditional machine learning method in stock prediction. And seldom attempt to use recurrent neural network and never using the minutes data. To illustrate the regularity of the stock price at the minute level. This article uses the data of the S & P 500 per minute to predict the stock price, using recurrent neural network as a model to predict the future one and ten minutes in different time intervals respectively.
Key words:stock prediction; recurrent neural network; S&P500;; time intervals; minute level
1 引言
自从进入21世纪以来,股票交易的手段和方法就一直伴随着计算机技术的革新而改变,从20世纪末的电子化交易,到21世纪的算法交易,股票市场的自动化水平越来越高。另一方面随着市场规模的扩大,股票市场中包含的信息量也呈现出爆发式增长,直接影响因素和间接影响因素间具有的关系已不再适合单纯由人工进行分析和总结。随着近几年深度学习等人工智能技术的兴起,几家大的投资银行也都纷纷着眼于新的技术用来解决原有算法及交易方式中存在的性能问题及人工成本问题。高盛公司在2000年时仅位于纽约的股票交易部门就有约600名员工,而如今仅余下两名员工处理日常工作;而摩根大通则于17年宣布正在使用机器人来执行全球股票的算法交易,这当中还包含大量的合同文本及财报的自动分析[1]。人工智能技术在证券交易领域的应用不仅仅是解放了下单交易这类低端的工作人力,其出色的分析能力和决策能力也淘汰了相当一部分基金经理和金融分析师,而后者对应的高薪岗位在从前浅层学习或弱人工智能的时代是不可撼动的。因此研究深度学习在金融数据上的应用具有切实的经济效益,它在解放人工的同时减少了人为因素对金融市场的干扰,让市场发展更加健全,更趋近于有效市场[2]。
2 研究现状
在21世纪初期的算法交易中,通常采用的是传统机器学习方法以及金融时间序列分析,如支持向量机,决策树,回归分析,ARMA模型等[3];这类算法可解释性强,但人工参数过多,过拟合欠拟合等问题一直存在于此类算法之中,且此类算法由于其本身结构简单,往往一个模型只能针对单只股票建模,不能分析多支股票间的相互关系,更不能分析市场中存在的消息面驱动因素带来的影响。近几年兴起的深度学习方法虽然在模型的可解释性上要弱于传统机器学习,但其本身模仿人脑神经元的结构使得它可以出色地完成各种复杂的分析任务,这当中就包含多股票的联合分析,以及文本和股票信息的融合决策等。通过深度学习模型来预测股票走势其本身具有两大优势:一是模型中人工参数往往不直接影响预测效果,减少了人为因素对预测结果的影响;二是深度学习在泛化能力上通常要优于传统机器学习,這在一些比赛中已经得到了证实。已有成果对于深度学习在金融数据上的应用研究还较少,如何选择有效的策略针对市场中大量的股票数据同时进行分析并得到每支股票的预测结果以及保证精度控制风险依然有待进一步研究[3]。
3 研究方案
由于现有文献未曾尝试在分钟级的股价数据上做出预测,因此本文首先要做的就是在基础模型下验证股价在分钟级粒度下的可预测性。本课题采用的原始数据为S&P500;从2017年每分钟的500支成分股的报价记录,数据预处理采用差值处理方式,其数据格式如图2所示。我们将数据中每行作为一个样本,按列的成分股价格作为特征,以使其能够契合循环神经网络的输入数据格式[4],损失函数采用MSE损失[5],目的是希望预测结果能够更加贴合真实数据。
其中i代表500支成分股的脚标,预测结果的评价上采取定性不定量的方式,统计涨跌两种情况的预测准确率,若总的准确率超过了50%并且通过了显著性检验,那么就可以认为在此粒度下的股价数据是存在规律并可以预测的。
第二部分本文尝试使用决策树对大盘进行涨跌预测,这一部分和前面用循环神经网络对成分股预测不同,此处主要目的在于验证传统机器学习方法决策树在股票这种高噪声环境下的预测能力和性能,从而与前面循环神经网络进行对比,以展示神经网络与传统机器学习之间的性能差别,这种差别包括训练时间,分类准确率。
4 实验结果及分析
4.1 实验平台及数据
实验硬件平台采用cpu:i7-8700k,gpu:gtx1080ti,16g内存,硬盘:128Gssd,软件平台采用tensorflow1.4,python3.5,所用数据累计40000分钟,采用前20000分钟训练,后20000分钟预测。
4.2 结果分析
本文所采用的神经网络为双向LSTM,这是为了综合运用历史信息中的正向信息和反向信息所设计的优秀的神经网络,在数据采集上,为了保证实验结果的正确性,我们尝试步长在10~30的数据进行测试,此处步长代表了我们要使用多少历史信息来进行建模。实验结果如下表。
从表格中也可以看出,无论在什么样的步长设置下,其准确率始终高于50%,从图表中数据也可以看出,20000分钟的测试数据内,若假设每分钟涨跌幅度基本近似,则基本保持有60分钟的交易是处于净盈利状态。尽管相比于50%的10000分钟来说,高出60的幅度并不高,但这依然显示了股票市场在分钟级粒度下具有一定的规律性,而神经网络的超线性拟合能力可以将这种规律性挖掘出来。
同时我们以每次实验时的200分钟数据的准确率来做一次统计,每次实验总计100次统计,在实验最后计算这100次统计的准确率的标准差,用来说明其稳定性。标准差数据如下
从上表可以看出,预测准确率的波动始终处于0.002的水平上,也就说明了模型的预测在时间序列上是较为稳定的,更进一步说明了采用循环神经网络挖掘细粒度股价波动规律的可行性。
另一方面本文还尝试了在不同步长条件下,预测未来一段时间涨跌状况的实验,这是为了验证股票市场历史数据是否在未来一段时间内会持续产生作用,同时对比其和预测未来一分钟的准确率区别。若步长为n,则目标为利用[t-n,t]时刻的数据预测t+10到t时刻股价的涨跌。实验采用步长10~30,准确率表记录如表3所示。
从表3中可以看出其预测准确率相较于仅预测下一时刻的涨跌有小幅上升,可以认为将时间拉长之后,其历史趋势会变得明显,从而提升预测准确率。而且从表格中也可以清晰地看出,在预测未来10分钟内的涨跌时,采用不同长度的历史数据会对预测准确率产生影响,整体上在10~30分钟的历史数据的选择上,采用的历史数据越多,准确率会渐渐增大。
接下来本文同样测试了在不同步长条件下,各个准确率在每200分钟统计一次的情况下100次统计的方差,由表中可以清晰地看出此方差相較于仅预测下一时刻时要增大了一个数量级,这也就可以说明在利用历史数据来预测未来一段时间的波动时,由于未来的时间长度过长,导致依靠的历史数据越难以做出有效判断,从而加大了方差,也就是增加了不稳定水平。
5 结论
本文采用循环神经网络尝试了分钟级股价的预测,同时对比了在预测未来1分钟和10分钟之间的区别,实验说明了预测的未来和历史数据时间上越接近,预测准确率就越稳定,但由于预测的时刻粒度过小,导致准确率低下。
参考文献:
[1] 陈思进.从AI进入华尔街谈如何应对人工智能[J].金融博览,2017(17):62-63.
[2] Malkiel B G, Fama E F. EFFICIENT CAPITAL MARKETS: A REVIEW OF THEORY AND EMPIRICAL WORK[J].Journal of Finance,1970,25(2):383-417.
[3] 陈炜,石诚,孙梦荣.基于人工蜂群算法的高频交易策略组合配置研究[J].山西大学学报(自然科学版),2013,36(3):363-368.
[4] Singh R,Srivastava S. Stock prediction using deep learning[J].Multimedia Tools & Applications,2016:1-16.
[5] Fischer T,Krauss C.Deep learning with long short-term memory networks for financial market predictions[J].Fau Discussion Papers in Economics,2017.
【通联编辑:唐一东】