第 2O卷 第 9期 电 脑 开 发 与 应 用
文章 编号 :1003-5850(2007)09—0065—02 。
人工神经网络在股票价格预测中的应用
An Application of Share Price Forecasts with ANN(Artificial Neural Networks)
施 航 马琳 达
(贵州大学电气工程学院 贵州 贵阳 550003)
【摘 要】股票价格的走势短期随机性强,但从长期上来看,具有一定的规律性。人工神经网络可以看成是一个
具有 自学习功能的 “黑箱”,在处理无法精确建模的问题上具有很大优势。采用了MATLAB中的人工神经网络
工具箱,对某股票的价格进珩建模,并且较准确的预测其近期走势。
【关键词】人工神经网络,MATLAB,股票价格预测
中图分类号 :F224.9 文献标识码 :B
ABSTRACT Short—term randomness of the share price trend is strong,but at long—term ,it have certain regularity.The ANN
could be considered as a"black box”which has functional of self study.It have large advantage about the problem having no way
tO build a model accurately.This paper use the ANN tool box of the MATLAB tO building a model of a stock price.finally,it can
accurate forecast it’S the near future comparatively.
KEYW oRDS ANN,MATLAB,share price forecasts
多年来,现代投资理论以大量精密的数学手段反
复检测了股票价格波动的特点,股票价格在个别实验
种呈现出不确定的随机性特征,而在大量重复实验中
又具有统计规律性。其实,股票几个运动是随机性与规
律性的辩证同一,高度随机并不是意味着杂乱元章的
运动,而是隐含着一定规律性、周期性。一般来说,股票
价格运动从局部和短期而言表现为较强的随机特征,
而从全局和长期而言表现为一定的规律性。这个规律
正是人工神经网络所擅长处理的。
1 人工神经网络及其在 MATLAB中工具箱
的介绍
人工神经网络容易处理不完整的、模糊不确定货
规律性不明显的数据。它的本身是一个“黑箱”,只要把
数据输入到一个已经训练好的人工神经网络的输入
端 ,就可以从输 出端直接得倒预期 的结果 。通过向环境
学习获取知识并改进自身性能是人工神经网络的一个
重要特点,在一般情况下,性能的改善是按某种预定的
对象通过调节自身参数随时间达到的。学习的目的是
通过 向有限样本 的学习找到隐含在样本背后 的规律 。
因此人工神经网络适用于解决那些因为难以建立有效
的形式化模型而不存在直接求解算法的问题。
MATLAB提供的人工神经网络工具箱是一个十
分方便的解决该方面问题的工具。它是以人工神经网
络理论为基础,用 MATLAB语言构造出了该理论所
设计的公式运算、矩阵擦破作何方程求解等大部分子
程序,以用于人工神经网络设计和训练。用户只要根据
自己的需要调用相关程序,免除了自己编写复杂庞大
的算法程序的困扰。
2 预测方法简介
本文选用宝钢股份(600019)作为对象,对其价格
走势进行模拟预测。由于人工神经网络所生成的预测
器,是一个基于历史经验的预测器,而近一年多来,股
指屡创新高,突破历史价格甚多,因此对近期走势预测
误差较大。本文暂时采用未创新高前的几年数据进行
分析。近期股指若能稳定在一定范围一段时间,亦可以
用此方法对股票价格进行走势分析。本方法将当日的
开盘价,开盘价与昨日的变化量,当日成交量作为输入
数据,将 5日后的开盘价作为输出数据,也就是所要预
测的量。
首先要做的是采集历史数据,在如今发达的网络
条件下,很容易的就能从各股票网站下载一只股票的
历年数据。然后将这些数据分为两部分,一部分作为样
本用来训练人工神经网络,另一部分作为核对数据用
来作为预测时的输入及输出时的比对。使用 EXCEL
* 2007—02—10收到 ,2007—07—18改 回
** 施 航 ,男,1982年生,硕士研究生,研究方向:工业检测与控制。
维普资讯
人工神经网络在股票价格预测中的应用
等工具,将数据排列成 M*4的表格,4列分别为,某
El的开盘价 ,开盘价与昨 El的变化量,El成交量 ,5 El
后开盘价,M 行为采集数据的个数。再需要做的就是
将其导出成矩阵 ,并且输入到 MATLAB的工作 区。样
本矩阵称作 a,用来核对数据的矩阵称作 b。
在 MATLAB中键入 ANFISEDIT命令,打开人
工神经网络图形界面工具。
图 1 人工神经 网络工具界 面
在 Load data区域选择 Training和 work space,
然后载入样本矩阵 a。
在 Generate FIS区域选择隶属 函数 的数量 和种
类 。点击 Generate按钮 ,弹出一个对话框 ,参数将在这
个对话框中设置。在Number of MFs中输入 3(3条模
糊隶属函数 ,如果是多输入系统可以用向量方式输入 ,
例 如_4 胡).在 MF Type中选 择一个 隶属 函数 的形
状,例如 gaussmf高斯型。
在 Train FIS区域选择算法,误差阈值,最大训练
次数。可以选择采用 hybrid混合法或者 backpropa反
向传播法训练。误差阈值是用来作为停止训练的判断
标准。当实际误差小于误差公差的话,就认为是已经达
到训练 目的病区停止进行训练 。如果对于训练误差的
变化还不清除的话 ,这项最好设 为 0.Epochs项是设
定最大训练次数的,当训练次数到达所设定的值 ,无论
这是是否达到误差公差的要求都回停止训练。本文采
取 了 5 000次训练。
设置完成之后 ,开始训练人工神经网络预测器。
曲线表示历史价格,圆点表示预测器运算后的输
出。训练样本平均误差是 0.17864(元 ),可以说是基本
拟合实际的,这也说明了股票价格是有规律可寻,而不
是完全杂乱的随机 。下面我们载入 Checking data即矩
阵 b(也就是我们需要预测的那段时期的股票开盘价,
开盘价变化率,成交量与 5日后开盘价)并在 TEST
图 2 训练拟合 曲线
FIS区域内选择 Checking data。点击 Test Now后便
可 以观察到预测 的结果 与真实的历史数据 的误差,从
界 面的左下方的信息显示 区,我们可以读出训练后系
统 的结果与这些数据的平均误差为 0.212 47(元)。作
为预测 5 El后的价格 ,该误差是完全可以被接受的。
图 3 核对数据与预测结果
3 总 结
当股指在所采集的样本范围内波动,并且没有政
策或者重大事件的干扰的条件下,该预测器的预测效
果是比较理想的,可以较为准确的指导人们进行股票
投资。相信采集近期股票在一个相对平稳的范围内波
动的一批数据之后 ,可以有效缩小预测误差,并待成熟
后运用到实践中。
参 考 文 献
Eli 董长虹.Matlab神经网络与应用FM].北京:国防工业
出版社,2005.
E2] 吴晓莉,林哲辉.MATLAB辅助模糊系统设计FM].西
安:西安电子科技大学出版社,2002.
E3] 周开利.神经网络模型及其 MATLAB仿真程序设计
[M3.北京:清华大学出版社 ,2005.
维普资讯