截至2017年年底,全球股市總市值逼近百萬億美元,世界上市公司總數(shù)超過4萬家[1],全球股票市場(chǎng)達(dá)到空前規(guī)模,其波動(dòng)對(duì)全球經(jīng)濟(jì)的影響是重大而深遠(yuǎn)的。雖然豐富的歷史股票信息為廣大投資者和分析者提供了數(shù)據(jù)資源,但是單單依靠分析者的個(gè)人經(jīng)驗(yàn)和直覺進(jìn)行分析與判斷,顯然不可靠且低效,因此人們需要一個(gè)智能、科學(xué)且高效的研究方法來幫助指導(dǎo)股票交易。由于金融時(shí)間序列具有非平穩(wěn)性、非線性、高噪聲的特點(diǎn),傳統(tǒng)的統(tǒng)計(jì)學(xué)模型難以對(duì)其作出較高精度的預(yù)測(cè)。 而神經(jīng)網(wǎng)絡(luò)機(jī)器學(xué)習(xí)算法以其良好的非線性逼近能力和自學(xué)自適應(yīng)等特點(diǎn),成為目前比較流行的預(yù)測(cè)手段。其中,LSTM神經(jīng)網(wǎng)絡(luò)作為一種新型可實(shí)現(xiàn)的遞歸神經(jīng)網(wǎng)絡(luò)模型,其具備選擇性記憶性以及時(shí)序內(nèi)部影響的特性極適用于股票價(jià)格時(shí)間序列這種類隨機(jī)的非平穩(wěn)序列。
在過去幾年,國外學(xué)者對(duì)于RNN神經(jīng)網(wǎng)絡(luò)以及LSTM 神經(jīng)網(wǎng)絡(luò)的運(yùn)用多為圖片識(shí)別以及人工智能,國內(nèi)科學(xué)家以及學(xué)者們更加傾向研究神經(jīng)網(wǎng)絡(luò)與其他統(tǒng)計(jì)學(xué)和計(jì)量經(jīng)濟(jì)學(xué)數(shù)學(xué)模型的結(jié)合使用,從而優(yōu)化設(shè)計(jì),得到更好的預(yù)測(cè)結(jié)果[2]。對(duì)于LSTM神經(jīng)網(wǎng)絡(luò),國內(nèi)學(xué)者也僅在近四五年將其運(yùn)用在數(shù)據(jù)挖掘的分類算法上,基于 LSTM 神經(jīng)網(wǎng)絡(luò)在這些方面的優(yōu)異表現(xiàn),文章旨在探究LSTM神經(jīng)網(wǎng)絡(luò)是否可以應(yīng)用于個(gè)股的價(jià)格趨勢(shì)預(yù)測(cè)。
LSTM(Long Short-Term Memory)是長(zhǎng)短期記憶網(wǎng)絡(luò),是一種時(shí)間遞歸神經(jīng)網(wǎng)絡(luò),適合于處理和預(yù)測(cè)時(shí)間序列中間隔和延遲相對(duì)較長(zhǎng)的重要事件。LSTM算法最早由 Sepp Hochreiter和Jurgen Schmidhuber于1997年提出,是一種特定形式的RNN(Recurrent neural network,循環(huán)神經(jīng)網(wǎng)絡(luò)),而RNN是一系列能夠處理序列數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)的總稱。本研究使用的LSTM神經(jīng)網(wǎng)絡(luò)處理股票序列的流程[2]如圖1。

