嚴冬梅,李 斌
天津財經大學 理工學院,天津 300222
隨著我國經濟的高速發(fā)展,人們投資理財的意識不斷提高。股票作為一種操作便捷、高風險、高收益的投資標的,深受廣大投資者關注。影響股票價格走勢的因素很多,例如數據體量大、難以量化。傳統(tǒng)的股票預測方法以計量經濟學為主。20 世紀80 年代,隨著玻爾茲曼機和反向傳播(backpropagation,BP)算法[1]的出現解決了多層網絡的訓練問題,神經網絡逐漸走進了研究人員的視野。文獻[2-4]等學者將BP神經網絡用于股市建模與決策,證明了BP 神經網絡對股票預測存在實用性價值。
近年來隨著循環(huán)神經網絡在解決時間序列問題上展現出的獨特優(yōu)勢,不少專家學者利用長短期記憶(long short-term memory,LSTM)人工神經網絡、門控循環(huán)單元(gated recurrent unit,GRU)等循環(huán)神經網絡及其變體進行股票預測,取得了不錯的效果。文獻[5]論述了使用BP 神經網絡進行股票預測存在的諸多不合理性,創(chuàng)新性地將LSTM 網絡用在股票這種金融時間序列的預測研究上。雖然只是對LSTM模型進行參數優(yōu)化,未涉及模型上的改進創(chuàng)新,但是通過實驗對比仍舊驗證了LSTM模型在股票預測上比BP網絡模型更加精準。文獻[6]以美股中微軟等有代表性的股票作為研究對象,利用LSTM網絡進行預測,結果表明LSTM模型在美股預測中可以保持較高的預測精度。文獻[7]提出了一種基于主成分分析的LSTM模型對股票進行預測,將行情數據與技術面數據結合在一起通過主成分分析對數據進行降維,再通過LSTM 模型對股票數據進行預測,與傳統(tǒng)的LSTM相比大大降低了預測誤差,并且減少了運行時間。文獻[8]等以LSTM模型為主體,以一定序列長度的數據作為一個測試集,通過這個測試集去預測下一個點的收盤價;再把這個點的收盤價加入到測試集中,循環(huán)往復,證明了周數據相較于日數據在預測中得到的準確率更高。
注意力機制首先被應用于圖形圖像領域,由于其優(yōu)秀的性能表現,逐漸被應用到自然語言處理等領域。對于股票等金融時間序列,注意力機制也逐漸被廣大學者所應用。文獻[9]提出了基于改進自注意力(selfattention)的股價趨勢預測模型,分別對日線數據和分時線數據進行編碼和融合,學習資金流變化對股票變化趨勢的影響,大幅度提升了股票預測的準確率。文獻[10]提出了一個基于自注意力的LSTM-CNN股票走勢預測模型,將LSTM-CNN模型與自注意力機制相結合,通過實驗證明了此模型具有出色的泛化性。文獻[11]提出了基于attention 機制的GRU 股票預測模型,將GRU 模型與attention機制相結合進行預測,通過注意力機制對時間維度的重要特征進行捕捉,相較于沒有添加注意力機制的GRU模型,實驗效果有明顯的提升。文獻[12]在結合注意力機制的GRU模型的基礎上結合了經驗模態(tài)分解使得實驗效果進一步提升。
與此同時,隨著對深度神經網絡的研究進一步深入,許多優(yōu)秀的神經網絡模型不斷被提出。2014 年,Goodfellow 等[13]在神經信息處理系統(tǒng)大會(NIPS)發(fā)表論文Generative Adversative Nets,第一次正式提出生成式對抗神經網絡(generative adversarial network,GAN)[13]。生成式對抗神經網絡優(yōu)秀的表現,吸引越來越多的學者對其進行研究探索,出現了許多基于對抗神經網絡的改進模型,在圖像處理等眾多領域取得了杰出的成果。
文獻[14]對Goodfellow 等[13]提出的GAN 模型做了變化,提出了一種條件型生成式對抗網絡(conditional generative adversarial network,cGAN)。cGAN 相較于GAN 最大的優(yōu)勢在于在引入了條件這一概念,通過對生成器和判別器添加約束條件的方式使得訓練自由度降低。約束條件可以為一個標簽、一個圖片等,這個標簽或者圖片作為一個條件變量對生成器生成的數據進行指導。文獻[14]通過添加約束變量的方式將無監(jiān)督學習的GAN 網絡轉變?yōu)橛斜O(jiān)督學習的cGAN 網絡。cGAN 的出現使得GAN 網絡可以應用于監(jiān)督學習,為GAN 網絡的進一步研究奠定了基礎。文獻[15]提出了深度卷積生成式對抗網絡(deep convolutional generative adversarial network,DCGAN),首次將卷積神經網絡(CNN)與GAN 相結合,將CNN 應用于GAN 的生成器和判別器中。DCGAN 在圖像領域取得了優(yōu)秀的實驗效果。
考慮GAN 模型的優(yōu)秀性能及其可以處理時間序列問題,本文以GAN模型作為基礎模型,提出了自注意力殘差生成式對抗網絡模型(self-attention and resnet generative adversarial network,SAR-GAN)對股票價格進行預測。該模型的生成器(generator)由長短期記憶網絡(LSTM)層、自注意力機制層、殘差層等構建而成,判別器(discriminator)由全連接網絡構建而成,并且在模型中加入L2正則項防止訓練過程中出現過擬合的情況。
實驗方面,選取上證指數(SSEC)及多個股票市場中熱點行業(yè)的龍頭股票數據,將SAR-GAN模型進行預測的結果與其他模型的預測結果相對比。實驗結果表明:相較于選取單一市場股票數據訓練出來的模型,SAR-GAN模型的預測誤差更小,泛化性更強,可適用于不同股票市場股票價格的預測。
生成式對抗神經網絡是由Goodfellow 等[13]在2014年正式提出的。GAN 是一個生成式模型,由生成器和判別器兩個部分組成。GAN符合博弈論中的零和博弈理論,在圖形圖像領域中有著廣泛應用。
判別式模型是以條件概率分布為基礎的模型,是通過樣本的屬性X的特征來判斷樣本所屬的類別Y。通俗地講,如果要確定一幅圖片中的孩子是男孩還是女孩,判別式模型就是通過大量的男孩女孩的圖片來學習男孩女孩不同的特征,再根據這幅圖片中的孩子的特征來判斷圖片中的孩子是男孩還是女孩。
生成式模型是以聯合概率分布為基礎的模型,目的是得到屬性為X并且類別為Y的聯合概率分布。同樣要確定一幅圖片中的孩子是男孩還是女孩,其方法與判別式模型是不同的。首先根據男孩的特征學習出一個男孩的模型,根據女孩的特征學習出一個女孩的模型;再從圖片中提取出孩子的特征,放在男孩模型中得到孩子是男孩的概率,放在女孩模型中得到孩子是女孩的概率;最后通過對比兩個概率大小就可以判斷出圖片中的孩子是男孩還是女孩。
1.2.1 生成器
生成器(generator,用G 表示),通過學習樣本的真實分布,輸出一個根據真實分布生成的生成分布數據,其結構如圖1所示。假設已知某種分布,首先,從該分布pz(?)中采樣得到隱藏變量z,然后依據參數化的pg(x|z)分布,由生成器獲得生成樣本x~pg(x|z)。
圖1 生成網絡結構圖Fig.1 Generating network structure diagram
對于所輸入的符合某種真實分布的數據樣本,生成器能夠通過多層感知機或者深度神經網絡生成所期望數據分布的生成數據。
1.2.2 判別器
判別器(discriminator,用D表示),用來區(qū)分由生成器生成的生成數據與真實數據。判別器D 的輸出范圍為[0~1],當判別器D 的輸出為0 時,判別器D 判斷生成的數據為生成器生成的數據;當判別器D 的輸出為1時,判別器D判斷生成的數據為真實數據。
判別網絡結構如圖2 所示。判別器D 接受從生成器產生的生成數據xf~pg(x|z),同時接受從數據集中采樣出的真實數據xr~pr(?),判別器D 通過xf與xr共同作為訓練集進行訓練,將所有的生成樣本標記為假,將所有的真實樣本標記為真。判別器D 通過最小化預測值與標簽的誤差值進行參數優(yōu)化,輸出判斷該樣本為真實樣本的概率P。
圖2 判別網絡結構圖Fig.2 Discriminant network structure diagram
在生成式對抗網絡中生成器和判別器是緊密關聯的,兩者符合零和博弈理論。假設甲乙雙方進行博弈,甲乙的收益和損失之和為零,也就意味著雙方不可能都獲得收益,必定有一方有收益,一方有虧損。一方若想取得最大收益則需要最小化對方的最大收益,從而引出了價值函數value function(簡稱V),其計算方法見公式(1):
生成器與判別器是一種對抗的關系,價值函數代表了判別器的判別性能。判別器的目標是最大化價值函數,而生成器的目的是針對特定的判別器最小化價值函數。
生成式對抗網絡基于零和博弈原理,可以把生成器比作假鈔制作器,判別器作為驗鈔機去鑒別一張紙幣是真幣還是假幣。假鈔制作器制作出的假鈔不斷地被送到驗鈔機中鑒別,在這個過程中假鈔制作器和驗鈔機不斷地對抗博弈,兩者的能力也都在不斷提升,直到驗鈔機分辨不出制作出的是假鈔還是真鈔。
基于上述特性,生成式對抗網絡GAN 在圖形圖像領域應用廣泛。隨著對GAN 網絡的進一步研究,文獻[16]發(fā)現在時間序列預測問題上GAN 同樣能發(fā)揮出優(yōu)勢,在2019年提出了(forecasting of sensory data with generative adversarial network,ForGAN)網絡。這是首次將時間序列預測問題與GAN 網絡結合起來,通過交通流數據集驗證了GAN的可行性,打開了利用GAN處理時間序列預測問題的大門。
股票市場的技術分析理論具有三大假設,其中重要的一條就是股票的歷史走勢會重演。這就表示股票的走勢并不是完全隨機的,過去的走勢有一定概率會重新出現。在預測任務中股票走勢的歷史數據分布就顯得尤為重要了,而深度學習模型就是要學習歷史走勢的分布。GAN模型可以通過生成器與判別器不斷地對抗學習股票歷史走勢的數據分布,生成和歷史分布相似的預測數據,提高預測的精度。
2.1.1 LSTM神經網絡
循環(huán)神經網絡(recurrent neural network,RNN)善于處理序列數據。因其具有共享參數以及記憶性的特點,在文本處理、語音識別、時間序列預測等領域被廣泛應用。RNN的結構如圖3所示。
圖3 循環(huán)神經網絡結構圖Fig.3 Structure diagram of recurrent neural network
在圖3中,U、V、W代表權重矩陣,t代表不同時刻,xt-1、xt、xt+1分別為在t-1、t、t+1 時刻的RNN的輸入向量,st-1、st、st+1為各個隱藏層的隱藏狀態(tài),ot-1、ot、ot+1為RNN的輸出向量。RNN適用于處理序列問題的原因在于:RNN 的當前隱藏層狀態(tài)st不僅與當前時刻的輸入向量xt相關,還與前一時刻的隱藏層狀態(tài)st-1有關。隱藏層狀態(tài)st和RNN的輸出ot可以具體地表示為公式(4)和(5):
這表明RNN是一種可以記憶之前狀態(tài)的神經網絡。雖然RNN 可以記憶之前的狀態(tài),但是會存在長距離依賴問題。
LSTM是一種改進的循環(huán)神經網絡,在RNN的基礎上增加了一個狀態(tài)向量以及3個門控單元,分別為輸入門(input gate)、遺忘門(forget gate)和輸出門(output gate)。LSTM 網絡神經元的結構如圖4 所示,c為LSTM內部狀態(tài)向量,h是LSTM神經元的輸出向量,x為LSTM 神經元的輸入向量。σ為激活函數,在LSTM神經元中一般為Sigmoid 函數,將Sigmoid 函數的輸出控制在0到1之間,可以達到控制輸出流量的目的。
圖4 LSTM神經元結構圖Fig.4 LSTM neuron structure diagram
ft表示遺忘門,用來控制當前神經元需要遺忘的信息,具體表達式為公式(6),其中Wf為矩陣向量,bf為偏移量。it表示輸入門,c?t表示新的候選向量。tanh為激活函數,使得c?t的輸出為標準范圍[?1,1]。當前時刻的內部狀態(tài)向量ct是由遺忘的前一狀態(tài)的信息和當前狀態(tài)的部分信息組合而成的。ot表示輸出門,由于LSTM神經元的輸出需要進行選擇而不是全部輸出,所以ht不能直接輸出。it、c?t、ct、ot、ht具體表達式見公式(7)至公式(11):
正是由于3 個門控單元以及兩個狀態(tài)量的神經元結構特點,LSTM 相較于RNN 可以記憶長時間的信息,避免了由此引起的梯度消失或者梯度爆炸的問題。在本文提出的SAR-GAN 中,生成器以LSTM 為主體網絡層正是參考了LSTM具有長期記憶的特點。
2.1.2 一維卷積神經網絡
一維卷積神經網絡與二維卷積神經網絡不同。一維卷積只在一個維度上進行卷積操作,所以適用于序列模型,例如時間序列預測、自然語言處理等。在股票預測中,一維卷積結構示意圖見圖5,每一行代表一個時間維度,每一列代表一個特征。通過一維卷積可以提取股票序列數據的特征。
圖5 一維卷積示意圖Fig.5 One-dimensional convolution diagram
2.1.3 注意力機制
注意力機制(attention mechanism)源自于人腦的注意力機制。當人觀察一個場景時,雖然整個場景可以進入人的視野,但是人腦會快速地將目光聚焦在重點關注的區(qū)域。這就相當于將場景中每一個區(qū)域賦予一個注意力權重,其中重點關注的區(qū)域注意力權重較高,人可以快速忽略不重要的信息,將關注點聚焦在重要區(qū)域。
注意力機制學習輸入序列中的每一個輸入元素對目標元素的重要程度,根據重要程度的不同對不同的特征賦予不同的權重。若在神經網絡之前使用,可以對輸入特征空間的重要性進一步理解;若在神經網絡之后使用,可以使模型的最終決策更加聚焦在對最終目標有正向幫助的特征維度上。
自注意力機制(self-attention)是在注意力機制的原理上的進一步優(yōu)化,本質還是加權求和的思想,見公式(12):
其中,Q、K、V分別為輸入張量與3 個權重共享矩陣WQ、WK、WV進行相乘操作得到的向量合并之后的矩陣。Q為查詢矩陣,K為鍵矩陣,V為值矩陣。KT為K矩陣的轉置矩陣,dk矩陣的作用是調整內積維度。自注意力機制在加權求和的思想上對權重進行自我學習。通過Q?KT的運算得到權重分數(attention score),反映了向量之間的相關性,相當于一個“打分”的過程。Softmax 激活函數將這些權重分數進行歸一化,并且使這些權重分數之和為1。通過Softmax之后可以得到哪些時刻哪些位置關注度較大,將經過Softmax 函數的值與V矩陣進行矩陣按位相乘,得到注意力矩陣。這樣增強了相關性強的位置特征,削弱了相關性弱的位置特征,使得模型能更好地關注重要信息。
近年來,在圖像處理、自然語言處理等領域,結合注意力機制的模型被廣泛應用。文獻[17]首次在機器翻譯的任務中采用注意力機制并取得了不錯的效果。文獻[18]在CVPR2017中提出了一種循環(huán)注意力卷積神經網絡(RA-CNN),通過注意力機制對圖像的局部進行關注,在鳥類識別的樣本上取得了良好的效果。
2.1.4 殘差網絡
殘差網絡(resnet)通過在卷積層之間的跳躍連接避免了深度模型梯度消失的問題。如圖6所示,輸入x通過兩個卷積層得到F(x),并將F(x)與輸入的x進行相加運算得到H(x)。這里F(x)與x的形狀完全一致,若不一致則需要通過函數identity將x的形狀變換成F(x)的形狀。函數identity 以1×1 的卷積運算為主,主要用于調整輸入的形狀。由于神經網絡需要學習F(x)=H(x)-x,所以被稱為殘差網絡。
圖6 殘差網絡結構Fig.6 Resnet structure
2.1.5 L2正則項
L2正則化又稱為ridge regression,主要用于避免過擬合。L1 正則化是各個參數的絕對值之和,L2 正則化與之不同,表示的是各個參數平方值的和的開方。L2正則化是使每個參數都變小接近于0 但不為0,最終避免過擬合問題。
2.1.6 生成模型結構
生成模型的結構較為復雜,由多種神經網絡層交替組成。生成器結構如圖7所示。
圖7 生成器結構圖Fig.7 Generator structure diagram
由于神經網絡的輸入必須為三維數據,所以首先將二維股票數據進行數據預處理,通過設置時間窗口的方法設置時間步長,將股票數據擴展為三維數據張量,即數量(samples)、時間步長(timesteps)、特征維度(features),以適合神經網絡的輸入。
第一層為LSTM 層:將輸入的三位股票數據輸入LSTM神經網絡層。股票價格預測屬于時間序列預測,并且訓練集為多年的股票數據。針對這種長時間跨度的序列,使用LSTM網絡既可以處理長期的股票歷史信息又可以避免梯度爆炸的情況。
第二層為自注意力self-attention 層:將從LSTM 提取到的時序特征信息即不同時間維度股票特征信息張量,輸入到自注意力網絡。self-attention 計算出兩個不同日期之間股票特征的相關度,并且計算出向量之間的注意力得分(attention score),通過softmax 函數得出學習到的權重,最終形成注意力矩陣。
第三層為殘差網絡層:殘差網絡層在設計上采用了兩個一維卷積和跳躍連接模塊,用以解決深度網絡訓練過程中梯度消失的問題。
在第三層和第四層之間添加一個dropout 層,參數值為0.1,以防止訓練過程中出現的過擬合問題。
第四層包含一個一維卷積網絡和一個一維最大值池化,目的是在保留最強的特征和拋棄較弱的特征,減少模型參數,減少過擬合問題的出現。
第五層包含一個LSTM 網絡層、一個dropout 層和一個全連接網絡層。數據張量通過全連接網絡得到最終的輸出。
如圖8 所示,判別器由兩個全連接網絡以及一個LeakyReLU激活函數組成,用以鑒別生成的股票數據是否能欺騙過判別器。
圖8 判別器結構圖Fig.8 Discriminator structure diagram
在圖8中,Xt+1_prediction為生成器生成的第t+1 天的股票價格,Xt+1_real為從數據集中采樣出的真實的第t+1 天的股票數據。GAN就是將第t+1 天的預測股票收盤價Xt+1_prediction不斷逼近第t+1 天的真實股票收盤價Xt+1_real。通過對抗學習使得生成器的生成能力和判別器的鑒別能力不斷提升,最終判別器將無法區(qū)分預測收盤價格和真實收盤價格,將生成收盤價格誤認為是真實價格。
與其他時間序列模型RNN、LSTM相比,SAR-GAN的生成器和判別器構建更加靈活多樣。在生成器中加入LSTM層能夠提取股票數據的時間序列方面的特征,1DCNN 層又能夠提取股票數據的局部空間特征,將LSTM和1DCNN結合可以提取得到股價數據的時空特征;在借助殘差網絡避免梯度消失的基礎上,通過注意力機制選取對股價預測具有正向幫助的特征維度,從而提升股價走勢預測效果。
本文提出的SAR-GAN 模型由生成器和判別器兩個部分組成。生成器主要由以由LSTM層、self-attention層、殘差層以及一維卷積層組成;判別器由全連接層組成。SAR-GAN網絡模型具體結構示意圖如圖9所示。
圖9 SAR-GAN網絡結構Fig.9 SAR-GAN network architecture
在圖9 中,首先將股票數據進行數據預處理,得到三維股票數據張量作為生成器的輸入。數據經過生成器得到預測的股票收盤價格,并與當日的真實股票數據一起作為輸入送入判別器中進行判斷。
使用SAR-GAN 網絡模型訓練時,第一步固定生成器G,對判別器D 進行訓練,使得判別器D 獲得鑒別真實數據和虛假數據的能力;第二步固定判別器D,訓練生成器G,以便生成器G 產生的數據不斷逼近真實數據。以上兩個步驟多次循環(huán)執(zhí)行,直至生成器生成的預測數據可以欺騙判別器。
3.1.1 數據來源
為了保證數據來源的準確性,實驗數據全部來源于Yahoo財經。為了驗證模型的普適性,分別對股票指數和多個股票價格進行預測。股指數據選擇上海證券交易所綜合指數(SSEC),數據時間范圍從2009年1月1日至2020 年12 月31 日。股票數據選取多個票市場中熱點行業(yè)的龍頭股票,數據時間范圍從2009年1月1日至2020年12月31日。
3.1.2 利用特征工程選取重要參數
在構建股票數據集的時候,如果僅僅將每天的開盤價(open)、最高價(high)、最低價(low)、收盤價(close)、交易量(volume)這些行情指標作為特征去進行深度學習訓練過于表面化,反映不出股票價格波動的實質。股票價格預測應該建立在對市場行為深刻認識的基礎上。
在構建股票數據集的時候,將行情數據與技術指標相結合,并通過特征工程的特征重要性以及Pearson、Spearman相關性分析。最終得到由18個特征構成的數據集,分別為開盤價(open)、最高價(high)、最低價(low)、相對強弱指標(RSI)、隨機指標K、隨機指標D、隨機指標J、指數移動平均值(EMA)、三重指數移動平均線(TEMA)、雙移動平均線(DEMA)、考夫曼自適應移動平均線(KAMA)、5 日均線(MA5)、10 日均線(MA10)、加權移動平均線(WMA)、中間價格(MIDPRICE)、資金流量指標(MFI)、布林線(M_line)、收盤價(close)。
在股票數據中,開盤價、最高價、最低價、成交量等價格與技術指標具有不同的量綱和量綱單位。這樣未經處理的數據輸入到神經網絡會對預測造成重要干擾。為了消除量綱不同造成的影響,本文采用Sklearn庫中的MinMaxScaler 函數進行數據歸一化處理,使得價格因子與交易量因子指標處于同一個數量級。數據歸一化公式見公式(13):
其中,x為原始數據,xstd為調整后的數據,xmin為原始數據中的最小值,xmax為原始數據中的最大值。
由于股票數據是結構化數據,屬于2D 數據,不適用于神經網絡的訓練,所以需要增加維度使得股票數據上升為3D數據。本次實驗采用滑動窗口的方法來實現股票數據升維,即第一維表示樣本數(samples),第二維表示時間步長(time_steps),第三維表示股票的特征(features)如開盤價、收盤價等。
經過預處理后數據按照時間順序分成訓練集和測試集,其中前75%的數據作為訓練集用來訓練模型,后25%的數據作為測試集對模型預測效果進行評估??偣? 826個交易日,其中75%的訓練集為2 120個交易日數據,25%的測試集為706個交易日數據。
為了評估模型的預測性能,采用均方根誤差(RMSE)、平均絕對誤差(MAE)、均方根百分比誤差(RMSPE)和平均絕對百分比誤差(MAPE)4 種回歸評價指標來量化模型的性能,4種指標的計算公式見公式(14)~(17):
其中,m為樣本數,yi為真實值,y?i為預測值,yˉ為真實值的平均值。RMSE、MAE越小說明預測值越接近真實值,RMSPE和MAPE消除了股票絕對價格的影響,更能反映預測準確性,值越小說明預測越準確。
實驗機器的操作系統(tǒng)為Windows10,CPU 為AMD R7 5800H,顯卡為RTX3070-8 GB,代碼采用Python 語言編寫,主要使用的框架為Tensorflow2.0 集成的Keras框架。
本次實驗采用單步預測,將股票數據(t?1)時間序列的價格用于預測當前時間(t)的股票價格,這是一個持續(xù)滾動的過程。
在模型參數設置方面,通過進行多次實驗最終確定以下參數:LSTM 單元數設置為64,一維卷積核長度為4,自注意力頭數為4,L2正則化參數為0.017,batch_size設置為64,timesteps 設置為1;生成器、判別器的優(yōu)化器均采用Adam 優(yōu)化器,損失函數設置為平均絕對誤差MAE,學習率(learn_rate)為0.000 1,dropout 參數設置為0.1。
3.5.1 上證指數預測實驗
上證指數是上證綜合指數的簡稱,是以上證所掛牌上市的全部股票為計算范圍,以發(fā)行量為權數的加權綜合股價指數。本實驗采用SAGAN模型對上證指數收盤價進行預測,并將實驗結果與LSTM、GRU、CNN-LSTM、CNN-GRU、Basic GAN等模型進行對比(Basic GAN是指生成器由LSTM 網絡構成,生成器以CNN 網絡構成的基礎GAN網絡)。為了消除實驗的偶然性,進行多次實驗求其平均值。具體實驗結果如表1所示。
表1 不同模型在SSEC測試集的預測性能Table 1 Prediction performance of different models in SSEC test set
由表1 可知,SAR-GAN 模型在股票收盤價格預測上體現出獨特優(yōu)勢。Basic GAN 相較于LSTM、GRU、CNN-LSTM、CNN-GRU網絡,在預測準確度上有明顯的優(yōu)勢。本文提出的SAR-GAN與Basic GAN相比,RMSE、MAE、RMSPE、MAPE 這4 個評價指標更小。實驗結果表明:在股票指數收盤價格預測中,SAR-GAN模型的預測效果更好,更接近真實值,預測誤差更小。
如圖10為SSEC數據集收盤價格預測結果,其中的圖(a)、(b)、(c)、(d)、(e)、(f)分別是使用LSTM、GRU、CNN-LSTM、CNN-GRU、Basic GAN 以及SAR-GAN模型的股票收盤價格預測走勢結果圖。如圖11 是同一次實驗選取局部30天幾種模型預測的收盤價格走勢的比較,能夠更加直觀地顯示出SAR-GAN模型的預測效果優(yōu)于LSTM、GRU、CNN-LSTM、CNN-GRU 模型,以及同樣為生成式對抗網絡的Basic GAN模型。
圖10 6種模型對SSEC測試集預測結果Fig.10 Six models predict results for SSEC test set
圖11 SSEC測試集局部30天收盤價預測對比圖Fig.11 Comparison diagram of SSEC test set partial 30-day closing price forecast
3.5.2 個股預測實驗
實驗選取了現階段熱點行業(yè)(消費、科技、醫(yī)療)中的龍頭股票,包括美股中的蘋果(AAPL)、亞馬遜(AMZN)、深圳證券交易所中小板的紫光國微(002049)、港股中的騰訊(0700.HK)、上海證券交易所的貴州茅臺(600519)、中國平安(601318)等股票,數據時間范圍從2009年1月1日至2020年12月31日。雖然不同市場的實際交易日會有所不同,但是都將前75%為訓練集,后25%為測試集。表2中展示了使用LSTM、GRU、CNN-LSTM、CNNGRU、Basic GAN 模型以及SAR-GAN 模型對這6 只不同市場股票的收盤價預測結果。
表2 中加黑的數據表示在此數據集下最優(yōu)的測試結果,加下劃線的數據表示第二優(yōu)秀的測試結果。從表中可以看出:在金融時間序列股票預測方面,SAR-GAN模型在6 個不同市場不同熱點行業(yè)的股票收盤價預測中均有優(yōu)秀的表現。經過多次實驗,在6只股票測試集上SAR-GAN 模型測試效果除了在貴州茅臺數據集上的RMSE 指標略低于CNN-GRU 模型,在其他5 只股票上均優(yōu)于LSTM、GRU、CNN-GRU、CNN-LSTM、Basic GAN模型,實驗結果反映出SAR-GAN模型可以適用于多個市場的股票價格預測。
表2 不同模型在6只股票測試集的預測性能Table 2 Predictive performance of different models in six stock test sets
如圖12 展示了這6 只股票測試集上測試效果最好的兩個模型局部50 天預測結果對比展示,若效果僅次于最好模型的模型多于一個,則一起對比展示。
圖12 個股測試集局部預測對比Fig.12 Comparison of stock test sets local forecast
本文提出的SAR-GAN 模型,以生成式對抗網絡為基礎,結合自注意力機制、殘差網絡、一維卷積等網絡層對股票價格進行預測。通過實驗可以看出,無論是在股指預測還是在個股預測上,SAR-GAN 模型的預測效果均好于其他基礎模型。
下一步可以在多個方面繼續(xù)進行研究:在數據特征選取方面,可以繼續(xù)深入研究與股票價格變化相關的金融數據指標;在時間步長方面,可以選取不同的時間步長,研究時間步長對實驗的影響;可以在預測模型中加入關于財經新聞、股評分析等相關情感分析數據,進一步提升模型的預測性能。