基于神经网络的股票价格走势预测及其MATLAB实现——论文(6)

2018-12-04 21:31

农业银行日开盘价成交量对收盘价的预测图2.82.752.72.65股价/元 原始数据拟合数据预测数据2.62.552.52.452.4 050100150时间/天200250300

可以看出拟合结果很好,预测结果整体较好,没有出现个别点误差很大的情况。

4.3 多日收盘价,成交量对单日收盘价预测

十个输入,一个输出,三个隐层神经元(通过实验比较得到),隐层激活函数为tansig函数,输出层激活函数为线性激活函数purelin。

26

农业银行五日开盘价成交量对收盘价的预测图2.82.752.72.65股价/元 原始数据拟合数据预测数据2.62.552.52.452.4 050100150时间/天200250300

上图可以看出,拟合结果较好,但是预测结果一般,没有前两种情况精确,原因可能是样本规模较小,而输入维数较高,这样对每个输入变量相对输出的刻画会变得不精确。但是如果样本数据足够大的话,这种模型要比前面两种更好。

4.4 多日收盘价,成交量对多日收盘价预测

十个输入,三个输出,三个隐层神经元(通过实验比较得到),隐层激活函数为tansig函数,输出层激活函数为线性激活函数purelin。

此时每日收盘价都有除了前两个样本和最后两个样本都三个数据,我们将这三个数据做一个加权求和,以这个值表示股票的收盘价。

27

农业银行五日开盘价成交量对后三日收盘价的预测图2.82.752.72.65股价/元 原始数据拟合数据预测数据2.62.552.52.452.4 050100150时间/天200250300

从上图可以看出拟合结果比较好,但是预测结果一般,原因是上图你显示了被预测的后一天的股价,该股价是一个加权值,可能由于时间跨度的原因,使得后两天预测结果不太准确,导致该加权值误差比只预测一天的误差要大。但是该方法可以在时间上多预测几天的股价值。

附录(股票数据和程序代码)

部分程序(运行时要调整代码中的某些参数,才能得到以上结果) clc

clear all

%数据导入

x=load('E:\\研究\\神经网络股票预测项目\\SH601288.txt'); I=[x(:,5),x(:,6)]; %单日收盘价对单日收盘价的预测 P0=I(1:(end-1),1); T0=I(2:end,1);

%单日收盘价成交量对单日收盘价预测 P0=I(1:(end-1),:); T0=I(2:end,1);

%五日收盘价成交量对单日收盘价预测

P0=[I(1:(end-5),:),I(2:(end-4),:),I(3:(end-3),:),I(4:(end-2),:),I(5:(end-1),:)]; T0=I(6:end,1);

%五日收盘价成交量对三日收盘价预测

28

P0=[I(1:(end-7),:),I(2:(end-6),:),I(3:(end-5),:),I(4:(end-4),:),I(5:(end-3),:)];

T0=[I(6:(end-2),1),I(7:(end-1),1),I(8:end,1)];

%数据归一化

[P,minP,maxP]=premnmx(P0'); P=P';

[T,minT,maxT]=premnmx(T0'); T=T';

%训练数据测试数据分离 [m,n]=size(P);

p1=P(1:fix(3*m/4),:)'; %前2/3数据训练网络,后1/3数据验证 p2=P((fix(3*m/4)+1):end,:)'; T1=T(1:fix(3*m/4),:)';

T2=T((fix(3*m/4)+1):end,:)'; t1=1:fix(3*m/4); t2=(fix(3*m/4)+1):m; t=1:m;

%建立网络训练网络

net=newff(minmax(p1),[5,1],{'tansig','purelin'},'trainlm');%初始化网络

net.trainparam.show=50; net.trainparam.lr=0.1; net.trainparam.mc=0.9;

net.trainparam.epochs=1000; net.trainparam.goal=0.001; net=train(net,p1,T1); %网络仿真

y=sim(net,[p1,p2]); %反归一化

Y=postmnmx(y,minT,maxT); Y=Y';

%画图

plot(t,T0,t1,Y(1:fix(3*m/4)),'*',t2,Y((fix(3*m/4+1)):m)) legend('原始数据','拟合数据','预测数据') title('农业银行日开盘价对收盘价的预测图') xlabel('时间/天'); ylabel('股价/元') %拟合平均平方根相对误差

(sum((T0(1:fix(3*m/4))-Y(1:fix(3*m/4))).^2))^0.5/fix(3*m/4);

29

%预测平均平方根相对误差

(sum((T0((fix(3*m/4+1)):m)-Y((fix(3*m/4+1)):m)).^2))^0.5/(m-fix(3*m/4));

%加权求和

YY(1)=Y(1,1);

YY(2)=2/3*Y(2,1)+1/3*Y(1,2); for i=3:m

YY(i)=1/2*Y(i,1)+1/3*Y(i-1,2)+1/6*Y(i-2,3); end

YY(m+1)=2/3*Y(m,2)+1/3*Y(m-1,3); YY(m+2)=Y(m,3);

30


基于神经网络的股票价格走势预测及其MATLAB实现——论文(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:绩效管理论文开题报告及文献综述

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: