王 東,王霄鵬,楊川東
(重慶理工大學 計算機科學與工程學院,重慶 400054)
隨著我國經濟的高速發展及人們經濟意識的提高,理財行為逐漸成為廣大家庭實現資產增值的主流方法之一。股票作為一種無償還期限的有價證券,以其高風險、高收益的特征成為許多家庭理財投資的首要選擇。因此,針對股市的波動特性及存在的特定規律進行合理分析從而正確預測出股市的走勢,對于國家和家庭都具有重要意義。
一個良好的股票預測模型需要有較好的泛化能力,在模型的建立中,為了更加全面系統地分析問題,必須要考慮眾多指標。但過多的變量無疑會增加分析問題的難度與復雜性。股票各項基礎數據之間存在的相關性也使得數據所反映的信息會在一定程度上有部分重疊,并且不能很好地展現深層隱含的規律。針對此類問題,本研究在LSTM模型的基礎上結合對股票價格反應更加敏感的相關技術指標,根據股票特性對模型進行改進,提高模型泛化性。并引入主成分分析法來提取出互不相干的幾項主成分,在最大程度保留原始數據信息的同時,用較少的主成分代替原來較多的變量作為訓練模型的輸入數據。降低模型復雜度,提高學習速率。
通過各大財經網站的股票數據站以及python的tushare財經數據接口包,獲取了所選股票的九項基礎數據:開盤價、收盤價、最高價、最低價、前收盤價、漲跌額、漲跌幅度、成交量以及成交金額。如表1所示。將針對基礎數據計算得出的KDJ、MACD指標共同作為模型的訓練數據。

表1 股票基礎數據
KDJ指標是一種反映敏感快速的技術分析指標,主要是利用股票價格波動的真實波幅來反映價格變化趨勢的強弱,可以在股價尚未上升或下降之前發出買賣信號。通過一段周期內出現過的最高價、最低價、周期最后的收盤價及這三者之間的比例關系,計算出周期最后一天的未成熟隨機值RSV,然后根據滑動平均線的方法來計算K、D、J值。
K值為RSV的n天移動平均值,由K值連接而成的K線又被稱為快線,在3條曲線中變化速度中等。D值為K值的n天的移動平均值,3條線中D線變化速度最慢,被稱為慢線。J值變化最快,作為輔助觀察K線與D線所發出的買賣信號,J線被稱為超快線或確認線。3條線在同一坐標上就組成了能反映價格波動趨勢的KDJ指標。

式中:Cn為第n日的收盤價;Ln為n日內的最低價;Hn為n日內的最高價;Kp、Dp為前一日的K值和D值,若無,則都用50代替。
MACD稱為異同移動平均線。由快慢2條均線的聚合與分離狀況代表市場趨勢的變化,也是股票的一項常用技術指標??焖倥c慢速的移動平均值EMA一般選擇12日與26日,由它們的離差值DIF與離差值的9日移動平均值DEA經過計算最終得到MACD。

式中:n為移動平均值的天數;C為當日收盤價;PEMA與PDEA為前一日的EMA與DEA。
主成分分析法是將多個互相關聯的原始數據通過空間坐標旋轉,不改變樣本數據結構地轉化為少量且兩兩不相關的線性組合。在最大程度地反映原始數據的信息的同時,用較少的變量取代原來較多的變量,從而實現降維,將復雜的多維問題簡單化。
提取主成分首先要將原始數據標準化,即減去對應變量的均值再除以方差,以消除量綱不同的影響。


特征值λi是各個主成分的方差。用來描述對應特征向量方向上包含的信息量,也就是特征值的大小直接反映了各個主成分的影響力。將某一特征值除以所有特征值的和的值就得到了該特征向量的方差貢獻率。為第i個主成分的貢獻率為前i個主成分的累計貢獻率。根據主成分個數的選取規則,選取的主成分要求特征值都大于1且累計貢獻率達到一個較高的百分數以上(一般為大于85%)。保證選取的主成分中包含原始數據的大部分信息。
最后計算主成分載荷值,并求得主成分得分值作為新的訓練數據。

LSTM的全稱是長期短期記憶人工神經網絡,是一種時間遞歸神經網絡,適合于處理和預測時間序列中間隔和延遲相對較長的重要事件。它是循環神經網絡的一個變種,LSTM在算法中比循環神經網絡多了一個判斷信息有用與否的細胞結構,如圖1所示。

圖1 LSTM細胞結構
LSTM在一個細胞中設置了3道門,分別是遺忘門、輸入門和輸出門。一個數據進入LSTM的網絡之后,會根據規則來判定該數據是否有用,符合算法規則的會留下,不符合的會通過遺忘門遺忘。只有符合算法認證的信息才會留下,不符的信息則通過遺忘門被遺忘。

而后輸入門會更新細胞狀態,首先通過sigmoid層確定需要更新的值,以及tanh層創建的候選值向量,兩者相乘就可以得到新的候選值。

然后將舊的細胞狀態與遺忘門定義的丟棄信息相乘,再加上新的候選值就得到了更新之后的細胞。

最后基于當前的細胞狀態,由sigmoid層確定輸出部分,將其與tanh處理后的細胞狀態相乘,得到確定輸出的值。

在LSTM模型中,模型可以選擇保留哪些內容和忘記哪些內容,以便模型分析那些與任務最相關的數據。LSTM模型還可以學習數據的更加抽象表示,以便模型學習數據更多的特征。這些特性使得LSTM模型應用于股票中時,可以更有效地分析股票走勢。
LSTM模型需要進行多次訓練,最終建立一個更優的模型。所以訓練數據不僅要足夠,而且要更加契合訓練目標,才能使模型的預測效果更加準確。為了數據具有代表性,本文中選取平安銀行000001.SZ從2002年1月21日到2018年5月18日每個開盤日共3 800個相關數據作為原始LSTM模型的建模數據,包括開盤收盤價、每日最高最低價、前收盤價、漲跌額、漲跌幅度、成交量、成交金額等。
在針對股票特性改進的S-LSTM模型中,對原始數據進行進一步處理,計算周期的未成熟隨機指標值RSV、DIF、DEA等,并將所得出的每日的KDJ、MACD等相關指標,共同作為訓練數據。
在S-LSTM模型基礎上結合主成分分析法提取出原始數據的主成分,將原始數據標準化后根據式(4)計算相關系數矩陣R,再解特征方程求得特征值與方差貢獻率如表2所示。根據方差貢獻率由大到小對變量進行排序。依照主成分選擇規則,前3個成分的特征值均大于1,且累計方差貢獻率達到了98%,故選擇前3個作為主成分。

表2 特征值及貢獻率
最后經過計算得到前3個成分的成分載荷值,如表3所示。利用式(5)得到3個主成分得分值。將主成分得分值與KDJ、MACD等相關指標,共同作為訓練數據來建立基于主成分的PCA-SLSTM模型。
在原始LSTM模型、針對股票特性改進的SLSTM模型與基于主成分的PCA-S-LSTM模型中,均采用平安銀行000001.SZ從2018年5月21日到2019年3月14日,共200 d的相關數據作為測試集。

表3 主成分載荷值
將訓練集的起止日期之間的每個工作日的相關數據作為輸入值,將第2天的收盤價格作為輸出值,通過模型來進行訓練。原始模型的輸入值為開收盤價等基礎數據,神經網絡參數設定為:輸入層維度為12,輸出層維度為1,初始化學習速率0.000 06,訓練時間步長為20,隱含層神經元為25個。
針對股票特性對模型進行改進,在基礎數據之上添加了處理計算后得到的KDJ,MACD指標共16個變量。故輸入層維度提高為16。并根據股票波動周期通常為1~2周的特點,如圖2所示,通過逐一測試改進訓練時間步長為10。

圖2 訓練時間步長測試結果曲線
針對過擬合問題,根據隱含層神經元個數的經驗公式(10),以及多次對比測試,確定隱含層神經元為14個。

