APP下载

BP神经网络在股票预测中的应用

2010-07-25王爱平陶嗣干王占凤

网络安全与数据管理 2010年6期
关键词:收盘价交叉股票

王爱平,陶嗣干,王占凤

(安徽大学 计算智能与信号处理教育部重点实验室,安徽 合肥230039)

股票是证券市场的重要组成部分,股票的发行和交易促进了市场经济的发展。而股票市场是一个高度复杂的非线性动态系统,其变化规律由于受经济、政治、公司经营状况和市场人气等多方面的影响,使股票价格走势呈现不规律性。为了能够预测其变化趋势,人们研究出了一些股票分析方法[1-2],如:技术分析法(移动平均法MA、成交量图法 VOL等)、基本面分析(宏观经济、国际政治、公司经营状况等)和心理分析(股票市场中的羊群效应)等。而这些方法大部分是线性模型,对股票短期走势预测效果不是很理想。而BP神经网络[3]能够把输入输出问题转化为非线性映射问题,即完成由n维输入空间到m维输出空间的非线性映射,能很好地解决非线性问题。本文利用时间序列对股票价格的原始数据进行预处理,然后利用BP神经网络对上证A股皖维高新近期股价涨跌走势进行了预测。

1 时间序列

对某一个或一组变量x(t)进行观察测量,将在一系列时刻 t1,t2,…,tn(t为自变量且 t1<t2<…<tn)所得到的离散数据组成的序列集合{x(t1),x(t2),…,x(tn)}称之为时间序列[4],记为 X={x(t1),x(t2),…,x(tn)}。一般时间序列由 4部分构成,即长期或趋势变化、循环变化、季节性变化和随机变化。本文研究时间序列短期趋势变化,来获取所需要的知识。 对于样本集 X={x(t1),x(t2),…,x(tn)},每一个训练样本x(ti)由一些重要的特征属性组成,令Y={y(t1),y(t2),…,y(tn)}为目标期望,即由特征属性所决定的决策属性值。例如在股票涨跌预测中,一只股票每天的开盘价、最高价、最低价和收盘价等特征属性影响次日股票的走势。由此可以按日时间序列来构造样本向量,但这种方式没有考虑到时间序列数据前后相互影响,割裂了时序特性。为了更好地反映时间序列数据之间的关系,将前N天的股票特征属性对当日股票的影响也考虑进来,从而可以得到N天时间序列,这时得到的样本中特征属性增加了许多,给BP网络训练增加了难度。由于股票的涨跌是依据昨日与今日收盘价的高低比较得到的,这时可以约去前N-1天的开盘价、最高价、最低价,得到前N-1天的收盘价和第N天开盘价、最高价、最低价和收盘价样本,从而使网络得到进一步简化。

2 BP算法

BP神经网络是人工神经网络的重要模型之一,也是目前应用最广泛的一种多层前馈神经网络,可以解决大多数神经网络面临的问题。BP算法[3,5]的思想是学习过程由信号的正向传播与误差的反向传播两个过程组成,若输出层的实际输出与目标期望不符,则转入误差的反向传播,调整各层神经元的权值,此过程一直进行到训练网络预先设定好的学习次数或小于网络输出的误差值。目前使用最多的是三层BP网络,包括输入层、隐层和输出层。设三层BP网络,输入向量为X=(x1,…,xi,… ,xn)T,隐 层 输 出 向 量 为 Y=(y1,… ,yj,… ,ym)T,输 出层输出向量为 O=(o1,o2,…,ok,…,ol)T,期望输出向量为d=(d1,d2,…,dk,…,dl)T,输入层到隐层之间的权值为V=(V1,V2, … ,Vj, … ,Vm), 隐 层 到 输 出 层 之 间 的 权 值 为W=(W1,W2,…,Wk,…,Wl)。

(1)正向传播过程中隐层的输出可表示为:

其中x0=-1是隐层神经元引入阈值而设定的。

输出层的输出可表示为:

其中y0=-1是输出层神经元引入阈值而设定的。

