Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。
如何用matlab做基本的股票分析--贈20點
輸入層:28個輸入變數(看註解)
隱藏層:15個神經元處理的訊號的交互影響
輸出層:輸入3個變數(買.賣.持有)
註解:28個變數
1.當日RSI買訊
2.當日KD買訊
3.當日MACD買訊
4.當日MTM買訊
5.當日TAPI買訊
6.當日AR&BR買訊
7.當日W%R買訊
8.前一日RSI買訊
9.前一日KD買訊
10.前一日MACD買訊
11.前一日MTM買訊
12.前一日TAPI買訊
13.前一日AR&BR買訊
14.前一日W%R買訊
15.當日RSI賣訊
16.當日KD賣訊
17.當日MACD賣訊
18.當日MTM賣訊
19.當日TAPI賣訊
20.當日AR&BR賣訊
21.當日W%R賣訊
22.前一日RSI賣訊
23.前一日KD賣訊
24.前一日MACD賣訊
25.前一日MTM賣訊
26.前一日TAPI賣訊
27.前一日AR&BR前
28.前一日W%R賣訊
2007-05-13 15:28:41 補充
ps~這是期末專題報告 所以想請大家多多幫忙^^謝謝
1 個解答
- ?Lv 51 0 年前最佳解答
倒傳遞類神經,批次學習,準備好輸入的訓練資料為traindata.mat。
%--------------------
clear all;clc;format long;
a=28;%a is the no of input neuron of ANN
h1=15;%h1 is the no of hidden layer1 neurons of ANN
o=3;%o is the no of output layer neurons of ANN
learning_epoch=5000;
no_learning=50;
learning_rate=0.1;alpha=0.05;
%--------------------------------------------------------------
%read the training data
load traindata.mat
[m n]=size(M);
if (m < no_learning)
disp('error learning');
break;
end
%-------------------------
Wih=1-2*rand(a,h1);
Who=1-2*rand(h1,o);
Bh=1-2*rand(1,h1);
Bo=1-2*rand(1,o);
%--------------
lastdWho=zeros(h1,o);
lastdBo=zeros(1,o);
lastdWih=zeros(a,h1);
lastdBh=zeros(1,h1);
%open file for record
fmse=fopen('learning_mse.dat','w');
k=1;
lastmse=0;
count=0;count1=0;
%---------------------------------------------------------------
%ANN training
tic
while (k<= learning_epoch) %& (count<20) & (count1<10)%+++++++++++++++++++++++++++
%Training ANN
%-------------------
tempWih=zeros(a,h1);
tempBh=zeros(1,h1);
tempWho=zeros(h1,o);
tempBo=zeros(1,o);
2007-05-19 04:30:51 補充:
for no=1:no_learning%
%**************************
A(1:a)=M(no,1:a);
Target(1:o)=M(no,a+1:n);
%calculate
Hout=logsig(A*Wih+Bh);
Out=Hout*Who+Bo;
error=Target-Out;
s2=-2*1*error;
s1 = (1-Hout).*Hout.*(s2*Who');
2007-05-19 04:31:57 補充:
%Batch learning
tempWho=tempWho+Hout'*s2;
tempBo=tempBo+s2;
tempWih=tempWih+A'*s1;
tempBh=tempBh+s1;
%-----------------
end
2007-05-19 04:32:48 補充:
%-----------------
dWho=alpha*lastdWho+learning_rate*tempWho/no_learning;
dBo=alpha*lastdBo+learning_rate*tempBo/no_learning;
dWih=alpha*lastdWih+learning_rate*tempWih/no_learning;;
dBh=alpha*lastdBh+learning_rate*tempBh/no_learning;
2007-05-19 04:33:04 補充:
%--------------------------
%Update parameters-------------
Who=Who-dWho;
Bo=Bo-dBo;
Wih=Wih-dWih;
Bh=Bh-dBh;
2007-05-19 04:35:04 補充:
%calculaue learning MSE
sum_error=0;
for no=1:no_learning
A(1:a)=M(no,1:a);
Target(1:o)=M(no,(a+1):n);
Hout=logsig(A*Wih+Bh);
Out=Hout*Who+Bo;
error=Target-Out;
sum_error=sum_error+sum(error*error');
end
2007-05-19 04:35:12 補充:
MSE(k)=sum_error/o/no_learning;
lastdWho=dWho;
lastdBo=dBo;
lastdWih=dWih;
lastdBh=dBh;
lastmse=MSE(k)
fprintf(fmse,'%2.1f %8.5f \n',k,MSE(k));
k=k+1;
end
fclose(fmse);
toc
執行過程有問題請補充發問或來信。
參考資料: 自己