我想用BP神经网络预测股价,输入变量是连续五个交易日的收盘价,开盘价,最高价,最低价和成交量,成交额,一共是100个交易日。训练目标是滞后五天的一百个交易日的收盘价,想用滑动窗口来实现。
目前已经得到训练、测试样本的三维矩阵,但是BP神经网络的输入好像只能是2维,想请教各位大神如何解决?
不知道能否将五日数据训练后再100次循环?
clc;
clear;
%%训练数据
a= xlsread('sn.xlsx','B2:B106');
b= xlsread('sn.xlsx','C2:C106');
c= xlsread('sn.xlsx','D2:D106');
d= xlsread('sn.xlsx','E2:E106');
e= xlsread('sn.xlsx','F2:F106');
f= xlsread('sn.xlsx','G2:G106');
P=[a' ; b' ; c' ; d' ; e';f'];
format short g;
[dd1,PS] = mapminmax(P);
n1=zeros(6,5,100);
p=1;
for k=1:1:100
for i=1:1:6
for j=p:5+p-1
n1(i,j-p+1,k)=dd1(i,j);
end
end
p=p+1;
x1(k,1)=dd1(6,k+5)
end
n1=permute(n1,[2 1 3]);
%%测试数据
a1=xlsread('sn.xlsx','B107:B152');
b1= xlsread('sn.xlsx','C107:C152');
c1= xlsread('sn.xlsx','D107:D152');
d1= xlsread('sn.xlsx','E107:E152');
e1= xlsread('sn.xlsx','F107:F152');
f1= xlsread('sn.xlsx','G107:G152');
P1=[a1' ; b1' ; c1' ; d1' ; e1';f1'];
format short g;
[dd2,PS] = mapminmax(P1);
n2=zeros(6,5,40);
p=1;
for k=1:1:40
for i=1:1:6
for j=p:5+p-1
n2(i,j-p+1,k)=dd2(i,j);
end
end
p=p+1;
x2(k,1)=dd2(6,k+5)
end
n2=permute(n2,[2 1 3]);
xn_train=n1;%训练样本,每一列为一个样本
dn_train=x1';%测试目标,行向量
xn_test=n2;%训练样本,每一列为一个样本
dn_test=x2';%测试目标,行向量