王愛(ài)平,陶嗣干,王占鳳
(安徽大學(xué) 計(jì)算智能與信號(hào)處理教育部重點(diǎn)實(shí)驗(yàn)室,安徽 合肥230039)
股票是證券市場(chǎng)的重要組成部分,股票的發(fā)行和交易促進(jìn)了市場(chǎng)經(jīng)濟(jì)的發(fā)展。而股票市場(chǎng)是一個(gè)高度復(fù)雜的非線性動(dòng)態(tài)系統(tǒng),其變化規(guī)律由于受經(jīng)濟(jì)、政治、公司經(jīng)營(yíng)狀況和市場(chǎng)人氣等多方面的影響,使股票價(jià)格走勢(shì)呈現(xiàn)不規(guī)律性。為了能夠預(yù)測(cè)其變化趨勢(shì),人們研究出了一些股票分析方法[1-2],如:技術(shù)分析法(移動(dòng)平均法MA、成交量圖法 VOL等)、基本面分析(宏觀經(jīng)濟(jì)、國(guó)際政治、公司經(jīng)營(yíng)狀況等)和心理分析(股票市場(chǎng)中的羊群效應(yīng))等。而這些方法大部分是線性模型,對(duì)股票短期走勢(shì)預(yù)測(cè)效果不是很理想。而B(niǎo)P神經(jīng)網(wǎng)絡(luò)[3]能夠把輸入輸出問(wèn)題轉(zhuǎn)化為非線性映射問(wèn)題,即完成由n維輸入空間到m維輸出空間的非線性映射,能很好地解決非線性問(wèn)題。本文利用時(shí)間序列對(duì)股票價(jià)格的原始數(shù)據(jù)進(jìn)行預(yù)處理,然后利用BP神經(jīng)網(wǎng)絡(luò)對(duì)上證A股皖維高新近期股價(jià)漲跌走勢(shì)進(jìn)行了預(yù)測(cè)。
對(duì)某一個(gè)或一組變量x(t)進(jìn)行觀察測(cè)量,將在一系列時(shí)刻 t1,t2,…,tn(t為自變量且 t1<t2<…<tn)所得到的離散數(shù)據(jù)組成的序列集合{x(t1),x(t2),…,x(tn)}稱之為時(shí)間序列[4],記為 X={x(t1),x(t2),…,x(tn)}。一般時(shí)間序列由 4部分構(gòu)成,即長(zhǎng)期或趨勢(shì)變化、循環(huán)變化、季節(jié)性變化和隨機(jī)變化。本文研究時(shí)間序列短期趨勢(shì)變化,來(lái)獲取所需要的知識(shí)。 對(duì)于樣本集 X={x(t1),x(t2),…,x(tn)},每一個(gè)訓(xùn)練樣本x(ti)由一些重要的特征屬性組成,令Y={y(t1),y(t2),…,y(tn)}為目標(biāo)期望,即由特征屬性所決定的決策屬性值。例如在股票漲跌預(yù)測(cè)中,一只股票每天的開(kāi)盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)等特征屬性影響次日股票的走勢(shì)。由此可以按日時(shí)間序列來(lái)構(gòu)造樣本向量,但這種方式?jīng)]有考慮到時(shí)間序列數(shù)據(jù)前后相互影響,割裂了時(shí)序特性。為了更好地反映時(shí)間序列數(shù)據(jù)之間的關(guān)系,將前N天的股票特征屬性對(duì)當(dāng)日股票的影響也考慮進(jìn)來(lái),從而可以得到N天時(shí)間序列,這時(shí)得到的樣本中特征屬性增加了許多,給BP網(wǎng)絡(luò)訓(xùn)練增加了難度。由于股票的漲跌是依據(jù)昨日與今日收盤價(jià)的高低比較得到的,這時(shí)可以約去前N-1天的開(kāi)盤價(jià)、最高價(jià)、最低價(jià),得到前N-1天的收盤價(jià)和第N天開(kāi)盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)樣本,從而使網(wǎng)絡(luò)得到進(jìn)一步簡(jiǎn)化。
BP神經(jīng)網(wǎng)絡(luò)是人工神經(jīng)網(wǎng)絡(luò)的重要模型之一,也是目前應(yīng)用最廣泛的一種多層前饋神經(jīng)網(wǎng)絡(luò),可以解決大多數(shù)神經(jīng)網(wǎng)絡(luò)面臨的問(wèn)題。BP算法[3,5]的思想是學(xué)習(xí)過(guò)程由信號(hào)的正向傳播與誤差的反向傳播兩個(gè)過(guò)程組成,若輸出層的實(shí)際輸出與目標(biāo)期望不符,則轉(zhuǎn)入誤差的反向傳播,調(diào)整各層神經(jīng)元的權(quán)值,此過(guò)程一直進(jìn)行到訓(xùn)練網(wǎng)絡(luò)預(yù)先設(shè)定好的學(xué)習(xí)次數(shù)或小于網(wǎng)絡(luò)輸出的誤差值。目前使用最多的是三層BP網(wǎng)絡(luò),包括輸入層、隱層和輸出層。設(shè)三層BP網(wǎng)絡(luò),輸入向量為X=(x1,…,xi,… ,xn)T,隱 層 輸 出 向 量 為 Y=(y1,… ,yj,… ,ym)T,輸 出層輸出向量為 O=(o1,o2,…,ok,…,ol)T,期望輸出向量為d=(d1,d2,…,dk,…,dl)T,輸入層到隱層之間的權(quán)值為V=(V1,V2, … ,Vj, … ,Vm), 隱 層 到 輸 出 層 之 間 的 權(quán) 值 為W=(W1,W2,…,Wk,…,Wl)。
(1)正向傳播過(guò)程中隱層的輸出可表示為:
其中x0=-1是隱層神經(jīng)元引入閾值而設(shè)定的。
輸出層的輸出可表示為:
其中y0=-1是輸出層神經(jīng)元引入閾值而設(shè)定的。
(2)反向傳播過(guò)程中輸出層的權(quán)值修改可表示為:
隱層的權(quán)值修改可表示為:
文中皖維高新股票數(shù)據(jù)是從華林證券軟件上證A股日線報(bào)表中整理而得,每個(gè)樣本數(shù)據(jù)包括開(kāi)盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)4個(gè)特征屬性以及第m日的收盤價(jià)和第(m+1)日的收盤價(jià)比較結(jié)果的樣本,即目標(biāo)期望值。
定義:若第m日的收盤價(jià)小于第(m+1)日的收盤價(jià),令期望值為0,表示股價(jià)下跌;反之若第m日的收盤價(jià)大于第m+1日的收盤價(jià),令期望值為1,表示股價(jià)上漲。部分樣本信息如表1所示。
為了更好地反映時(shí)間序列數(shù)據(jù)內(nèi)部之間的關(guān)聯(lián)性,引入m日交叉時(shí)間序列。 樣本集 X={x(t1),x(t2),…,x(tn)},其中 x(ti)為第 i個(gè)交易日樣本數(shù)據(jù),令 x(ti)=(vi1,vi2,vi3,vi4)i=1,2, …,n, 其中 vi1,vi2,vi3,vi4分別代表第 i天的開(kāi)盤價(jià)、最高價(jià)、最低價(jià)和收盤價(jià)。于是可得m日交叉時(shí)間序列樣本為:
表1 皖維高新股票部分訓(xùn)練樣本和期望值
其中oi為第(m+1)日股價(jià)的期望值。
以皖維高新為例,對(duì)該股票信息按照1日、3日和5日交叉時(shí)間序列進(jìn)行數(shù)據(jù)整理(時(shí)間從2008年10月9日~2009年 1月 5日共 60天數(shù)據(jù),2009年 1月 6日~2009年1月21日共12天數(shù)據(jù)),預(yù)測(cè)結(jié)果如表2所示。
表2 1日、3日和5日交叉時(shí)間序列預(yù)測(cè)結(jié)果
由表2可知,3日交叉時(shí)間序列樣本,預(yù)測(cè)準(zhǔn)確率最高,達(dá)到80%。而5日交叉時(shí)間序列樣本預(yù)測(cè)準(zhǔn)確率最低,只有50%。對(duì)于股票短期的走勢(shì)可能受到國(guó)家政策因素(比如降息、經(jīng)濟(jì)振興規(guī)劃等),外圍股票市場(chǎng)多方面的影響,5日交叉時(shí)間序列數(shù)據(jù)可能存在一定的噪聲,使最終預(yù)測(cè)的結(jié)果偏低。比較3日交叉時(shí)間序列和1日時(shí)間序列預(yù)測(cè)的結(jié)果,發(fā)現(xiàn)3日預(yù)測(cè)的正確率遠(yuǎn)高于1日的正確率,從中可以看出,第(m+1)天的股價(jià)不僅受第m天股價(jià)的影響還受(m-1)天股價(jià)的影響,只是影響股價(jià)的程度不一樣而已。由此可以看出時(shí)間序列數(shù)據(jù)之間存在相互依賴性,選擇好時(shí)間周期對(duì)預(yù)測(cè)結(jié)果的準(zhǔn)確率起到關(guān)鍵作用。
股票數(shù)據(jù)樣本按交叉時(shí)間序列處理,更能體現(xiàn)數(shù)據(jù)之間的關(guān)聯(lián)性,在處理非線性問(wèn)題上,BP算法發(fā)揮了很大的優(yōu)勢(shì)。對(duì)于短期股票走勢(shì)的預(yù)測(cè),效果較好,具有一定的實(shí)用價(jià)值。但在實(shí)驗(yàn)中,也存在一些問(wèn)題:(1)BP算法收斂速度慢,易形成局部極小而得不到全局最優(yōu),網(wǎng)絡(luò)訓(xùn)練要經(jīng)過(guò)幾次或十幾次才能達(dá)到期望輸出,當(dāng)然這也是BP網(wǎng)絡(luò)自身的缺點(diǎn),不易克服;(2)樣本數(shù)據(jù)的選取,時(shí)間序列數(shù)據(jù)不能太短也不能太長(zhǎng),如果選取的時(shí)間序列數(shù)據(jù)小于股票變化的周期,預(yù)測(cè)的結(jié)果不能很好地表現(xiàn)股票價(jià)格的變化趨勢(shì);但是如果選取的時(shí)間序列數(shù)據(jù)遠(yuǎn)大于股票變化的周期,網(wǎng)絡(luò)訓(xùn)練加重,而且數(shù)據(jù)中可能含有噪聲,影響預(yù)測(cè)的準(zhǔn)確度。所以,選擇多長(zhǎng)時(shí)間周期的股票數(shù)據(jù),適合大部分股票的預(yù)測(cè),是一個(gè)值得研討的問(wèn)題。
[1]張楊武.基于時(shí)間序列和神經(jīng)網(wǎng)絡(luò)相結(jié)合的股票預(yù)測(cè)研究[J].電腦知識(shí)與技術(shù),2009,5(1):208-209.
[2]胡書(shū)曉.基于神經(jīng)網(wǎng)絡(luò)的股票K線特征圖形預(yù)測(cè)研究[D].上海:同濟(jì)大學(xué)學(xué)位論文,2008.
[3]韓力群.人工神經(jīng)網(wǎng)絡(luò)[M].北京:北京郵電大學(xué)出版社,2006.
[4]張善文,雷英杰,馮有前.MATLAB在時(shí)間序列分析中的應(yīng)用[M].西安:西安電子科技大學(xué)出版社,2007.
[5]姚培福,許大丹.BP神經(jīng)網(wǎng)絡(luò)在股票預(yù)測(cè)中的應(yīng)用研究[J].廣東自動(dòng)化與信息工程,2006(1):7-9.