【点宽专栏】基于深度学习的股票涨跌预测

01背景

股票价格的预测是学界和业界一直以来尝试去研究解决的问题,由于股票的价格受到的影响因素众多,涵盖了上市公司基本面,产品价格的波动,国内的宏观经济数据,国际市场的各种金融资产和价格的波动等等,并且各个变量与股票价格的走势并非线性,因此传统的计量经济学模型并不能很好地解决股票价格的预测问题。

近些年来随着人工智能与机器学习的出现,为股票价格的预测提供了一种新的思路,本文基于深度学习的思想,尝试对上市公司的价格做出预测。

02深度学习理论与模型

深度学习是机器学习的一个新的方向,其理论基础是神经网络。一个神经网络包含输入层、隐含层和输出层。将数据导入输入层,经过一系列数据传导、计算及误差修正,可以得到样本数据的内在规律和表示层次。理论上,一个足够复杂的神经网络可以逼近任何函数。

2.1 感知机

一个感知机是具有单层计算单元的神经网络,由线性元件及阈值元件组成。在单层感知机的输入层和输出层之间加入隐藏层,就构成了多层感知机,每层的计算都由一个线性函数加一个非线性激活函数构成。当一个神经网络包含一个深层的隐藏层“时,它称为深度神经网络(DNN)
【点宽专栏】基于深度学习的股票涨跌预测

2.2 RNN/LSTM

循环神经网络通过使用带自反馈(隐藏层)的神经元,能够处理任意长度的序列。循环神经网络比前馈神经网络更加符合生物神经网络的结构。RNN非常适合用于处理时间序列,且在语音识别、图像处理、语言模型以及自然语言生成等任务上也应用非常广泛。

长短时记忆神经网络(Long Short-Term Memory Neural Network,LSTM)是循环神经网络的一个变体,可以有效地解决长期依赖问题/梯度消失问题。

本文使用LSTM建立基于深度学习的股票价格涨跌预测模型

03数据获取、处理与建模

3.1 数据获取

本文获取点宽BP因子数据库中与沪深300成分股相关的基本面因子及技术面因子,总共149个因子,时间区间为2018年1月1日-2019年1月1日。
【点宽专栏】基于深度学习的股票涨跌预测

3.2 数据处理及建模

由于沪深300成分股的基本面因子及技术面因子数据之间的差异较大,因此需要对因子数据做归一化处理,并将缺失值超过90%的做删除处理,然后剩下的缺失数据用0填充。
然后将数据分成训练集和测试集,按照9:1的比例进行划分,以所有股票第二天的涨跌作为输出,若第二天为涨则为1,否则为0;以其他基本面因子及技术面因子数据作为输入,
使用经过处理后的数据构建LSTM模型,这里的神经网络包含四层:输入层、两层LSTM层和一个输出层,模型概览如下:

开始训练神经网络:
【点宽专栏】基于深度学习的股票涨跌预测

可以看到随着训练次数的增加,模型的损失率逐步下降,准确率逐步上升并最终达到92%以上。

3.3 模型预测及改善方向

需要指出的是,虽然该LSTM模型在样本内预测效果很好,但是当我们使用该网络对测试集的数据进行测试的时候,发现准确率仅有53%,说明该模型的实际应用效果较为一般,我们可以从以下两个方面进行完善:

  1. 数据:更换其他数据集,获取更充足的数据
  2. 对神经网络的结构进行调整,使用其他类型的神经网络,调整神经网络的参数
上一篇:由RNN理解LSTM模型


下一篇:训练LSTM模型进行情感分类在IMDB数据集上,使用Keras API(Trains an LSTM model on the IMDB sentiment classification)