式中:m為輸入層神經元數;n為輸出層神經元數;α為1~10的常數。
基于主成分的LSTM模型中,在針對股票特性改進的基礎上,結合主成分分析法,將輸入層的維度降至10,并經過反復測試后,調整隱含層神經元為7個,其他參數與原始模型保持一致。
將原始LSTM模型、針對股票特性改進的SLSTM模型與基于主成分的PCA-S-LSTM模型分別進行訓練。在將三者都訓練至loss=0.016的情況下,記錄每個模型的單次訓練時間、總誤差值、平均誤差率以及誤差的標準差。模型的性能以及誤差如表4所示??梢钥闯觯篠-LSTM模型比起原始LSTM模型改變了輸入變量以及網絡結構,減少了誤差以及訓練時間,預測效果也更加穩定。

表4 3種LSTM模型的性能及誤差
以S-LSTM模型為基礎,結合主成分分析法,在不改變輸入樣本數據結構的基礎上實現降維,直接減少了輸入層的維度與隱含層節點數,使網絡結構更加精簡。將單次訓練時間縮短了一半左右,由原本的0.171 s減至0.082 s,進一步提高了模型的學習速率。
PCA-S-LSTM模型在預測精度方面也有所提升。將S-LSTM模型預測的誤差總值由71.48到49.26下降明顯,平均誤差率由原本的3.48%減少至2.43%。而且誤差的標準差也有所減少,預測誤差的離散程度變低說明預測效果更加穩定。
模型改進前后的預測曲線如圖3~5。圖中預測曲線與真實值曲線基本擬合,能夠反映股票整體走勢。對比圖3~5可以看出:基于主成分的PCA-S-LSTM模型預測值與真實值的偏差比原始模型有所減少,曲線擬合程度更高,結果更加準確。

圖3 原始LSTM模型預測結果曲線

圖4 S-LSTM模型預測結果曲線

圖5 PCA-S-LSTM模型預測結果曲線
在忽略交易手續費的情況下,盈利率計算公式為

根據波浪理論,在預測曲線中取上漲趨勢中第2個波谷后向上突破頸線時為買入點,取下跌趨勢中第2個波峰作為賣出點。利用所取點日期的平安銀行真實收盤價進行盈利率計算,在測試集200 d中共得到9段交易,如表5所示。

表5 交易詳情以及盈利率
從盈利率可以看出階段性有盈有虧,但總體處于盈利狀態,且受整體市場影響。在股票市場興旺向上,整體走高的時候盈利率較高,大部分時候處于比銀行利率略高的水平。預測效果結合實際操作結果可以接受,模型具有一定的實用價值。
本研究使用改進后的LSTM模型對股票價格進行預測,引入股票相關技術指標,根據股票特性對模型進行調整,并利用主成分分析法提取出的主成分及計算后的數據作為新的訓練樣本集。實現了提高樣本質量,深度挖掘數據內隱含的信息,增加模型對股票的專用性以及對模型輸入數據的降維處理,消除了輸入特征的相關性,減少了LSTM神經網絡的輸入層數,在提升輸入數據精簡度的同時,也簡化了整體網絡結構。通過對比仿真結果,得出基于主成分分析的模型比原始模型預測效果更好。不僅預測精度有所提高,訓練時間也大幅縮短,提高了神經網絡的學習速率,并且使預測效果更加穩定。由于股市走勢也受外界因素及其自身的不穩定性的影響,雖然結果和真實值會有偏差,但是預測的總體趨勢一致。
本研究雖然得出了初步的結論,但還存在一些問題:
1)技術方法分析預測股價的基礎是道氏理論的3個假設,一切技術方法都是以量價關系作為研究對象。
2)股票市場復雜多變,除了相關指標數據之外,國際形勢、國家政策、行業發展以及人為干預等都是外界影響股票走勢的因素。
3)量價指標反應股市具有滯后性,模型不能及時預測突發事件。
4)模型的泛用性還有待在更多數據集上進行測試。只有繼續研究,針對各個方向對模型進行優化,才能進一步提高模型的精度與速度,實現更加準確的股票預測。