楊語蒙,李興東
(蘭州交通大學,蘭州 730070)
在股票市場中,股票價格的升降受到各項綜合指標的影響,如宏觀經濟層面、經濟動蕩層面、股民意愿層面、社會輿論層面等。人們較多的關注股票價格的波動趨勢以及漲跌情況,希望實時的掌握股票市場的信息,進而避免利益損失。由于股票市場的非線性復雜性、價格的波動變幻萬千以及影響股票價格的因素千差萬別,使得研究股市波動成為國家經濟發展不可或缺的一部分。早期研究中,預測股票市場走勢的方法千差萬別。時間序列預測方法是通過研究對象的時間排序數據進行預測分析,反映預測對象發展變化的規律。該系列的預測方法主要有自回歸模型AR、移動平均模型MA、移動平均自回歸模型ARIMA、廣義自回歸異方差模型GARCH等。如張旭東[1]提出了基于離散型隱馬爾可夫模型的股票價格預測;崔文喆[2]借助GARCH-BP組合模型實現了股票價格的預測。這些時間序列模型屬于傳統的股票價格預測方法,最早被引入股票市場,受到了廣泛關注。
隨著宏觀經濟的深入以及市場愈加復雜,股價研究方法也隨之變得成熟,發現這些傳統的時間序列預測方法和機器學習預測模型[3-4]在預測準確性方面并不能很好的發揮作用,它們未考慮到序列的長期記憶信息以及股票市場區別于其他市場的復雜性、無規律性等特點,從而未能對股票價格變動做出很精準的估計。
為了解決傳統預測方法預測精度低、預測效果差等問題,后來又逐漸引入了神經網絡預測模型。如羅鑫[5]提出基于多時間尺度復合深度神經網絡模型對股票價格做預測;張杰[6]針對馬氏鏈的股票價格預測提出了長短時記憶神經網絡LSTM預測模型[17];史建楠[7]首先通過DMD算法提取包含整體市場和特定股票走勢變化信息的模態特征,然后針對不同市場背景,采用LSTM網絡對基本面數據和模態特征進行價格建模預測。
本文針對滬深300近幾年的股票數據,引入優化長短時記憶網絡模型GA-LSTM。即借助全局尋優遺傳算法GA對LSTM模型的參數進行優化調參。通過比較LSTM與GA-LSTM模型對非線性時間序列良好的預測能力,實驗證明,組合模型GA-LSTM可以充分考慮模型參數的自動尋優,從而進一步促進了股票市場的研究與發展。
遺傳算法是一種基于選擇搜索的全局尋優算法,模擬了遺傳和選擇過程中的繁殖、雜交和突變現象。在遺傳算法開始的時候會隨機產生一些個體,根據在GA算法里自定義的適應度函數分別對每一個個體進行計算評估,給出一個適應度值?;诖诉m應度值,選擇一些個體用來產生下一代,然后選擇出來的個體再經過交叉和變異進行再組合從而生成新的一代,以此類推朝著最優解的方向進化。全局尋優算法GA的模型流程如圖1所示。

圖1 遺傳算法流程
若用二進制編碼表示個體,則二進制數轉化為十進制數的解碼公式可以為:

其中bi1,bi2,…,bil為某個個體的第i段,每段段長都為l,每個bij都是0或者1,Ti和Ri是第i段分量xi的定義域的左右兩個端點。
循環神經網絡RNN只能存儲短期記憶,會遺忘長期記憶信息,為了記住有用的長期信息,后面引入了長短時記憶神經網絡模型LSTM,該模型是RNN的拓展網絡結構[8]。該模型可以有效地同時利用短期記憶信息和長期記憶信息,從而可以有效的避免梯度消失導致某些信息丟失的問題[9],在處理較長間隔的時間序列方面具有很大的優勢。
LSTM模型是在RNN基礎上增加了記憶細胞,使得該模型可以記住長期序列中的有用信息[10],通過已有的激活函數Relu、Sigmoid、Tanh與softmax來控制輸出值的范圍,激活函數是在輸入數據前已經確定好的,連接層是通過不同大小的權重相連接[11]。
LSTM模型主要由三種門組成,如圖2所示,分別為輸入門it,輸入門Ot,遺忘門ft,它們可以為LSTM的神經元中的單元提供信息。其中遺忘門是為了從細胞狀態中選擇性地遺忘沒有價值的信息:ft=δ(Wf·[ht-1,xt]+bf);輸入門是主要為了選擇性將新的信息輸入到神經元的細胞:it=δ(Wi·[ht-1,xt]+bi);輸出門的作用對象為隱層ht,會輸出當前時刻LSTM的輸出值ht與當前時刻細胞的單元狀態ct:ht=ot*Ct。