圖1 LSTM層的結(jié)構(gòu)
模型假設(shè)
文章采用Python語言編程實(shí)現(xiàn)LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練和預(yù)測(cè)過程,以TensorFlow作為深度學(xué)習(xí)框架進(jìn)行訓(xùn)練,并進(jìn)行圖形擬合和誤差評(píng)估。
基于實(shí)驗(yàn)的嚴(yán)謹(jǐn)性、合理性以及準(zhǔn)確性考慮,文章選擇香港股票市場(chǎng)和美國股票市場(chǎng)個(gè)股作為研究對(duì)象。為減少單個(gè)個(gè)股被莊家控盤或主力做市的可能性以及削弱不同市場(chǎng)的相關(guān)影響,文章最終選取的基礎(chǔ)研究對(duì)象為美港股票市場(chǎng)中單個(gè)市場(chǎng)上市且市值較大的個(gè)股。
模型構(gòu)建
模型預(yù)測(cè)方式為利用前7個(gè)成交日的數(shù)據(jù)預(yù)測(cè)第8日的收盤價(jià)數(shù)據(jù)。訓(xùn)練的方式主要為取前70%的數(shù)據(jù)塊進(jìn)行訓(xùn)練,訓(xùn)練完成后再取原數(shù)據(jù)后30%的數(shù)據(jù)塊進(jìn)行滑動(dòng)順序預(yù)測(cè)。
模型結(jié)構(gòu):模型層數(shù)劃分與時(shí)間點(diǎn)一致,且每一層均有輸入輸出,輸入時(shí)可根據(jù)時(shí)序前后逐一輸入,隱藏層內(nèi)的神經(jīng)元個(gè)數(shù)與自變量個(gè)數(shù)完全一致,本實(shí)驗(yàn)中為5個(gè)自變量(參數(shù)),分別是開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)與成交量。層與層之間根據(jù)時(shí)序從前向后影響和從后向前反饋,形成整個(gè)隱藏層的自循環(huán)。模型網(wǎng)絡(luò)參數(shù)設(shè)計(jì)如下:(1)時(shí)間步數(shù):7;(2)隱藏層數(shù)目:10;(3)學(xué)習(xí)率:0.01;(4)迭代次數(shù):500。
數(shù)據(jù)獲取與處理
(一)數(shù)據(jù)獲取:文章主要研究對(duì)象為友邦保險(xiǎn)(01299.HK)、長(zhǎng)和(00001.HK)、微軟(MSFT)以及亞馬遜(AMZN)2016年11月2日至2017年11月1日的日K數(shù)據(jù)。利用Wind數(shù)據(jù)庫Excel插件下載股票的日K數(shù)據(jù),時(shí)間區(qū)間為2016年11月2日至2017年11月1日,股票屬性為日期、開盤價(jià)、收盤價(jià)、最高價(jià)、最低價(jià)以及日成交量,剔除無效日期的數(shù)據(jù),得到包括以上六個(gè)屬性的CSV文件。為了驗(yàn)證模型的有效性,文章選取了多只股票的歷史數(shù)據(jù)進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)樣本數(shù)據(jù)示例如下:

表1 友邦保險(xiǎn)股票歷史樣本數(shù)據(jù)示例
(二)數(shù)據(jù)歸一化處理:在將歷史數(shù)據(jù)帶入模型進(jìn)行訓(xùn)練前,由于數(shù)據(jù)中幾個(gè)參數(shù)的維度不同,比如成交量與價(jià)格之間數(shù)量級(jí)上的巨大差異,所以需要先對(duì)數(shù)據(jù)進(jìn)行歸一化處理。歸一化使得每個(gè)參數(shù)隨梯度下降的步長(zhǎng)與其數(shù)量級(jí)相對(duì)應(yīng),可提升模型的收斂速度及預(yù)測(cè)精度。把數(shù)據(jù)維度控制在0到1之間,歸一化函數(shù)如下:
Xnew=(Xold-min(X))/(max(X)-min(X))
而為了保證神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)與輸入數(shù)據(jù)數(shù)量級(jí)相符,對(duì)神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果的輸出也需要進(jìn)行反歸一化處理,公式為:
y(i)=yi(max(xi)-min(xi) )+min(xi)
其中,yi為神經(jīng)網(wǎng)絡(luò)輸出。
模型的訓(xùn)練效果分析

