购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 股票价格的预测方法

Step 1: 选取2012年7月17日至2013年5月16日的200组上证指数作为原始数据(数据来源于通达信金融终端),见表2-1,并进行显示,各种指标随时间(注:时刻1表示2012年7月17日,时刻200表示2013年5月16日)变化的情况如图2-2所示,代码如下。

图2-2 各种指标随时间的变化情况

Step 2: 利用主成分分析方法,对开盘x 1 、收盘x 2 、涨跌额x 3 、涨跌幅x 4 、最低x 5 、最高x 6 、成交量x 7 、成交金额x 8 进行主成分分析,得到前两个主成分y 1 ,y 2 的能量超过总能量的85%,故将y 1 ,y 2 作为BP神经网络的输入。主成分分析代码如下。

注意:MATLAB提供了princomp函数进行主成分分析,其调用格式为:

① [COEFF,SCORE] = princomp(X)

② [COEFF,SCORE,latent] = princomp(X)

③ [COEFF,SCORE,latent,tsquare] = princomp(X)

④ [...] = princomp(X,'econ')

其中,

X:样本集合,X的每一列代表一个属性,每一行代表一个样本,princomp函数会自动对X的均值归零,但没有对方差归一,读者需要自行对X的方差归一;

COEFF:表示由X协方差阵得到的特征向量矩阵,而且特征向量根据特征值由大到小的顺序进行排列。

SCORE:表示主成分向量矩阵,而且主成分向量矩阵根据特征值由大到小的顺序进行排列;

latent:表示特征值矩阵,且特征值由大到小进行排列;

tsquare:表示每个样本的Hotelling's T 2 统计量,Hotelling's T 2 统计量是每个样本偏离数据中心距离的观测值;

'econ':表示主成分分析的特征值只返回正值,特征向量与主成分按相应的顺序返回。

对于本实例,利用MATLAB自带函数进行主成分分析的源代码如下。

Step 3: 将第t(t=1,…,150)天的y 1 、y 2 作为BP神经网络的输入,第t+1(t=1,…,150)天的涨跌幅x 4 作为BP神经网络的输出,训练神经网络。神经网络的训练过程如图2-3所示。训练完成后,神经网络的预测值与实际值之间的比较如图2-4所示,源代码如下。

图2-3 神经网络的训练过程

图2-4 训练后神经网络的输出与实际值的比较

Step 4: 用训练好的神经网络检验剩下的50组数据,预测值与实际值的比较如图2-5所示,源代码如下。

图2-5 训练后神经网络的输出与实际值的比较

从运行结果可以看出,主成分分析法将原来的8个指标简化了2个指标,因而大大地减少了网络的输入变量个数,网络结构也得到了简化,程序的运行时间显著缩短,预测误差反而更小。

基于主成分BP神经网络算法的股市预测首先对数据进行处理,消除了原始数据中信息的重合部分,这样并没有改变样本数据的结构,但减少了输入变量的个数,从而简化了网络结构,相应的网络学习速率也得到提高,预测的误差也相应降低,提高了预测的精度。

鉴于上述对比分析,说明用主成分分析BP神经网络来预测股市是可行的。除此之外,在利用BP神经网络预测股票时应注意以下几点。

1)对模型输入参数的选择必须认真考虑

由于神经网络的学习信息来源于样本参数,所以样本参数选取就直接影响了学习中信息量的多少和质量。参数选择越少,信息量就越少,就不能真实反映股票的规律;参数选择过多,各个参数之间的信息量就有重叠部分,并且参数过多也会使神经网络的结构过大,训练速度就会降低,甚至导致网络不收敛。根据这种情况,本文的方法就解决了这个难题,即利用了尽可能多的预测指标,又去除了各指标间的重复信息。

2)网络训练样本应随时间不断调整

股市每个预测指标数据都在随着时间的变化而变化,所以网络系统也要随着时间而改变,否则就达不到理想的预测效果。

3)了解中国股市的特点

中国股市与世界其他各国的股市很不相同,它是个高速发展又重病缠身的病态股市。中国的股市价格往往受到当时政治、经济及社会因素的影响,尤其是在政策性或突发事件中振荡的比较厉害。因此,建立预测模型时,最好综合考虑这些因素的影响。

4)多方面考虑影响预测的因素

影响股票指数变动的因素很多,如国民总值、汇率,以及税率与总就业率等,这些因素都极为复杂,如果综合多方面考虑,股票的预测更为复杂。

5)神经网络参数的选取

本节中神经网络的参数(如神经网络隐层节点数目的确定)是通过多次尝试获得的。其实,从本质上来讲,神经网络就是拟合问题,传递函数就是基函数,基函数的数量、类型及参数的选择与实际数据的表现有很大的关系,因而很难找到一般性的规律;另一方面,从理论上来讲,神经网络越复杂,它对样本的适应性就越好,但它的泛化能力也就越差,甚至会出现“过拟合”的问题。因此,神经网络也不是越复杂越好。 CngsylaDcQCWOY7RLk16ZwsbopX4iV5QxM612VBd+S3aSlJEkBiBVRgfwIsd37Hq

点击中间区域
呼出菜单
上一章
目录
下一章
×