王愛平,陶嗣干,王占鳳
(安徽大學 計算智能與信號處理教育部重點實驗室,安徽 合肥230039)
股票是證券市場的重要組成部分,股票的發行和交易促進了市場經濟的發展。而股票市場是一個高度復雜的非線性動態系統,其變化規律由于受經濟、政治、公司經營狀況和市場人氣等多方面的影響,使股票價格走勢呈現不規律性。為了能夠預測其變化趨勢,人們研究出了一些股票分析方法[1-2],如:技術分析法(移動平均法MA、成交量圖法 VOL等)、基本面分析(宏觀經濟、國際政治、公司經營狀況等)和心理分析(股票市場中的羊群效應)等。而這些方法大部分是線性模型,對股票短期走勢預測效果不是很理想。而BP神經網絡[3]能夠把輸入輸出問題轉化為非線性映射問題,即完成由n維輸入空間到m維輸出空間的非線性映射,能很好地解決非線性問題。本文利用時間序列對股票價格的原始數據進行預處理,然后利用BP神經網絡對上證A股皖維高新近期股價漲跌走勢進行了預測。
對某一個或一組變量x(t)進行觀察測量,將在一系列時刻 t1,t2,…,tn(t為自變量且 t1<t2<…<tn)所得到的離散數據組成的序列集合{x(t1),x(t2),…,x(tn)}稱之為時間序列[4],記為 X={x(t1),x(t2),…,x(tn)}。一般時間序列由 4部分構成,即長期或趨勢變化、循環變化、季節性變化和隨機變化。本文研究時間序列短期趨勢變化,來獲取所需要的知識。 對于樣本集 X={x(t1),x(t2),…,x(tn)},每一個訓練樣本x(ti)由一些重要的特征屬性組成,令Y={y(t1),y(t2),…,y(tn)}為目標期望,即由特征屬性所決定的決策屬性值。例如在股票漲跌預測中,一只股票每天的開盤價、最高價、最低價和收盤價等特征屬性影響次日股票的走勢。由此可以按日時間序列來構造樣本向量,但這種方式沒有考慮到時間序列數據前后相互影響,割裂了時序特性。為了更好地反映時間序列數據之間的關系,將前N天的股票特征屬性對當日股票的影響也考慮進來,從而可以得到N天時間序列,這時得到的樣本中特征屬性增加了許多,給BP網絡訓練增加了難度。由于股票的漲跌是依據昨日與今日收盤價的高低比較得到的,這時可以約去前N-1天的開盤價、最高價、最低價,得到前N-1天的收盤價和第N天開盤價、最高價、最低價和收盤價樣本,從而使網絡得到進一步簡化。
BP神經網絡是人工神經網絡的重要模型之一,也是目前應用最廣泛的一種多層前饋神經網絡,可以解決大多數神經網絡面臨的問題。BP算法[3,5]的思想是學習過程由信號的正向傳播與誤差的反向傳播兩個過程組成,若輸出層的實際輸出與目標期望不符,則轉入誤差的反向傳播,調整各層神經元的權值,此過程一直進行到訓練網絡預先設定好的學習次數或小于網絡輸出的誤差值。目前使用最多的是三層BP網絡,包括輸入層、隱層和輸出層。設三層BP網絡,輸入向量為X=(x1,…,xi,… ,xn)T,隱 層 輸 出 向 量 為 Y=(y1,… ,yj,… ,ym)T,輸 出層輸出向量為 O=(o1,o2,…,ok,…,ol)T,期望輸出向量為d=(d1,d2,…,dk,…,dl)T,輸入層到隱層之間的權值為V=(V1,V2, … ,Vj, … ,Vm), 隱 層 到 輸 出 層 之 間 的 權 值 為W=(W1,W2,…,Wk,…,Wl)。
(1)正向傳播過程中隱層的輸出可表示為:

