[摘要] 股票價格是非線性時間序列,傳統BP神經網絡預測模型存在容易陷入局部極小和收斂速度慢的缺陷。本文針對這些問題,采用蟻群神經網絡預測模型用于預測股票價格,該模型將蟻群算法作為訓練神經網絡的學習算法。實驗數據表明,該模型對于股票價格的短期預測效果與傳統BP神經網絡預測模型相比,具有較好的自適應性及較快的收斂速度。
[關鍵詞] 蟻群算法 前向神經網絡 BP算法 短期預測 股票價格
以股票漲落為代表的金融數據非常復雜, 其變化有著很強的無序性, 而有效的數據預測在金融投資領域占有重要地位。因此對股票價格的預測不但具有很大的難度,而且具有很重要的意義。
目前,對股票價格趨勢預測有兩種方法:基本分析法和技術分析法。基本分析法,就是盡可能的找出所有影響股票價格波動的因素(如:國際經濟和政治局勢、國內經濟和政治局勢、宏觀經濟政策、公司財務指標、管理團隊指標等等),建立這些因素與股票價格之間的模型,對股票價格進行預測。這種方法有很強的理論根據,但是我國金融市場中廣泛存在的炒作現象經常使股票的價格嚴重背離其基本價值,使基本分析在實務中被認同的程度不高。技術分析法,就是從證券市場的歷史數據,通過圖表、技術指標等尋求股票價格變化的規律進行預測。這種方法假設基礎是:證券的市場行為已經包括了宏觀、微觀經濟的一切信息;價格總是按照某種運動趨勢運動;價格的運行方式往往會重復歷史。國內學者研究表明,中國股市存在非線性與混沌。根據Takens定理可知, 只需單獨考察股票市場的價格時間序列, 便可獲得其背后的動力系統。因而可以通過股票價格時間序列重構股票市場非線性動力系統,給定一組股票價格迭代序列,構造非線性映射,最后得到股票價格預測模型。
傳統的股市技術分析法如K線圖法,移動平均線法對股價的預測不夠理想。而神經網絡在非線性建模中具有優勢,不必建立復雜的數學模型即可完成預測。在神經網絡算法當中,BP算法應用很普遍,有很多文獻已經將其應用在股票價格的預測中,但是由于BP算法權值的調節采用的是負梯度下降法,容易陷入局部極小點,收斂速度慢。因此,本文利用蟻群算法訓練人工神經網絡的權值,再將蟻群神經網絡用于股票價格的短期負荷預測,提出了一種蟻群神經網絡預測模型,提高了BP神經網絡預測模型的精度。
一、蟻群神經網絡預測模型
1.股票價格短期預測模型
股票的價格是按時間的先后順序采集的,由于影響股市交易的因素很多,比如銀行的利率、國家政策、物價指數、上市公司的業績以及人們心理的影響,股價的時間序列表現出復雜性和不確定性,是一個非線性時間序列。
股票價格是一個一維時間序列,本文使用文獻構造的多輸入單輸出的網絡拓撲圖,通過股票價格時間序列重構股票市場非線性動力系統, 根據給定的一組股票價格迭代序列, 通過神經網絡構造非線性映射。又由于個股走勢與大盤指數的變化是具有一定聯系的,因此得到股票價格預測模型,如圖1所示。
2.神經網絡模型
神經網絡是由處理單元組成的一種并行的分布式信息處理結構,處理單元之間由單向信道相互連接。人工神經元是神經網絡的基本計算單元,模擬了人腦中神經元的基本特征,一般是多輸入/單輸出的非線性單元,可以有一定的內部狀態和閥值。圖2所示為本文使用的神經網絡模型。
3.蟻群神經網絡
(1)蟻群算法
蟻群算法是一種基于模擬螞蟻群行為的隨機搜索優化算法。蟻群算法充分利用了蟻群的優化機制:選擇機制(分泌物越多的路徑,被選擇的概率越大)、更新機制(路徑上面的分泌物會隨螞蟻的經過而增長,而且同時也隨時間的推移逐漸揮發消失)、協調機制(螞蟻間實際上是通過分泌物來互相通信、協同工作的),通過個體之間的信息交流與相互協作最終找到最優解,使它具有很強的發現全局最優解的能力。文獻的計算實例表明該算法具有良好的克服局部極值、取得全局極值的能力。
(2)蟻群算法訓練神經網絡的過程
將蟻群算法用于訓練前向神經網絡,可按以下步驟進行:
①系統初始化,包括系統參數的設定以及初始蟻群的產生。
②分別對每只螞蟻的第i個分量進行子區間信息量的更新;以及在子區間候選組中進行遺傳操作,生成第i個分量的新值。然后計算m只螞蟻新解的函數值。
③修改各條邊上的信息量;更新候選組,取函數值小的num個解將其各分量值插入相應的子區間的候選組中。
④如果蟻群全部收斂到一條路徑,或達到結束條件(如NC≥NCmax),則循環結束,輸出最佳解;否則,轉步驟(2)。
4.蟻神經網絡的具體實現
(1)基本思想及參數定義
首先,每只螞蟻代表一個前向神經網絡,前向神經網絡的欲尋優變量X為兩個權值矩陣,和兩個閥值向量,X即為一只螞蟻的解向量。然后,利用蟻群算法對分析指標函數F(X)(函數的表達式根據具體情況定義)進行尋優操作,直到滿足給定停止條件(比如:F(X)或達到規定訓練次數)為止。
(2)實現過程
規定尋優變量X的各分量取值范圍,將 的各分量分為個子區域。設系統中有m只螞蟻,我們將解的n個分量看成n個頂點,第i個頂點代表第i個分量,在第i個頂點到第i+1個頂點之間有條連線,代表第i個分量的取值可能在個不同的子區間。我們記其中第j條連線上在i時刻的信息量為。每只螞蟻要從第1個頂點出發,按照一定的策略選擇某一條連線到達第2個頂點,再從第2個頂點出發,…,在到達第n個頂點后,在條連線中選取某一條連線到達終點。每個螞蟻所走過的路徑代表一個解的初始方案,它指出解的每一個分量所在的子區間。
可根據下列公式選取第i個分量所在的子區間號j(即從第i個頂點出發,選擇第j條連線):
其中q值均勻分布在(0,1)內隨機選取,是每個分量的ki個子區間中信息量最大的子區間被選種的概率。表示分量 的信息量最大的子區間號。j0按如下概率分布在[1,]內取值:
其中表示分量i的第j個子區間的信息量,它在動態地變化。
為了確定解的具體值,可在各個子區間已有的取值中保存若干個函數值較小的解的相應分量作為候選組,為了加快收斂速度,參考具有變異特征的蟻群算法提出的具有變異特征的蟻群算法,使用遺傳操作在候選組中確定新解的相應分量的值。首先可隨機在候選組中選擇兩個值,然后對他們實行交叉變換、變異變換,以得到新值作為解的相應分量。該候選組中的值在動態更新,一旦有一個更好的解的分量在該子區間中,就用這個值替換其中的較差者。
在m只螞蟻得到m個解后,要根據它們函數值的大小更新各條邊上的信息量。要根據下式對各路徑上的信息量作更新:
(1)
其中(2)
。其中W為一個常數,表示螞蟻k在本次循環中在區間i和j之間留下的信息量。
設第k個個體的第i個分量選中第j個子區間,則按下式局部更新子區間j的信息量:
。重復這樣的迭代過程,直至滿足停止條件。
候選組里的遺傳操作如下:
(1)若候選組里的候選值的個數i=0,既候選組里沒有候選值,此時則產生一個間的隨即數作為解分量xij的值,跳過選擇、交叉、變異遺傳操作。
(2)若i=1,即候選組里只有一個候選值xik,則跳過交叉、選擇操作,直接對這個候選值 ,進行變異操作。
(3)若i=2,即候選組里有兩個候選值,則跳過選擇操作,直接對這兩個候選值進行交叉、變異操作。
(4)否則,選擇兩個分量后進行交叉、變異操作。
在選擇操作中,用“賭輪”的方法選取兩個值,第j個值被選中的概率為。
在交叉操作中,設所選擇的兩個值為xij和xij,其對應函數值分別為E1,E2,且E1
在變異階段,以概率Pmutate對交叉操作結果xcross進行變異操作得到xmutate。第i個分量的第k個子區間為。設,產生隨機數,取
這樣可以保證遺傳操作的結果仍然在子區間中。
在所有螞蟻都得到解以后,按式(1)和式(2)相應地更新各子區間上的信息量。
2.蟻群神經網絡預測模型應用實例
本文利用了股票代碼為000070的股票在2007年11月5日~12月13日的歷史數據來進行建模、訓練并驗證本文提出的方法,編程環境為VC++6.0。
為了便于神經網絡的計算,首先對股票價格數據x按(3)式進行預處理,式中x為股票價格值;a和b分別為x的最小、最大值。
(3)
神經網絡輸入層神經元個數為8,隱層神經元的個數為12,輸出層神經元個數為1。輸入向量
,其中為前j天第時i刻的x’值。
本文采用均方誤差E作為分析指標函數F(X),定義如下:
(4)
式中y’為預測價格值,y為實際價格值。本例中螞蟻的數量 m=100;q0=0.8;W=1;。
對12月14日的預測結果如表所示,從中可以看出,蟻群神經網絡預測模型的預測精度較BP神經網絡預測模型有較大的提高,并且前者的實際運行速度明顯快于后者。圖3中,蟻群神經網絡預測模型的百分誤差變化也較均勻。
三、結束語
預測股票價格走勢一直是人們關心的問題。本文利用蟻群算法訓練前向神經網絡,克服了BP算法的一些固有缺陷,并用于了股票價格短期預測上。實例表明蟻群神經網絡預測模型有很好的預測精度和較快的預測速度,與傳統BP神經網絡模型的比較表明本文模型有更好的特性,因此,蟻群神經網絡預測模型是有效的。
參考文獻:
[1]汪少華:應用投資學導論:證券投資、項目投資、產權投資、創業投資[M].北京:經濟科學出版社,2004
[2]徐緒松:復雜科學、資本市場、項目評價[M].北京:科學出版社,2003
[3]付成宏傅明闕建榮:基于RBF神經網絡的股票價格預測[J].企業技術開發,2004,4第23卷第4期:14~15,38
[4]陳陵沈潔秦玲:蟻群算法求解連續空間優化問題的一種方法[J].軟件學報,2002/13(12)2317~07
[5]Dorigo,M., Luca, M. A study of some properties of Ant-Q[R]. Technical Report, TR/IRIDIA/1996-4,IRIDIA,University Libre de Bruxelles,1996
[6]袁曉東:神經網絡在股票價格中的應用[J].北京機械工業學院學報,2002,(3):71~77
[7]魏平熊偉青:用于一般函數優化的蟻群算法[J].寧波大學學報,2001,12(4):51~53
[8]Wu Qing-hong, Zhang Jihui, Xu Xinhe. An ant colony algorithm with mutation features[J].Jurnal of Computer Research Development, 1999,36(10):1240~1245
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。