圖2 LSTM神經(jīng)網(wǎng)絡(luò)的訓(xùn)練誤差變化趨勢(shì)圖
學(xué)習(xí)率可用來限制神經(jīng)網(wǎng)絡(luò)每次更新中權(quán)重項(xiàng)修正值的大小。迭代次數(shù)是神經(jīng)網(wǎng)絡(luò)在訓(xùn)練集上訓(xùn)練同時(shí)更新權(quán)重項(xiàng)的次數(shù)。這兩個(gè)參數(shù)和訓(xùn)練集一起,都是神經(jīng)網(wǎng)絡(luò)中預(yù)測(cè)函數(shù)的輸入?yún)?shù)。在學(xué)習(xí)率為0.01的情況下,訓(xùn)練集不斷對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行迭代訓(xùn)練使神經(jīng)網(wǎng)絡(luò)的輸出誤差越來越小,直至誤差收斂于一個(gè)很小的區(qū)間。下圖為當(dāng)學(xué)習(xí)率為0.01,迭代次數(shù)為500,對(duì)改進(jìn)的LSTM神經(jīng)網(wǎng)絡(luò)模型分別輸入4只不同股票訓(xùn)練數(shù)據(jù)時(shí)訓(xùn)練誤差的收斂情況。其中橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示神經(jīng)網(wǎng)絡(luò)訓(xùn)練的誤差平方和。
綜合比較以上四圖的曲線,容易得出,在模型的訓(xùn)練過程中,當(dāng)學(xué)習(xí)率為0.01、迭代次數(shù)為500時(shí),4只不同股票的訓(xùn)練集數(shù)據(jù)對(duì)模型的訓(xùn)練均使神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)誤差快速收斂于(0,0.1)區(qū)間,且收斂的迭代次數(shù)均在100次以內(nèi)。這說明改進(jìn)的LSTM神經(jīng)網(wǎng)絡(luò)使用數(shù)據(jù)進(jìn)行訓(xùn)練時(shí)能快速收斂,并且誤差很小。模型訓(xùn)練時(shí)誤差在前100次迭代中快速減小說明改進(jìn)的LSTM神經(jīng)網(wǎng)絡(luò)具有快速性,而模型訓(xùn)練后誤差穩(wěn)定在較低水平說明模型具有穩(wěn)定性。股票市場(chǎng)在多年的發(fā)展中累積了大量的歷史交易數(shù)據(jù),數(shù)據(jù)維度眾多,價(jià)格預(yù)測(cè)難度大,模型的快速性有利于快速分析海量股票數(shù)據(jù)實(shí)現(xiàn)即時(shí)預(yù)測(cè)效果。對(duì)股票價(jià)格進(jìn)行預(yù)測(cè)會(huì)很大程度上影響投資者的未來收益,股價(jià)預(yù)測(cè)的準(zhǔn)確性對(duì)投資者有著重要意義,因而網(wǎng)絡(luò)模型的穩(wěn)定性也是模型適用于股價(jià)預(yù)測(cè)的一大特點(diǎn)。
預(yù)測(cè)結(jié)果圖形擬合對(duì)比分析
模型預(yù)測(cè)結(jié)果擬合成圖形如下(如圖例所示,藍(lán)色曲線為預(yù)測(cè)值,紅色曲線為真實(shí)值,橫坐標(biāo)為時(shí)間,縱坐標(biāo)為股票價(jià)格):

