1. 引言
随着我国经济的不断发展,股票市场逐渐成为整个金融业,尤其是证券业不可缺少的一部分。根据东方财富数据网,截至2024年6月17日,A股账户数合计为2.3亿,经常交易的达到4000至5000万用户。由此可见,金融股票市场十分热门,其高回报率吸引了众多参与者,尽管股票市场参与门槛低、参与者众多,但是它直接与利益挂钩,股民的一次错误操作,可能就会导致倾家荡产。因此,为了更好地掌握金融股票的价格趋势,越来越多的学者参与到股票时序数据的分析中,不断将新的方法应用其中。股票价格的波动是众多投资者共同决策的结果,受到多种因素的影响,这些因素共同作用于股价的波动。因此,我们对股价波动规律的认识,对研究股价与相关因素的关系意义重大。评估不同因素对股价的影响以及其对股价的影响程度,常常是一项具有挑战性的任务。并且由于我国的证券市场还不够成熟完善,很多信息不对称现象普遍存在,使得股价在很大程度上受到了各种因素的影响。这些因素不仅对健康的经济发展体系产生直接影响,同时也会对股民的实际利益产生深远影响,从而使我国市场经济地位处于劣势地位。在这样的情况下,对股价进行正确的预测,既有理论上的意义,也有现实上的意义。因此,对于很多学者来说,合理准确地预测股市股价变化趋势,就成为他们研究和探索的主要方向。在股票市场上,很多学者预测股价涨跌的方法复杂多样。起初最常见的有两种方法:技术分析法与基本面法,运用金融市场供求关系最基本的变化规律,对市场趋势进行分析,对未来趋势进行预测,探索构建一套金融市场分析方法,即技术分析法,基本面分析法是一种基于敏感因素的分析方法,通过研究证券市场价格波动的普遍规律,为投资者提供科学依据,以便做出明智的决策。这两种方法侧重于通过预测股价变动趋势来决定投资哪一类股票的价格和内在价值两个角度出发,但这两种方法要求分析员必须对经济有一个全面的认识,并且在投资理论上要有一个扎实的基础。随着计算机技术的不断发展,以及机器学习在各个领域的非凡成就,在股票的预测研究中,机器学习的各种模型也逐渐被各大学者所运用。机器学习算法是一种新的利用大数据和深度学习技术预测股价的方法。如果股票市场有完整的历史数据,为了实现股价预测,可以应用机器学习算法,对历史数据进行模拟,并对模型进行持续改进。机器学习算法的优点在于能够准确地找到影响股价变化的技术指标,并对存在潜力的股票进行有效筛选,从而在大数据环境下大规模实施。机器学习算法种类较多,在不同的设定参数、不同的市场上预测精度也有好坏之分,比较不同的机器学习算法,发现适用于我国股票市场的预测算法,为股价走势进行预测和分析打开新的思路,并对我国股票预测进行有益探索。
2. 文献综述
国外学者对资产价格预测的研究较早,到目前为止已经提出了许多成熟的理论,如较早的CAPM模型、以及Fama、French提出的三因子与五因子模型等[1]。后面由于统计学家发现时间序列有规律可寻,并且计算机处理数据的能力越来越强,所以对于资产价格的预测,逐渐分为以统计学、概率论为基础的传统机器学习模型以及后期发展的新型机器学习、深度学习。基于概率论、统计学的主要模型有AR模型、MA模型、ARMA模型、ARIMA模型、ARCH模型、GARCH模型等。Mat Yusoff & Abdullah (1999) [2]等利用吉隆坡证券交易所日股票市场指数建立了GARCH模型,并建立了GARCH模型的衍生模型,最终发现指数GARCH模型对吉隆坡证券交易所日股票市场指数拟合得最好且预测精度最高;Minjun Kim & Hiroki Sayama (2017) [3]通过建立标准普尔500指数基础公司的时间序列复杂网络,将其与相互联系的权重联系起来,从而建立一种预测标准普尔500指数未来走势的方法,研究表明将网络测量结果添加到ARIMA模型中可以提高模型的准确性。基于新型机器学习与深度学习,Cortes和Vapnik (1995) [4]提出SVM,其在解决小样本、非线性及高维模式识别中表现出许多独特的优势。Xiao Zhong & David Enke (2019) [5]利用DNN集合传统人工神经模型的方法,预测SPDRSP500ETF每日收益趋势的金融和经济特性达60种,模拟结果显示DNN分类过程指导的交易策略表现略优于其他测试方法。Shun Chen & Lei Ge (2019) [6]探讨了基于长短期记忆(LSTM)网络的股价运动预测机制,发现文章提出的模型对香港股市LSTM的预测表现有了显著的改善。无论哪种预测模型在预测股价时,都有一定的局限性,所以有学者提出混合使用组合模型,来提高预测的精准度。比如Young Kim & Chang Hyun Won (2018) [7]提出了一种新的混合长期短期记忆(LSTM)模型来预测股票价格的波动性,该模型将LSTM模型与各种广义自回归条件异方差(GARCH)类型的模型相结合。Tian (2017) [8]将ARIMA模型和SVR模型组合,提出ARIMA-SVR模型,Sachdev (2016) [9]等人将模糊理论和遗传算法组合出FGA模型等。
近年来,由于机器学习在预测领域取得比较不错的表现,国内越来越多的学者采取机器学习的各种算法应用在股价的预测研究中。吴立扬、周波(2009) [10]针对股价指数非线性变化特征,探讨了基于人工神经网络的股价指数预测模型,并通过MATLAB6.5编程实现,应用于沪深300指数预测,模拟结果显示,使用人工神经网络的方法在预测精度方面存在较小的误差和较高的误差。孙晨(2016) [11]等提出用布谷鸟算法优化神经网络(CS-BP)来预测股市的方法。吴玉霞(2016) [12]通过建立ARIMA模型对创业板市场股票价格变动的规律和趋势进行了预测。实证结果表明,该模型短期动态、静态预测效果较好,可以为投资者和企业在进行相关决策时提供有益参考。薛倩高(2017) [13]等等通过遗传算法优化权值阈值来替代BP神经网络中随机初始的权值阈值,以时间序列为基础确定神经网络中的输入和输出指标。以云南白药(000538)的股价为例进行了模拟实验,结果显示BP神经网络(GA-BP神经网络)基于遗传算法优化后的预测表现更为优异。基于LSTM-Adaboost混合网络模型的宁昱博(2019) [14]等采用Adaboost集成学习,对所选股市历史数据进行平滑处理,训练最优参数,得到最优预测模型,最终生成预测结果。研究结果显示,使用LSTM-Adaboost模型的预测命中率提高了7个百分点,从而提高了股票价格预测的准确度。林国超(2020) [15]等透过两种不同组合模型,以比亚迪(SZ002594) 2019年6月24日至2020年4月28日期间之股价为研究样本训练样本及预测股价变动。研究结果显示,基于BP-GM (1, 1)模型的预测具有更高的精确性,可以更好地参考动态分析股价。刘帅(2021) [16]等选取金融市场股票历史收盘价数据,通过建立ARIMA模型进行测试和预测,得出短期内股价预测值与实际值误差最大不超过0.04的Python作为实现工具。曹雪芳(2022) [17]提出了“分解–预测–加权”模型整合了自适应噪声(CEEMDAN)、基于遗传算法优化的BP神经网络(GABP)、广义回归神经网络(GRNN)、小波神经网络(WNN)和多目标灰狼优化算法(MOGWO)的完整集合经验分解模型。王文姣等(2023) [18]基于GRA-PCA-LSTM构建的变权组合模型,实验结果显示:LSTM模型比传统机器学习模型预测效果更好。
本文在他人研究的以及自身所掌握的机器学习算法的基础上考虑到股票价格序列可以看作是含有白噪声的时间序列,因而通过建立ARIMA模型对股价的变化做出预测;并且考虑到股价受多种因素影响,并且股价是既非线性、又非平稳的时间序列,仅仅依赖于传统的时间序列分析趋势,存在很大的局限性。而深度学习方法在处理这类数据时具有较强能力,可以更好地拟合复杂的非线性函数,训练出泛化能力更好的模型。因此,使用深度学习方法建立的股价预测模型可以为投资者提供更多的股价信息,对于股票投资具有重要参考意义。所以本文又基于深度学习在股价预测中的相关理论和应用实践建立LSTM神经网络模型,实现股价预测。本研究可能的贡献主要为以下三点:一、利用计算机领域的机器学习方法对经济领域的资产价格进行预测和分析,有效地避免了传统实证计量模型中内生性和相关性带来的有效性问题。同时,利用大量的宏观经济原始数据,包括长期数据和多特征维度数据,大量的时间序列数据为机器学习方法的学习和预测提供了良好的训练和测试集,提高了预测精度,达到了预测的显著性。二、有许多机器学习算法,不同的机器学习方法对预测的适用性不同。本研究的主要目的和意义是比较不同算法在同一场景下的预测性能,为股价预测提供指导。三、股票价格的预测对于制定精确的定价和决策具有重要作用,不仅可降低投资者的投资风险,调整自身的投资结构,而且对于我国证券市场的健康持续发展具有重要的现实意义。对于预测股票价格的方法,始终要回归现实,接受实践的检验,本文的实证部分表明了本文所选取的模型具有一定的预测准确性,在一定程度上能够为广大投资者以及监管者提供决策的依据。
3. 模型的理论基础
ARIMA时间序列模型
1、ARIMA模型理论介绍
在上世纪70年代,统计学家Jenkins和Box合作提出了ARIMA模型,也称为自回归移动平均模型。作为一种基于统计原理的非线性随机过程数学模型,ARIMA模型主要用于短期预测时间序列变量。虽然单个时间序列值不可测,但整体序列呈现规律性,可以通过ARIMA模型进行数学表达,从而实现对时间序列值的短期预测。ARIMA模型包含AR(p)模型、MA(q)模型和ARIMA(p,d,q)模型三种。ARIMA模型通常需要对不平稳的时间序列进行多种处理以达到平稳化的目的,其中差分技术可将非平稳序列转化为平稳序列,尤其适用于存在短期趋势平稳的情况。
2、ARIMA模型建模步骤
ARIMA模型的建模过程包括四步:第一,对原始序列进行平稳性检验,如果不平稳,一般需要对原序列进行差分得到平稳的时间序列数据;第二,确定模型并利用BIC准则确定阶数;第三,再次利用最小乘法估计模型参数,验证其合理性;第四,通过诊断分析后,利用生成的模型预测数据,并将实际数据与之对照,验证其准确性,如果参数不能精确确定,那么就需要重新构建全新的模型。
3、长短期记忆神经网络
由于神经网络可以更好地拟合类似股票价格的非线性时间序列数据,所以1986年由Rumelhart和McClelland为首的科学家提出BP神经网络,BP神经网络是一种多层前馈型神经网络,按照误差反向传播算法进行训练。BP神经网络的结构特点是各层神经元与下一层神经元之间完全互连,但各神经元之间并不存在同一层层的连接,各隐藏层之间的结果相互独立,互不影响,因此各隐藏层在处理时序序列时无法很好地利用以往的隐藏层信息。于是RNN就产生了,它的神经网络结构图显示为图1。
Figure 1. Structural diagram of the RNN neural network
图1. RNN神经网络的结构图
其中xt−1、xt以及xt+1是神经网络t − 1时刻、t时刻以及t+1时刻的输入,st−1、st以及st+1是t − 1时刻、t时刻以及t + 1时刻的中间结果,ot−1、ot以及ot+1是t − 1时刻、t时刻以及t + 1时刻的最后输出结果,W、U、V是待训练参数。t时刻的输出结果ot为:
(1)
其中st的计算为:
(2)
模型使用的激活函数是Sigmoid函数,如图2所示,当输入值达到一定程度时,输出基本上变化不大,就会产生误差梯度变小的输出梯度变化,反向传播的精髓在于不断地修正拟合函数,通过不断地
Figure 2. Sigmoid function image
图2. Sigmoid函数图像
缩小误差来更新权值,随着时间的推移,梯度不断下降和减小,有些层次在接近0时就会停止学习,这些层次通常较早,由于这几层不学习,RNN会遗忘更早层的信息,而RNN由于越来越复杂的计算难度而产生梯度爆发问题,因此RNN的预判能力提升空间很大。
Hochreiter和Schmidhuber提出长短期记忆神经网络结构(LSTM) [19],以改善RNN的不足。LSTM是针对RNN存在的梯度爆发等问题进行一定程度的解决,使时间序列预测更加精确的特殊的RNN。LSTM的核心在于包括遗忘门、输入门和输出门在内的细胞状态和相当于神经网络“记忆”的“门”结构,遗忘门控制前一步记忆单元的保留程度,是通过向Sigmoid函数传递前一个隐藏状态的信息和当前输入的信息,同时进行数值的计算。输入门用来控制新的候选细胞态的保留程度。输入门的作用是取决于当前的细胞态[20]在多大程度上控制当前的输出结果。LSTM神经网络的神经元结构如图3所示,其中ft为t时刻的遗忘门,it为t时刻的输入门,ot为t时刻的输出门,ct为t时刻的细胞态(长期记忆),ht为t时刻的记忆体(短期记忆),
为t时刻的候选态,
表示Sigmoid函数。
Figure 3. Neuronal structure diagram of the LSTM neural network
图3. LSTM神经网络的神经元结构图
LSTM在t时刻的输出ht为:
(3)
其中:
(4)
(5)
(6)
(7)
(8)
上列式子中W,U,b分别是权重矩阵和偏置向量,需要训练。
4. 实证分析
4.1. 数据来源
数据来源于tushare数据接口,利用python工具在tushare上爬取中信证券(600030)的交易数据,数据选取时段为2022年3月24日至2023年3月24日最近一年的交易数据,主要包括:开盘价格、收盘价格、最高价、最低价格、成交量等,但是本文只采取了开盘价进行实证研究,交易数据前行如表1所示:
Table 1. Trading data of Citic Securities
表1. 中信证券交易数据
trade_date |
ts_code |
open |
high |
low |
close |
pre_close |
change |
pct_chg |
2023-03-24 |
600030 SH |
20.46 |
20.59 |
20.37 |
20.52 |
20.49 |
0.03 |
0.1464 |
2023-03-23 |
600030 SH |
20.16 |
20.50 |
20.13 |
20.49 |
20.30 |
0.19 |
0.9360 |
2023-03-22 |
600030 SH |
20.30 |
20.38 |
20.17 |
20.30 |
20.21 |
0.09 |
0.4453 |
2023-03-21 |
600030 SH |
20.13 |
20.35 |
20.05 |
20.21 |
20..05 |
0.16 |
0.7980 |
2023-03-20 |
600030 SH |
20.16 |
20.42 |
20.01 |
20.05 |
20.16 |
−0.11 |
−0.5456 |
4.2. ARIMA模型的建立与分析
1、ADF检验与数据平稳化处理
利用python做出中信证券(600030)开盘价的趋势图如图4所示,横坐标为日期,纵坐标为中信证券的开盘价格,可以看出该样本原序列具有一定趋势性且初步判断为非平稳。由表2中的ADF检验结果看出,P值 = 0.287 > 0.05,所以不能拒绝原假设,即中信证券(600030)的开盘价序列是非平稳的。对于开盘价非平稳,本文采取差分,由差分后的图5,横坐标为日期,纵坐标为中信证券相邻两天开盘价格的差值,可以初步看出股票开盘价的随机趋势较为平稳。由表3一阶差分ADF检验看出P = 0.000 < 0.05,因此拒绝原假设,说明该开盘价序列经一阶差分后是平稳的。
Figure 4. Opening price trend chart
图4. 开盘价趋势图
Table 2. ADF test results table
表2. ADF检验结果表
t统计量 |
P值 |
Lags |
−2.000 |
0.287 |
1 |
Figure 5. First-order differential time sequence diagram
图5. 一阶差分时序图
Table 3. First-order differential ADF test results table
表3. 一阶差分ADF检验结果表
t统计量 |
p值 |
Lags |
−17.643 |
0.000 |
0 |
2、模型定阶
一阶差分后,数据序列变为平稳,所以初步认为模型为d = 1。接着通过观察ACF图与PACF图来确定模型的p、q值,即观察图6一阶差分自相关图与图7一阶差分偏自相关图,图6、图7横坐标为滞后期数,从图6、图7可以初步确定p = 1、q = 1,即模型为ARIMA(1,1,1),为保证模型的最优。仅仅用肉眼观察不足以判断ARIMA模型的最优p、q值为1、1,还需要运用BCI准则来进一步判断,即找出最小的BCI值。传统方法是输入不同的p、q值不断的尝试,本文运用Python,输入代码,找出了BCI值最小的p、q值为2、2。为了验证其真实性,本文也采用传统方法,输入ARIMA (1, 1)、ARIMA (2, 2)、ARIMA (1, 2)、ARIMA (2, 1)、ARIMA (3, 2)、ARIMA (3, 1)、ARIMA (1, 3)、ARIMA (3, 3)来计算其BCI值,结果如表4所示,最终从表4看出模型ARIMA (2, 1, 2)的BCI值最小。所以最终确定模型为ARIMA (2, 1, 2)。
3、模型检验
确定完模型的参数后,需要对模型进行检验,首先要对模型的残差进行检验,检验其是否符合正态分布,本文采取QQ图对其进行检验,检验结果如图8所示,观察QQ图可以发现,大多数数据点都近似在直线附近,即残差项符合正态分布的特征。其次本文进行Ljung-Box检验,得出残差项对应的p值均大于0.05,说明残差项属于白噪声序列,残差项中的有用信息已被提取完,模型基本完善。
Figure 6. First-order differential ADF test results table
图6. 一阶差分自相关图
Figure 7. First-order difference partial correlation diagram
图7. 一阶差分偏相关图
Table 4. BCI values under the different ARIMA models
表4. 不同ARIMA模型下的BCI值
|
ARIMA (1, 1) |
ARIMA (2, 2) |
ARIMA (1, 2) |
ARIMA (2, 1) |
ARIMA (3, 2) |
ARIMA (3, 1) |
ARIMA (1, 3) |
ARIMA (3, 3) |
BCI值 |
−254.64 |
−258.99 |
−243.11 |
−245.65 |
−243.24 |
−233.63 |
−234.24 |
−231.35 |
4、模型预测
根据前文的ARIMA (2, 1, 2)模型给出3天的股票预测值结果如表5所示,其预测值与真实值相差不大,最大误差为0.0437855,说明其短期预测效果可以作为投资者作为参考,本文为了验证其长期预测效果,将预测天数扩大到一个月,但效果并不是很理想,不过多展示。
Figure 8. QQ Fig
图8. QQ图
Table 5. Model prediction results
表5. 模型预测结果
日期 |
预测值 |
真实值 |
误差 |
2023/3/27 |
19.986214587 |
20.03 |
0.0437855 |
2023/3/28 |
19.979194796 |
19.95 |
−0.0291947 |
2023/3/29 |
19.975233955 |
19.99 |
0.0147661 |
4.3. LSTM神经模型的建立
1、数据标准化
为了消除计算结果受到的量纲指标的影响,本文在研究过程中,采用了0~1均值规范化的方式来对数据进行标准化处理。标准化函数如(10)所示:
(10)
2、损失函数选择
本文研究选用均方误差(MSE)当作损失函数,MSE计算公式如(11):
(11)
3、模型构建
对收盘价(Close)进行股价的预测,用前七天的数据预测第八天,隐藏层维度为3,网络层数为1,输入层维度为1,输出层维度为1。经过实验,循环训练次数为20、30、40次时,损失函数的值没什么差别,考虑机器性能选择循环训练次数(epoch)为50次。将每64个样本数据打包成一个表进行训练,即batchsize为64。将学习率设置为0.05。对于模型优化器的选择,采用Adam算法,采用随机分散的方式训练集合数据,并选择MSE指标作为模型的损失函数。
4、模型预测
对上述模型进行训练,利用测试集进行验证,得到损失函数MES为0.33125543,并且利用测试集代入模型得到的预测数据和原始真实数据进行可视化,如图9所示,图9横坐标为选取的数据日期的排序,红色的是预测值,蓝色的是真实值,可以看出除了某几个极值点正确率较高。
Figure 9. Model prediction results
图9. 拟合效果图
5. 结论与展望
通过分析,主要采取了两种方法对股价进行预测,分别是时间序列ARIMA模型以及LSTM神经网络模型。详细介绍了两种方法的基本原理,并运用中信证券(600030)一年的交易数据进行建模并对其股票价格进行了预测研究。实证表明ARIMA模型三天预测价格与真实价格最大误差为0.0437855,真实值与预测值非常接近;LSTM模型损失函数MES为0.33125543,并且预测值除了某几个极值点外正确率较高。这表明ARIMA模型短期预测效果较好,LSTM模型更能拟合所有的股票价格,即说明无论是ARIMA模型还是LSTM模型都能够为股票投资者提供帮助。
股票价格的预测对于制定精确的定价和决策具有重要作用,不仅可降低投资者的投资风险,调整自身的投资结构,而且对于我国证券市场的健康持续发展具有重要的现实意义。对于预测股票价格的方法,始终要回归现实,接受实践的检验,本文的实证部分表明了本文所选取的模型具有一定的预测准确性,在一定程度上能够为广大投资者以及监管者提供决策的依据。本文利用大量的时间序列数据为机器学习方法的学习和预测提供了良好的训练和测试集,提高了预测精度,达到了预测的显著性。不同的机器学习方法对预测的适用性不同,本文比较不同算法在同一场景下的预测性能,为股价预测提供指导。