陈毅
摘 要:股市作为一个国家经济的晴雨表,在整个国民经济体系中起着不可或缺的作用。合理地、有效地预测股市未来走向对国家、企业以及投资者来说均有者重要意义。而BP神经网络在处理高非线性、多维度数据上又有着巨大的优势,该文旨在使用BP神经网络及其优化算法对股价未来走势做出一个合理的预测,为股票市场长期稳健发展添砖加瓦。
关键词:BP算法 股价预测 趋势预测 Adam
中图分类号:TP183 文献标识码:A 文章编号:1672-3791(2020)05(c)-0198-03
近年来,随着我国经济的飞速发展,股市投资者的数量也以惊人的速度迅速上涨,根据中国证券登记结算有限公司的数据显示截至2018年底我国股市活跃账号已有1.465亿,总市值已达53.66万亿。然而股价的走势会受到如国家政策、宏观经济情况、所属行业发展前景、上市公司自身运营情况、投资者情绪及其他突发事件等影响,而传统的走势预测方法如基本面分析法和传统技术分析法等的具体实施不仅需要大量准确且及时的消息为前提,更需要充足的理论知识为背景,方可大致预测出股价未来走势,很难满足数量如此庞大且多数不充分具备相关理论知识的投资者,因此寻求一种稳定可靠且操作简单的股价预测方式以迫在眉睫。神经网络的出现为此提供了可行性,其对高非线性的复杂数据的处理得到了广泛的学界认可,模型建立后对股价的预测操作也极为简单。值得我们进行深入研究。
该文尝试利用BP神经网络进行建模,通过对长江电力(600900)2003年11月14日到2019年12月12日共3493条交易数据进行实验,以期获得一个能够较好拟合股价走势的模型,并据此对未来走势进行预测。
1 相关研究
2001年,吴微、陈维强、刘波等通过大量的数据实验分析总结得出关于如何进行样本选择、初始权值赋予、隐层层数及每一层神经元个数选取、激活函数选取等一系列方法。并就不同的选择产生的结果进行了比较,以此说明其优缺点[1]。王晶、张文静等人在2008年指出BP神经网络采用的负梯度下降法有可能使结果陷入局部极小值而非全局最小值,且在学习率等参数设置不理想时易造成收敛速度过慢[2]。他们在此基础上提出蚁群神经网络,将蚁群算法与神经网络相结合,并通过输入代号为000070的股票前一周每天t时刻的股价和前3天大盘t时刻的股价,来预测未来一天t时刻的股价,实证得出加入蚁群算法的神经网络在预测精度和预测速度上相较于单一神经网络有显著的提高。2012年,刘斐弘分别将BP、RBF、GABP这3种神经网络用于股票价格预测,实证表明这3种神经网络均能够较好地进行股价预测,而其中以GABP网络的全局收敛性和精度最高[3]。2017年,周宁、黄捷等人在用BP神经网络对中石化股票数据进行建模预测后,利用马尔可夫模型对误差序列(预测数列与实测数列之差)进行处理,计算出未来状态数据的状态概率,再将未来数据进行还原得出其所在真实范围区间,再选取概率最大区间,取均值作为最终预测结果输出。此法有效提高了模型的准度[4]。2018年,刘佳祺、刘德红等人将主成分分析法、遗传算法与BP神经网络算法相结合,建立PCA-GA-BP模型用于预测股价变动情况,该模型很好地改善了BP网络运算速度慢和易陷入局部极小值的缺点[5]。值得说明的是,上述这些研究多是将BP算法与其他相关算法相结合,以此来获得更好结果,基于BP网络自身的改进算法并不多见。
2 误差反向传播算法
误差反向传播算法(Back-Propagation Algorithm),简称为BP算法,是在神经网络和深度学习中占据统治地位的算法,它的出现极大地推进了神经网络的发展。图1可以看作是一个3层神经网络示意图。其权重反向传播如下。
3 数据处理
该文通过网易财经的数据接口获得长江电力(600900) 2003年11月14日到2019年12月12日共3909条交易数据,其特征包含日期、收盘价、最高价、最低价、开盘价、前收盘价、涨跌额、涨跌幅、换手率、成交量、成交金额、总市值、流通市值共13个维度。将其停盘日数据(收盘价=0)共416条删除后剩3493条实验数据。实验中,以t+1日收盘价为预测目标,以t日的交易数据为训练对象,通过归一化对数据消除量级差造成的影响。
4 实证分析
通过构建3层BP神经为网络,其中第一层为输入层,共有11个神经元组成,分别输入t日收盘价、t日最高价、t日最低价、t日开盘价、t-1日收盘价、t日涨跌额、t日换手率、t日成交量、t日成交金额、t日总市值和t日流通市值。第二层为中间层(隐藏层),设有3个神经元,第三层为输出层,有一个神经元,输出值为t+1日的收盘价预测值。学习率为0.05,通过最小批量梯度下降法迭代次数为50次,每批次为85条数据。将数据按4∶1的比率分为训练集共2793条,测试集700条。其实验结果如图2所示。测试集最终均方误差为2.505。
5 优化改进
Adam算法是由OpenAI的Diederik Kingma和多伦多大学的Jimmy Ba最早提出的,其可以看作是动量算法与RMSProp算法的集合,是目前神经网络中最流行的优化方法。该算法对梯度和学习率均做了改进,使得代价函数在接近鞍点时能够继续学习,或当陷入局部最小值时,增大逃出的可能性。
在不改变其他超参数的情况下,使用Adam算法进行梯度下降后其结果如图5所示,且训练集与测试集中部分放大,测试集最终均方误差为0.0293。
6 结语
对比上述实验,可知基于神经网络的股票趋势预测是充分可行的,当使用BP算法与Adam算法相结合时,也可以大幅改进算法的准确率。该文的不足之处在于没有对模型进行其他方面的改进,具体实验也是针对个股,不具有普遍性。在未来的工作中可以尝试通过对数据维度进行缩减和对多个股票进行实验分析,以提升模型使用的广度。
参考文献
[1] 吴微,陈维强,刘波.用BP神经网络预测股票市场涨跌[J].大连理工大学学报,2001(1):9-15.
[2] 王晶,张文静,张倩.蚁群神经网络用于股票价格短期预测[J].商場现代化,2008(6):364-366.
[3] 刘斐弘.神经网络在股票价格预测中的应用——基于三种网络的比较分析[J].时代金融,2012(15):241.
[4] 周宁,黄捷,刘志远,等.基于神经网络和马尔可夫组合模型的股票价格预测[C]//中国自动化学会控制理论专业委员会.第36届中国控制会议论文集.中国自动化学会控制理论专业委员会:中国自动化学会控制理论专业委员会,2017:6.
[5] 刘佳祺,刘德红,林甜甜.基于BP神经网络模型的股票价格研究[J].中国商论,2018(8):29-30.