基于BP神经网络对上证指数的预测
2019-06-29邢伟琛
邢伟琛
【摘 要】近几年,国内外经济发展迅速,有诸多投资者将自己的资金投入到了股市之中,但股市行情变化莫测,时刻牵动着每一位股民的切身利益。面对这些问题,有一种可靠的股票预测方法就显得尤为重要。文章首先介绍了我国上证指数的基本情况,然后对BP神经网络做了相关介绍,针对股票市场自身所具备的非线性特征,基于LM(Levenberg-Marquard)算法所优化的BP(Back Propagation)神经网络模型,进一步预测和模拟了上证指数的收盘价,将产出的预测值与实际股票价格进行比较,以获得相关结论。文章研究的目的是以上证指数为例来检验BP神经网络在股票预测中的有效性,为股票市场中的投资者提供相应参考。
【关键词】BP神经网络;LM算法;股票预测;上证指数
【中图分类号】F832.51;F224【文献标识码】A 【文章编号】1674-0688(2019)12-0124-02
0 引言
在股票市场中,股价的非线性特征、复杂的投资者商业行为,以及国家政策对于股价的影响,给股价预测造成了困难。为了克服多方因素所带来的影响,本文试图运用BP神经网络的基本理论与研究方法,选择上证指数每日的价格指标,其中包含开盘价、收盘价、最高价和最低价等,用来预测上证指数未来收盘价的短期价格。
1 上证指数的基本情况
上证指数,前身是上海静安指數,其全称是上海证券交易所的股价综合指数,于1987年11月2日由中国工商银行上海分行信托投资公司静安证券营业部编制[1]。当前,上证指数的基本表现与其他个股股票的表现类似,因此其作为实验股票具有一定的普适性。
2 BP神经网络的基本介绍
BP神经网络,是一种按照误差逆向传播算法训练的多层前馈神经网络,也称误差反向传播神经网络[2],其构造的基本思路是由信号的正向和反向传播两个部分构成了一个完整的学习过程。在信号的正向传播期间,样本值在输入层进行输入,由输入层将样本值传递给隐含层,再由隐含层对样本值进行处理,然后将处理结果传输给输出层。此时,输出层的实际输出与原有的期望值进行比对,若出现较大差异,则将信息进行反向传播,将误差反向传播给每层的所有单元,然后获得误差信号并相应地修改单元的权重。权重通过不断地调整对网络进行学习。一旦训练输出的误差降低到可接受的水平或预设的次数,就会停止[3]。
3 上证指数的仿真分析
3.1 实验参数确定及仿真
(1)变量的确定。实验通过获取上证指数的最低价、最高价、收盘价与开盘价等指标进行对神经网络模型的训练。所以总体来说,本文所选取的所有输入变量能够较为准确地用训练完成的BP神经网络对剩下的30组数据进行测试。
(2)数据的归一化处理。由于各个数据之间存在数量级的差别,为了减少因数量级差别较大而造成模型预测误差较大的现象,因此本文采用最大最小法对输入输出变量进行了归一化处理。公式(1)为归一化处理的公式[4]。
xt=-1(1)
(3)隐含层节点数的确定。BP神经网络中隐含层的节点数与最后网络模型预测股票指标的精度之间有着紧密的关系。如果节点数量太多,神经网络的训练时间将会延长,将导致过度拟合;如果节点数量太少,则神经网络的训练能力会降低,预测精度则不尽如人意。因此,隐含层节点数的选取直接决定了BP神经网络的性能的质量。本文经过多次试验,最终确定了隐含层节点数为10。当然,通过查阅相关研究发现,不少学者也提出了许多经验公式供大家参考。详见公式(2)、公式(3)、公式(4)[5]。
m=+a(2)
m=(3)
m=log2n(4)
在上面的公式中,m表示隐含层节点数,n表示输入层节点数,l表示输出层节点数,a为取值在1~10的常数。
(4)BP神经网络结构的确定。本文主要应用MATLAB 2014b版本中所带的BP神经网络工具箱进行仿真实验。用newff创建BP神经网络,使用tansig作为BP神经网络神经元的传递函数和输出层神经元的传递函数。使用trainlm作为训练函数,最大训练次数为1 000次,学习率为0.1次,目标精度为0.000 000 000 000 1次。
(5)数据选取,为体现一般性,选取上证指数(000001)为实验对象,选取2017年7月10日至2019年4月12日之间共430个交易日记录为实验基础,选择其中400组交易数据进行BP网络训练,剩下30组数据用于测试验证。图1为、图2为BP神经网络预测的上证指数收盘价的预测值和实际值曲线。
3.2 实验结果分析
利用MATLAB对选取的400组样本数据进行训练,从上证指数收盘价的预测输出和期望输出的情况来看,LM算法作为训练函数的BP神经网络在一定程度上实现了对股价的判断,收盘价预测的基本趋势基本与期望值相符,精度除个别天数外,其他天数也基本吻合,综合来说实验人员对实验精度还算满意。从仿真的结果可以直接地判断出,训练完后的BP神经网络的预测能力较强,输出的上证指数的收盘模拟值与真实值之间的误差较小。在一定程度上,BP神经网络可用于判断股票价格趋势。因此,训练好的BP神经网络具有一定的预测效果,可以为投资者提供股票预测功能。
4 结语
传统的技术分析方法在预测这种非线性股票价格时,所产生的效果往往不尽如人意,而本文运用LM算法优化的BP神经网络模型,在充分利用LM算法对训练速度进行改良的前提下,以上证指数这只股票为实验对象,对未来30天的收盘价进行预测,取得了较令人满意的结果。因此,仿真实验表明,LM算法优化下的BP神经网络股票价格预测方法具有一定的参考价值。
参 考 文 献
[1]秦侃.上证指数波动影响因素研究[D].上海:上海社会科学院,2011.
[2]王磊,王汝凉,曲洪峰,等.BP神经网络算法改进及应用[J].软件导刊,2016(5):38-40.
[3]徐茂森.基于BP神经网络的我国沪深300股指期货价格预测[J].商,2016(1):201.
[4]罗洪奔.基于灰色-ARIMA的金融时间序列智能混合预测研究[J].财经理论与实践,2014,35(2):27-34.
[5]胡桔州,兰秋军.金融时间序列的数据挖掘技术与经典统计模型的比[J].系统工程,2005,23(6):95-98.