圖2 LSTM模型結構
引入GA遺傳算法的雙向長短時記憶神經網絡LSTM模型,是指利用GA算法對預測模型LSTM進行全局參數尋優,模型結構如圖3所示。

圖3 預測階段模型結構
1.3.1 數據預處理階段
將原始數據集進行清洗、再對量綱不一致的特征屬性轉變為一致的特征屬性,如使用標準化或歸一化處理,將原始數據轉變到[0,1]之間。
1.3.2 GA遺傳算法優化參數的步驟
(1)產生初始群體。
(2)染色體二進制編碼群體。
(3)用適應度函數計算個體適應度P(xi)=
(4)進行基因重組。
(5)進行基因變異。
(6)得到新的種群。
1.3.2 LSTM預測模型
最終模型會輸出當前時刻LSTM的輸出值ht與當前時刻細胞的單元狀態ct[12],其中:


對于結果連續的回歸問題,一般使用的大致為:MSE(均方差)、擬合優度R2[13]。
(1)平均平方誤差(MSE)為:

(2)決定系數又被稱為R2為:

其中均方誤差MSE越小,則說明模型擬合程度越高,預測效果越好[18]。決定系數R2∈(-1,1),R2的值越接近于1,說明該模型的精度越高。該論文中以均方誤差MSE和R2這兩個指標來評判模型的好壞。
在Python 3.7與Anaconda的環境下,借助Scikit-Learn機器學習工具進行建模預測滬深300股票的收盤價。
本文數據是來自于網易財經網站上滬深300股2018年1月2日到2020年9月21日的663個交易日數據,其中所含特征屬性包括:日期、開盤價、最高價、最低價、收盤價、調整的收盤價、成交量。其數據的樣本量充足,且該股也是在金融領域具有代表性的研究對象,其中將數據集的80%做為訓練集,20%的數據作為測試集,這使得基于時效性和數據量兩個層面讓預測結果更加精準,使得研究結果更加符合目前股票市場的行情波動。
由于成交量與各維度間的量綱不同,直接用于模型的訓練很不專業,為了使其量綱保持一致,使數據有利于建立更高效的預測模型,提高模型的擬合程度,降低預測誤差,我們需要對數據集的各個維度進行歸一化處理。

本文通過收盤價的序列預測,采取等步預測法,將前五天的收盤價作為輸入變量輸入GALSTM組合模型中去預測第六天的收盤價,然后再迭代利用第二天到第六天的收盤價去預測第七天的收盤價,以此類推利用最后五天收盤價的預測值去預測未來一天的收盤價從而達到預測的作用。
基于SVM模型、XGBoost模型、LSTM模型以及GA-LSTM模型預測股票收盤價未來走勢,從而得出預測效果最佳的模型,如表1所示。

表1 網格參數設置
其中LSTM模型中對應的時間步長為5,隱藏層與神經元個數屬于LSTM超參數,后期實驗中需要調節該參數以使得模型得到最優,借助全局尋優GA遺傳算法對構建好的LSTM模型參數尋找最優參數值。進而達到對股票價格未來趨勢很好的預測效果。進而對滬深300股票進行神經網絡深度學習預測[14]。
在本次實驗中,為了盡可能地避免模型過擬合,我們選取的優化方法是“dropout”方法,該方法的作用機制是在進行傳播的時候刪除一些結點,這樣的話我們就可以降低網絡的復雜性,從而使得建立的神經網絡模型就不會變的過擬合。
針對我們該實證用到的數據集,對它做描述性分析,對應的詳細數值如表2所示。

表2 樣本數據的描述信息
表2展示了滬深300股的數據基本信息。其中X1-Open、X2-High、X3-Low、X4-Close、X5-Adj Close、X6-Volume、mean-股票收盤價價的平均值、min-最小值,std-標準差,min-最小值、0.25和0.70代表數據集的四分位數、0.50代表中位數、max-股票收盤價的最大值。利用Python 3繪制出滬深300收盤價的大致走勢與股票日成交量如圖4所示。

