股票預測之BP神經網絡

                                     股票預測之BP神經網絡

      股票預測的算法有很多,可以用數學的卡爾曼濾波,粒子濾波、馬爾科夫、神經網絡......
這其中涉及到很多因素,比如說,你用的特徵,你選擇的範圍(針對個股還是多股、歷史時間範圍、分析週期等等)。小編自身對股票瞭解不深,僅僅是從數據的角度分析。(有點想的太簡單了O(∩_∩)O)
先從簡單的入手:簡單的算法:BP神經網絡; 簡單的範圍:個股、每日線、5個特徵:開盤、最高、最低、收盤、漲幅。個股數據量大概有2000個。
      當然,這個過程和普通的BP沒什麼兩樣,也是輸入數據,訓練、測試這麼一個過程,主要是看BP是否真的適合用來做預測。雖然有點簡單,不過還是簡單的描述一下吧。
      數據從哪裏來?這裏我是用了同花順這個軟件,然後選一個股,按照 分析——>k線圖——>按F1——>進入歷史行情數據。點擊右鍵——>導出數據——>下一步......這樣就可以得到連續的歷史數據表。接下來就是讀出數據,進行訓練和預測了。
      首先,這裏選用其中的5個特徵:{開盤、最高、最低、收盤、漲幅}。這裏用前一天的這樣一個特徵向量來預測下一個交易日(時刻)的收盤。也就是說,輸入是這5維特徵,輸出是下一時刻的收盤。
       有了這些數據,有確定了輸入和輸出,那就直接創建BP來訓練。參數大多是默認的,隱層的轉移函數選擇sigmoid函數,其他參數可依據需要一步一步調整。這裏選擇前面1500個作爲訓練,後面的200個作爲測試樣本,訓練過程並不快,主要是梯度的閾值設的太低,迭代次數有點高、機器的性能也一般(⊙o⊙)…好了,是不是很期待測試結果(*^__^*) ……
      

      總體的預測和跟隨效果還行,但是局部分析起來還是有很多不足,容易劇烈跳動,總體普遍偏小,在這邊很關鍵的一點要指出,訓練的數據的覆蓋範圍要儘可能大,如果你的測試數據不再訓練的RANGE裏面,很可能跑偏,甚至是一條直線。哪怕是你用頭尾兩端數據來訓練,效果都比用一大段數據而沒有覆蓋後面或前面的數據來的好。在初次訓練時候,由於有些參數是隨機初始化的,又因爲BP容易陷入局部極小值,所以有可能會一下子就收斂,結果是一條直線%>_<%。好了,股票預測比較簡單的方法之BP就介紹到這裏了。對了,不放代碼是不是有點不厚道?_?。儘管代碼很簡單.....

 data=xlsread('路徑.xls');
PP=data';
PQ=[0; 0; 0; 0 ;0];
P=zeros(5,1500);    %輸入矩陣
T=zeros(1,1500);    %輸出
for i=1:1500            %輸入輸出賦值
    PQ=PP(:,i);
    P(:,i)=PQ;
    T(i)=PP(4,i+1);
end
%  創建一個新的前向神經網絡 
net_1=newff(minmax(P),[30,1],{'tansig','purelin'},'traingdm')

%  當前輸入層權值和閾值
inputWeights=net_1.IW{1,1};
inputbias=net_1.b{1};
%  當前網絡層權值和閾值
layerWeights=net_1.LW{1,1};
layerbias=net_1.b{1};

%  設置訓練參數
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.005;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

%  調用 TRAINGDM 算法訓練 BP 網絡
[net_1,tr]=train(net_1,P,T);

%  對 BP 網絡進行仿真
A = sim(net_1,P);
%  計算仿真誤差 
E = T - A;
MSE=mse(E)
%--------------------------測試數據-----------------------------%
x=InputA(1501:1700);  %測試數據
x=zeros(5,200);
for j=201:400
    x(:,(j-200))=PP(:,j);
end
YY=sim(net_1,x)         %用神經網絡測試
XX=[1:length(x)];
plot(XX,YY,'-O');          %畫出結果
hold on;
plot(XX,PP(4,1502:1701),'r-O'); %真實結果


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章