圖3 LSTM神經(jīng)網(wǎng)絡(luò)股票收盤價(jià)趨勢(shì)預(yù)測(cè)(2017.7.19-2017.11.1)
觀察以上四個(gè)擬合圖的曲線,將預(yù)測(cè)結(jié)果與實(shí)際結(jié)果進(jìn)行比較,不難看出:雖然部分仿真輸出與真實(shí)輸出比較存在一定程度的時(shí)間滯后性,模型對(duì)四只港股價(jià)格的仿真輸出與真實(shí)輸出在總體趨勢(shì)上基本一致。限于所給精度要求和訓(xùn)練樣本個(gè)數(shù),存在一定預(yù)測(cè)誤差是在所難免的,模型預(yù)測(cè)結(jié)果擬合曲線表明LSTM神經(jīng)網(wǎng)絡(luò)對(duì)友邦保險(xiǎn)、長(zhǎng)和、微軟以及亞馬遜四只美港股票市場(chǎng)個(gè)股的價(jià)格趨勢(shì)預(yù)測(cè)還是比較準(zhǔn)確的。
從單只股票的預(yù)測(cè)價(jià)格和真實(shí)價(jià)格對(duì)比來看,微軟的預(yù)測(cè)效果是四個(gè)仿真預(yù)測(cè)實(shí)驗(yàn)中最好的,而友邦保險(xiǎn)和亞馬遜的預(yù)測(cè)值與真實(shí)值的偏差程度較大,預(yù)測(cè)效果略遜一籌。這說明模型對(duì)不同個(gè)股的預(yù)測(cè)效果不同,個(gè)股預(yù)測(cè)效果優(yōu)劣不僅與股票市場(chǎng)因素有關(guān),也與個(gè)股自身因素相關(guān)。
模型預(yù)測(cè)精度分析
文章采用均方根誤差(RMSE)對(duì)預(yù)測(cè)結(jié)果進(jìn)行評(píng)價(jià)。均方根誤差也稱為標(biāo)準(zhǔn)誤差,是觀測(cè)值與真實(shí)值的誤差平方根的均值。在實(shí)際測(cè)量中,觀測(cè)次數(shù)總是有限的,真實(shí)值只能用最可信賴(最佳)值來代替,而方根誤差對(duì)一組測(cè)量中的特大或特小誤差反映非常敏感,所以,均方根誤差能夠很好地反映出測(cè)量的精密度。RMSE計(jì)算公式如下,其中Yi為神經(jīng)網(wǎng)絡(luò)輸出值,Y為真實(shí)值。
當(dāng)對(duì)某一個(gè)變量進(jìn)行多次測(cè)量時(shí),RMSE反映了測(cè)量數(shù)據(jù)偏離真實(shí)值的程度,RMSE越小,表示測(cè)量精度越高。下表為模型對(duì)4只港股進(jìn)行預(yù)測(cè)時(shí)的RMSE數(shù)據(jù)。

表2 模型對(duì)個(gè)股價(jià)格預(yù)測(cè)的均方根誤差對(duì)比表
從表2中可以看到,模型預(yù)測(cè)亞馬遜的RMSE為0.051609,較其他3只股票的預(yù)測(cè)RMSE大,其預(yù)測(cè)值與真實(shí)值擬合圖形的分散程度較大,而模型預(yù)測(cè)微軟的RMSE為0.033077,較其他3只股票的預(yù)測(cè)RMSE小,其預(yù)測(cè)值與真實(shí)值擬合圖形的分散程度較小,預(yù)測(cè)精度最高。模型對(duì)友邦保險(xiǎn)、長(zhǎng)和、微軟以及亞馬遜4只個(gè)股價(jià)格趨勢(shì)預(yù)測(cè)的RMSE均處于(0,0.1)的區(qū)間內(nèi),說明模型對(duì)于大市值港股價(jià)格的預(yù)測(cè)精度很高,預(yù)測(cè)結(jié)果顯著。
實(shí)驗(yàn)利用LSTM對(duì)股票市場(chǎng)預(yù)測(cè)進(jìn)行建模,用訓(xùn)練好的模型來進(jìn)行股票預(yù)測(cè),選取代表性個(gè)股的股票數(shù)據(jù)為例,對(duì)其進(jìn)行預(yù)測(cè),用實(shí)例證明了LSTM神經(jīng)網(wǎng)絡(luò)通過學(xué)習(xí)和訓(xùn)練,能擬合股票數(shù)據(jù)做出預(yù)測(cè),并取得了較好的效果。
然而文章選取的研究數(shù)據(jù)量有限,研究結(jié)果難以代表整個(gè)股票市場(chǎng)的預(yù)測(cè)應(yīng)用效果。另外,文章只討論了LSTM神經(jīng)網(wǎng)絡(luò)在美港股市中的預(yù)測(cè)適用性,并未對(duì)模型適用性差的情況作出進(jìn)一步改進(jìn)。該研究課題還有很大的可研究空間。