其中x0=-1是隱層神經元引入閾值而設定的。
輸出層的輸出可表示為:

其中y0=-1是輸出層神經元引入閾值而設定的。
(2)反向傳播過程中輸出層的權值修改可表示為:

隱層的權值修改可表示為:

文中皖維高新股票數據是從華林證券軟件上證A股日線報表中整理而得,每個樣本數據包括開盤價、最高價、最低價和收盤價4個特征屬性以及第m日的收盤價和第(m+1)日的收盤價比較結果的樣本,即目標期望值。
定義:若第m日的收盤價小于第(m+1)日的收盤價,令期望值為0,表示股價下跌;反之若第m日的收盤價大于第m+1日的收盤價,令期望值為1,表示股價上漲。部分樣本信息如表1所示。
為了更好地反映時間序列數據內部之間的關聯性,引入m日交叉時間序列。 樣本集 X={x(t1),x(t2),…,x(tn)},其中 x(ti)為第 i個交易日樣本數據,令 x(ti)=(vi1,vi2,vi3,vi4)i=1,2, …,n, 其中 vi1,vi2,vi3,vi4分別代表第 i天的開盤價、最高價、最低價和收盤價。于是可得m日交叉時間序列樣本為:

表1 皖維高新股票部分訓練樣本和期望值
其中oi為第(m+1)日股價的期望值。

以皖維高新為例,對該股票信息按照1日、3日和5日交叉時間序列進行數據整理(時間從2008年10月9日~2009年 1月 5日共 60天數據,2009年 1月 6日~2009年1月21日共12天數據),預測結果如表2所示。

表2 1日、3日和5日交叉時間序列預測結果
由表2可知,3日交叉時間序列樣本,預測準確率最高,達到80%。而5日交叉時間序列樣本預測準確率最低,只有50%。對于股票短期的走勢可能受到國家政策因素(比如降息、經濟振興規劃等),外圍股票市場多方面的影響,5日交叉時間序列數據可能存在一定的噪聲,使最終預測的結果偏低。比較3日交叉時間序列和1日時間序列預測的結果,發現3日預測的正確率遠高于1日的正確率,從中可以看出,第(m+1)天的股價不僅受第m天股價的影響還受(m-1)天股價的影響,只是影響股價的程度不一樣而已。由此可以看出時間序列數據之間存在相互依賴性,選擇好時間周期對預測結果的準確率起到關鍵作用。
股票數據樣本按交叉時間序列處理,更能體現數據之間的關聯性,在處理非線性問題上,BP算法發揮了很大的優勢。對于短期股票走勢的預測,效果較好,具有一定的實用價值。但在實驗中,也存在一些問題:(1)BP算法收斂速度慢,易形成局部極小而得不到全局最優,網絡訓練要經過幾次或十幾次才能達到期望輸出,當然這也是BP網絡自身的缺點,不易克服;(2)樣本數據的選取,時間序列數據不能太短也不能太長,如果選取的時間序列數據小于股票變化的周期,預測的結果不能很好地表現股票價格的變化趨勢;但是如果選取的時間序列數據遠大于股票變化的周期,網絡訓練加重,而且數據中可能含有噪聲,影響預測的準確度。所以,選擇多長時間周期的股票數據,適合大部分股票的預測,是一個值得研討的問題。
[1]張楊武.基于時間序列和神經網絡相結合的股票預測研究[J].電腦知識與技術,2009,5(1):208-209.
[2]胡書曉.基于神經網絡的股票K線特征圖形預測研究[D].上海:同濟大學學位論文,2008.
[3]韓力群.人工神經網絡[M].北京:北京郵電大學出版社,2006.
[4]張善文,雷英杰,馮有前.MATLAB在時間序列分析中的應用[M].西安:西安電子科技大學出版社,2007.
[5]姚培福,許大丹.BP神經網絡在股票預測中的應用研究[J].廣東自動化與信息工程,2006(1):7-9.