(2)反向传播过程中输出层的权值修改可表示为:

隐层的权值修改可表示为:

3 使用BP神经网络对股票进行预测

3.1 数据处理

文中皖维高新股票数据是从华林证券软件上证A股日线报表中整理而得,每个样本数据包括开盘价、最高价、最低价和收盘价4个特征属性以及第m日的收盘价和第(m+1)日的收盘价比较结果的样本,即目标期望值。

定义:若第m日的收盘价小于第(m+1)日的收盘价,令期望值为0,表示股价下跌;反之若第m日的收盘价大于第m+1日的收盘价,令期望值为1,表示股价上涨。部分样本信息如表1所示。

为了更好地反映时间序列数据内部之间的关联性,引入m日交叉时间序列。 样本集 X={x(t1),x(t2),…,x(tn)},其中 x(ti)为第 i个交易日样本数据,令 x(ti)=(vi1,vi2,vi3,vi4)i=1,2, …,n, 其中 vi1,vi2,vi3,vi4分别代表第 i天的开盘价、最高价、最低价和收盘价。于是可得m日交叉时间序列样本为:

表1 皖维高新股票部分训练样本和期望值

其中oi为第(m+1)日股价的期望值。

3.2 网络参数的确定

3.3 实验结果

以皖维高新为例,对该股票信息按照1日、3日和5日交叉时间序列进行数据整理(时间从2008年10月9日~2009年 1月 5日共 60天数据,2009年 1月 6日~2009年1月21日共12天数据),预测结果如表2所示。

表2 1日、3日和5日交叉时间序列预测结果

由表2可知,3日交叉时间序列样本,预测准确率最高,达到80%。而5日交叉时间序列样本预测准确率最低,只有50%。对于股票短期的走势可能受到国家政策因素(比如降息、经济振兴规划等),外围股票市场多方面的影响,5日交叉时间序列数据可能存在一定的噪声,使最终预测的结果偏低。比较3日交叉时间序列和1日时间序列预测的结果,发现3日预测的正确率远高于1日的正确率,从中可以看出,第(m+1)天的股价不仅受第m天股价的影响还受(m-1)天股价的影响,只是影响股价的程度不一样而已。由此可以看出时间序列数据之间存在相互依赖性,选择好时间周期对预测结果的准确率起到关键作用。

股票数据样本按交叉时间序列处理,更能体现数据之间的关联性,在处理非线性问题上,BP算法发挥了很大的优势。对于短期股票走势的预测,效果较好,具有一定的实用价值。但在实验中,也存在一些问题:(1)BP算法收敛速度慢,易形成局部极小而得不到全局最优,网络训练要经过几次或十几次才能达到期望输出,当然这也是BP网络自身的缺点,不易克服;(2)样本数据的选取,时间序列数据不能太短也不能太长,如果选取的时间序列数据小于股票变化的周期,预测的结果不能很好地表现股票价格的变化趋势;但是如果选取的时间序列数据远大于股票变化的周期,网络训练加重,而且数据中可能含有噪声,影响预测的准确度。所以,选择多长时间周期的股票数据,适合大部分股票的预测,是一个值得研讨的问题。

[1]张杨武.基于时间序列和神经网络相结合的股票预测研究[J].电脑知识与技术,2009,5(1):208-209.

[2]胡书晓.基于神经网络的股票K线特征图形预测研究[D].上海:同济大学学位论文,2008.

[3]韩力群.人工神经网络[M].北京:北京邮电大学出版社,2006.

[4]张善文,雷英杰,冯有前.MATLAB在时间序列分析中的应用[M].西安:西安电子科技大学出版社,2007.

[5]姚培福,许大丹.BP神经网络在股票预测中的应用研究[J].广东自动化与信息工程,2006(1):7-9.

猜你喜欢

收盘价交叉股票
“六法”巧解分式方程
股神榜
股神榜
股神榜
本周创出今年以来新高的股票
本周创出今年以来新高的股票
股神榜
连数
本周连续上涨3天以上的股票
近期连续涨、跌3天以上的股票