圖4 2018~2020年股票收盤價走勢情況
由Python自帶的matplotlib繪圖庫畫出滬深300股在2018~2020年大盤的走勢圖,在圖中可以看出該支股票的趨勢有高有低,呈現出無規律的波動性,2018年全年出現了好幾次反彈,但整體處于下跌的趨勢,直到2018年的11月,這段時間股票價格下跌流暢,跌勢兇猛,好在股票在2019年1月開始反彈,反彈到同年4月,但總體上看股票價格的總體變化趨勢處于上升的狀態。通過對樣本數據的可視化分析,能夠直觀地讓股民了解當前一段時間內股票市場的價格波動情況,為我們后續預測打下堅實的基礎。根據繪圖工具畫出股票成交量的變化趨勢如圖5所示。

圖5 2018~2020年股票成交量走勢情況
股票的成交量與股票該月的開盤價、收盤價等存在著很強的相關性,隨著每天股票價格的不斷調整,人們對股票的買入或賣出決策也在改變。在2018年3月股票價格出現較大幅度的下跌的時候,對應著該月的成交量也隨之減少。在2019年1月份股票價格開始回升,其對應這段時期的成交量也出現了上升趨勢。

圖6 滬深300股票的指數走勢
滬深300股的均線圖可以側面反映一段時期內股票波動的方向,股民主要通過均線圖去判斷大盤和個股近期的發展趨勢,并做出合理的決策。當日均線向下時,則股票的趨勢是走下坡;當日均線向上時,則股票的趨勢是向好的一面發展。10日均線說明了股票近10日內短期發展趨勢的好壞程度;52日均線說明了股票近一個多月中期的發展趨勢;252日均線可以大致說明股票長期趨勢的好壞。根據股票對應日均線可以較為準確的判斷出股民在哪天購入或拋出股票會盡可能帶來收益或者減少損失。
2.5.1 GA遺傳算法優化模型
遺傳算法GA模型中的參數分別返回的是LSTM的層數、全連接層的層數、LSTM每層神經元的個數以及全連接層每層的神經元個數,以模型的預測精度作為GA算法中的適應度,尋找出最高預測精度對應的模型參數,從而進一步在原有模型的基礎上全局尋優了最佳參數[15]。LSTM模型定義的損失函數為“MSE”,優化方法為“Adam”,模型評價標準為輸出值與標簽值得差。最終遺傳算法的最優參數輸出結果如表3所示。根據遺傳算法輸出的三個參數值對應的模型預測效果表可得,當LSTM層的層數以及每層LSTM層對應神經元的個數、全連接層dens層數以及每層對應神經元個數分別取2(190,224)、1(122)時,對應的LSTM模型的適應度最高,即可得到較高的預測精度和較好的預測效果。

表3 遺傳算法的優化參數
2.5.2 預測模型對比

圖7 LSTM模型的預測

圖8 GA-LSTM模型的預測

圖9 GA-LSTM與LSTM模型對比

圖10 模型預測結果對比

表4 模型評價指標對比表
通過觀察模型評價指標R2與MSE發現:GALSTM組合模型的R2為0.9381,模型的誤差MSE為0.2487。即組合的GA-LSTM預測模型對應的R2較單一模型LSTM上升了0.0182左右,均方誤差下降了0.0399左右。
主要是針對前面介紹的內容和實證的結果做了系統化的總結與分析,在本文提出方法的基礎上,對該方法在金融市場預測領域的優勢予以說明總結。本文基于Jupyter-notebook實驗環境,運用優化的神經網絡模型對滬深300收盤價的未來趨勢進行預測,實驗結果各項指標均表明了組合模型GA-LSTM可以更為精確地預測股票未來的大體走勢,進而也進一步促進了金融市場的進步與發展。
在本文的研究中,雖已初步實證證明了組合模型GA-LSTM的預測精度更高,預測效果更好,但由于股票市場是具有復雜性、不規律性、無周期性等特點,且滬深300股的數據量以及特征屬性較少,在預測過程中未考慮到社會輿情、政治因素、以序列數據的信號特征等條件,使得GALSTM組合模型的可擴展程度和復雜度受到很大制約[16]。另外,在實驗中,每次訓練LSTM模型的權重會不斷更新、輸出層的層數不同以及調整的參數不同等原因會導致模型的訓練結果有差異。在以后的研究中希望可以在構建神經模型預測模型前,加入相依股票的影響以及網絡輿情的分類結果,且在此基礎上借助PSO粒子群算法對其預測模型的參數進行尋優建模實現對其收盤價的分析預測。