截至2017年年底,全球股市總市值逼近百萬億美元,世界上市公司總數(shù)超過4萬家[1],全球股票市場達到空前規(guī)模,其波動對全球經(jīng)濟的影響是重大而深遠的。雖然豐富的歷史股票信息為廣大投資者和分析者提供了數(shù)據(jù)資源,但是單單依靠分析者的個人經(jīng)驗和直覺進行分析與判斷,顯然不可靠且低效,因此人們需要一個智能、科學且高效的研究方法來幫助指導股票交易。由于金融時間序列具有非平穩(wěn)性、非線性、高噪聲的特點,傳統(tǒng)的統(tǒng)計學模型難以對其作出較高精度的預測。 而神經(jīng)網(wǎng)絡機器學習算法以其良好的非線性逼近能力和自學自適應等特點,成為目前比較流行的預測手段。其中,LSTM神經(jīng)網(wǎng)絡作為一種新型可實現(xiàn)的遞歸神經(jīng)網(wǎng)絡模型,其具備選擇性記憶性以及時序內(nèi)部影響的特性極適用于股票價格時間序列這種類隨機的非平穩(wěn)序列。
在過去幾年,國外學者對于RNN神經(jīng)網(wǎng)絡以及LSTM 神經(jīng)網(wǎng)絡的運用多為圖片識別以及人工智能,國內(nèi)科學家以及學者們更加傾向研究神經(jīng)網(wǎng)絡與其他統(tǒng)計學和計量經(jīng)濟學數(shù)學模型的結合使用,從而優(yōu)化設計,得到更好的預測結果[2]。對于LSTM神經(jīng)網(wǎng)絡,國內(nèi)學者也僅在近四五年將其運用在數(shù)據(jù)挖掘的分類算法上,基于 LSTM 神經(jīng)網(wǎng)絡在這些方面的優(yōu)異表現(xiàn),文章旨在探究LSTM神經(jīng)網(wǎng)絡是否可以應用于個股的價格趨勢預測。
LSTM(Long Short-Term Memory)是長短期記憶網(wǎng)絡,是一種時間遞歸神經(jīng)網(wǎng)絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件。LSTM算法最早由 Sepp Hochreiter和Jurgen Schmidhuber于1997年提出,是一種特定形式的RNN(Recurrent neural network,循環(huán)神經(jīng)網(wǎng)絡),而RNN是一系列能夠處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡的總稱。本研究使用的LSTM神經(jīng)網(wǎng)絡處理股票序列的流程[2]如圖1。
圖1 LSTM層的結構
模型假設
文章采用Python語言編程實現(xiàn)LSTM神經(jīng)網(wǎng)絡的訓練和預測過程,以TensorFlow作為深度學習框架進行訓練,并進行圖形擬合和誤差評估。
基于實驗的嚴謹性、合理性以及準確性考慮,文章選擇香港股票市場和美國股票市場個股作為研究對象。為減少單個個股被莊家控盤或主力做市的可能性以及削弱不同市場的相關影響,文章最終選取的基礎研究對象為美港股票市場中單個市場上市且市值較大的個股。
模型構建
模型預測方式為利用前7個成交日的數(shù)據(jù)預測第8日的收盤價數(shù)據(jù)。訓練的方式主要為取前70%的數(shù)據(jù)塊進行訓練,訓練完成后再取原數(shù)據(jù)后30%的數(shù)據(jù)塊進行滑動順序預測。
模型結構:模型層數(shù)劃分與時間點一致,且每一層均有輸入輸出,輸入時可根據(jù)時序前后逐一輸入,隱藏層內(nèi)的神經(jīng)元個數(shù)與自變量個數(shù)完全一致,本實驗中為5個自變量(參數(shù)),分別是開盤價、最高價、最低價、收盤價與成交量。層與層之間根據(jù)時序從前向后影響和從后向前反饋,形成整個隱藏層的自循環(huán)。模型網(wǎng)絡參數(shù)設計如下:(1)時間步數(shù):7;(2)隱藏層數(shù)目:10;(3)學習率:0.01;(4)迭代次數(shù):500。
數(shù)據(jù)獲取與處理
(一)數(shù)據(jù)獲取:文章主要研究對象為友邦保險(01299.HK)、長和(00001.HK)、微軟(MSFT)以及亞馬遜(AMZN)2016年11月2日至2017年11月1日的日K數(shù)據(jù)。利用Wind數(shù)據(jù)庫Excel插件下載股票的日K數(shù)據(jù),時間區(qū)間為2016年11月2日至2017年11月1日,股票屬性為日期、開盤價、收盤價、最高價、最低價以及日成交量,剔除無效日期的數(shù)據(jù),得到包括以上六個屬性的CSV文件。為了驗證模型的有效性,文章選取了多只股票的歷史數(shù)據(jù)進行實驗,實驗樣本數(shù)據(jù)示例如下:
表1 友邦保險股票歷史樣本數(shù)據(jù)示例
(二)數(shù)據(jù)歸一化處理:在將歷史數(shù)據(jù)帶入模型進行訓練前,由于數(shù)據(jù)中幾個參數(shù)的維度不同,比如成交量與價格之間數(shù)量級上的巨大差異,所以需要先對數(shù)據(jù)進行歸一化處理。歸一化使得每個參數(shù)隨梯度下降的步長與其數(shù)量級相對應,可提升模型的收斂速度及預測精度。把數(shù)據(jù)維度控制在0到1之間,歸一化函數(shù)如下:
Xnew=(Xold-min(X))/(max(X)-min(X))
而為了保證神經(jīng)網(wǎng)絡的輸出數(shù)據(jù)與輸入數(shù)據(jù)數(shù)量級相符,對神經(jīng)網(wǎng)絡預測結果的輸出也需要進行反歸一化處理,公式為:
y(i)=yi(max(xi)-min(xi) )+min(xi)
其中,yi為神經(jīng)網(wǎng)絡輸出。
模型的訓練效果分析
圖2 LSTM神經(jīng)網(wǎng)絡的訓練誤差變化趨勢圖
學習率可用來限制神經(jīng)網(wǎng)絡每次更新中權重項修正值的大小。迭代次數(shù)是神經(jīng)網(wǎng)絡在訓練集上訓練同時更新權重項的次數(shù)。這兩個參數(shù)和訓練集一起,都是神經(jīng)網(wǎng)絡中預測函數(shù)的輸入?yún)?shù)。在學習率為0.01的情況下,訓練集不斷對神經(jīng)網(wǎng)絡進行迭代訓練使神經(jīng)網(wǎng)絡的輸出誤差越來越小,直至誤差收斂于一個很小的區(qū)間。下圖為當學習率為0.01,迭代次數(shù)為500,對改進的LSTM神經(jīng)網(wǎng)絡模型分別輸入4只不同股票訓練數(shù)據(jù)時訓練誤差的收斂情況。其中橫坐標表示迭代次數(shù),縱坐標表示神經(jīng)網(wǎng)絡訓練的誤差平方和。
綜合比較以上四圖的曲線,容易得出,在模型的訓練過程中,當學習率為0.01、迭代次數(shù)為500時,4只不同股票的訓練集數(shù)據(jù)對模型的訓練均使神經(jīng)網(wǎng)絡的預測誤差快速收斂于(0,0.1)區(qū)間,且收斂的迭代次數(shù)均在100次以內(nèi)。這說明改進的LSTM神經(jīng)網(wǎng)絡使用數(shù)據(jù)進行訓練時能快速收斂,并且誤差很小。模型訓練時誤差在前100次迭代中快速減小說明改進的LSTM神經(jīng)網(wǎng)絡具有快速性,而模型訓練后誤差穩(wěn)定在較低水平說明模型具有穩(wěn)定性。股票市場在多年的發(fā)展中累積了大量的歷史交易數(shù)據(jù),數(shù)據(jù)維度眾多,價格預測難度大,模型的快速性有利于快速分析海量股票數(shù)據(jù)實現(xiàn)即時預測效果。對股票價格進行預測會很大程度上影響投資者的未來收益,股價預測的準確性對投資者有著重要意義,因而網(wǎng)絡模型的穩(wěn)定性也是模型適用于股價預測的一大特點。
預測結果圖形擬合對比分析
模型預測結果擬合成圖形如下(如圖例所示,藍色曲線為預測值,紅色曲線為真實值,橫坐標為時間,縱坐標為股票價格):
圖3 LSTM神經(jīng)網(wǎng)絡股票收盤價趨勢預測(2017.7.19-2017.11.1)
觀察以上四個擬合圖的曲線,將預測結果與實際結果進行比較,不難看出:雖然部分仿真輸出與真實輸出比較存在一定程度的時間滯后性,模型對四只港股價格的仿真輸出與真實輸出在總體趨勢上基本一致。限于所給精度要求和訓練樣本個數(shù),存在一定預測誤差是在所難免的,模型預測結果擬合曲線表明LSTM神經(jīng)網(wǎng)絡對友邦保險、長和、微軟以及亞馬遜四只美港股票市場個股的價格趨勢預測還是比較準確的。
從單只股票的預測價格和真實價格對比來看,微軟的預測效果是四個仿真預測實驗中最好的,而友邦保險和亞馬遜的預測值與真實值的偏差程度較大,預測效果略遜一籌。這說明模型對不同個股的預測效果不同,個股預測效果優(yōu)劣不僅與股票市場因素有關,也與個股自身因素相關。
模型預測精度分析
文章采用均方根誤差(RMSE)對預測結果進行評價。均方根誤差也稱為標準誤差,是觀測值與真實值的誤差平方根的均值。在實際測量中,觀測次數(shù)總是有限的,真實值只能用最可信賴(最佳)值來代替,而方根誤差對一組測量中的特大或特小誤差反映非常敏感,所以,均方根誤差能夠很好地反映出測量的精密度。RMSE計算公式如下,其中Yi為神經(jīng)網(wǎng)絡輸出值,Y為真實值。
當對某一個變量進行多次測量時,RMSE反映了測量數(shù)據(jù)偏離真實值的程度,RMSE越小,表示測量精度越高。下表為模型對4只港股進行預測時的RMSE數(shù)據(jù)。
表2 模型對個股價格預測的均方根誤差對比表
從表2中可以看到,模型預測亞馬遜的RMSE為0.051609,較其他3只股票的預測RMSE大,其預測值與真實值擬合圖形的分散程度較大,而模型預測微軟的RMSE為0.033077,較其他3只股票的預測RMSE小,其預測值與真實值擬合圖形的分散程度較小,預測精度最高。模型對友邦保險、長和、微軟以及亞馬遜4只個股價格趨勢預測的RMSE均處于(0,0.1)的區(qū)間內(nèi),說明模型對于大市值港股價格的預測精度很高,預測結果顯著。
實驗利用LSTM對股票市場預測進行建模,用訓練好的模型來進行股票預測,選取代表性個股的股票數(shù)據(jù)為例,對其進行預測,用實例證明了LSTM神經(jīng)網(wǎng)絡通過學習和訓練,能擬合股票數(shù)據(jù)做出預測,并取得了較好的效果。
然而文章選取的研究數(shù)據(jù)量有限,研究結果難以代表整個股票市場的預測應用效果。另外,文章只討論了LSTM神經(jīng)網(wǎng)絡在美港股市中的預測適用性,并未對模型適用性差的情況作出進一步改進。該研究課題還有很大的可研究空間。