陳詩樂, 王 笑, 周昌軍
(浙江師范大學 a.數(shù)學與計算機科學學院; b.行知學院, 浙江 金華 321000)
股票預測一直是社會關(guān)注的熱點,對于投資者而言,對股票價格進行準確預測有利于對未來利潤的獲取和對風險的規(guī)避.學者們致力于研究股票價格的變化規(guī)律,提出了一些有效的股票預測方法,并獲得了一定的成果.這些股票預測方法按先后發(fā)展順序可劃分為基于傳統(tǒng)時序建模方法、基于機器學習方法和基于深度學習方法.
基于傳統(tǒng)時序建模方法主要依靠統(tǒng)計學理論,建立股票特征與股票價格之間的線性模型,包括早期的移動平均法、指數(shù)平均法和后來的自回歸模型(AR)、滑動平均模型(MA)以及差分整合移動平均自回歸模型(ARIMA).這類方法對數(shù)據(jù)分布規(guī)則和完整性等方面要求非常嚴格,并且認為引起股票價格變化的因素間僅存在線性關(guān)系.然而事實證明,股票價格變化往往與其影響因素之間存在復雜的非線性關(guān)系,這也導致了傳統(tǒng)時序建模方法最終預測結(jié)果精度不理想.基于機器學習方法,研究人員使用隨機森林算法、xgboost算法和支持向量機算法等進行股票預測均取得了比ARIMA模型更好的效果,因為這些經(jīng)典的機器學習算法均能夠模擬股票特征與價格間復雜的非線性關(guān)系.本世紀初以來,隨著計算機性能的提升和神經(jīng)網(wǎng)絡建模的日趨成熟,深度學習技術(shù)在特征抽取和構(gòu)建復雜非線性模型上取得了巨大發(fā)展,研究人員運用深度神經(jīng)網(wǎng)絡(DNN)、卷積神經(jīng)網(wǎng)絡(CNN)以及長短期記憶神經(jīng)網(wǎng)絡(LSTM)等深度學習網(wǎng)絡解決股票預測問題,取得了較好的效果,這也導致了深度學習理論在股票領域的相關(guān)研究越來越多.
早期股票預測方法主要是基于統(tǒng)計學和經(jīng)濟學理論對股票價格進行分析,選取較為單一的股票特征數(shù)據(jù)進行股票預測,比較常用的有自回歸模型(AR)、移動平均自回歸模型(ARMA)及差分整合移動平均自回歸模型(ARIMA)等.基于統(tǒng)計學的自回歸模型,因其特征單一,在計算效率上有一定優(yōu)勢,但模型過于簡單且輸入維度低,限制了其對非線性非平穩(wěn)金融時序序列的建模能力,以及對異常數(shù)據(jù)的抗干擾能力.
隨著計算機技術(shù)的發(fā)展,研究人員逐漸開始將機器學習技術(shù)應用于股票預測問題當中,金融市場多年來累積的海量股票數(shù)據(jù)也為機器學習提供了充足的數(shù)據(jù)基礎.Cao等[1]考慮金融時間序列的非平穩(wěn)性,建立了能夠自適應優(yōu)化參數(shù)的支持向量機預測模型.仿真結(jié)果表明,該模型能夠降低陷入局部最優(yōu)問題的可能性并提高模型泛化能力.Nair等[2]提出了一種基于粗糙集的決策樹系統(tǒng),該方法以孟買證券交易所數(shù)據(jù)進行實驗研究,使用C4.5決策樹和粗糙集進行特征提取和規(guī)則總結(jié).實驗結(jié)果表明,該系統(tǒng)優(yōu)于基于樸素貝葉斯的股票預測系統(tǒng),但在處理噪聲較大的數(shù)據(jù)時容易發(fā)生過擬合,影響股票預測精度.
從理論上講,人工神經(jīng)網(wǎng)絡(ANN)可以學習任何非線性關(guān)系,且受噪聲數(shù)據(jù)的干擾較小,因此,在時序預測領域得到了廣泛的關(guān)注.1988年,White[3]首次提出使用人工神經(jīng)網(wǎng)絡預測股票價格,但是由于梯度消失的問題,該方法并沒有取得理想的效果.隨著時間的推移,ANN在股票預測問題上的實用性被更多研究所證明,如Gen[4]和Zhang[5]分別在各自的研究中,證實了基于ANN的非線性模型在股市預測問題上的表現(xiàn)優(yōu)于線性預測模型.同時,ANN模型還可以與其他方法相結(jié)合來進行股票預測,如Mohammad等[6]將ARMA模型、BP神經(jīng)網(wǎng)絡和多層感知機(MLP)等模型相結(jié)合進行股票預測研究,該混合模型取得了較好的預測效果.然而Wei等[7]的研究表明,因為股票市場數(shù)據(jù)具有非線性、高維度和高噪聲的特點, ANN在這些數(shù)據(jù)上表現(xiàn)出了淺層神經(jīng)網(wǎng)絡容易陷入局部最優(yōu)解以及發(fā)生過擬合的問題.
隨著人工智能技術(shù)的發(fā)展,深度學習因其在機器翻譯[8]、語音情感識別[9]、圖像識別[10]等方面的優(yōu)異表現(xiàn)而受到廣泛關(guān)注.與傳統(tǒng)的統(tǒng)計模型相比,深度神經(jīng)網(wǎng)絡(DNN)可以通過分層特征表示來分析深度復雜的非線性關(guān)系,具有比淺層神經(jīng)網(wǎng)絡更好的特征抽取能力.研究表明,深度學習方法相比于過去的傳統(tǒng)機器學習方法,在股票預測問題上有更高的準確度,如Abe等[11]將深度學習網(wǎng)絡模型與傳統(tǒng)神經(jīng)網(wǎng)絡模型分別運用于股票預測,結(jié)果表明,深度學習網(wǎng)絡模型能夠取得更好的預測效果.Tsantekidis等[12]提出了一種基于卷積神經(jīng)網(wǎng)絡(CNN)的股票預測模型,并與其他經(jīng)典模型進行比較,驗證了卷積模型在股票預測中的有效性.Fischer等[13]通過LSTM模型建立股票預測模型,證明了該模型在股票預測問題上的表現(xiàn)優(yōu)于隨機森林、深度神經(jīng)網(wǎng)絡(DNN)和邏輯回歸模型.Selvin等[14]分別提出了3種基于CNN、循環(huán)神經(jīng)網(wǎng)絡(RNN)和LSTM的股票預測模型,并通過對上市公司股票價格的預測,比較了3種模型的性能.最后得出結(jié)論:LSTM具有較好的記憶性,最適用于股票時序預測.近年來,注意力機制作為一種高效的權(quán)重優(yōu)化算法常被用于深度學習模型的優(yōu)化,如Qin等[15]提出一種基于雙階段注意力機制的遞歸神經(jīng)網(wǎng)絡(DA-RNN)用于特征提取和序列預測,通過這種采用雙階段注意力機制方案,可以有效地預測股票價格.受注意力機制的啟發(fā),Ashish等[16]構(gòu)建了基于多頭自注意力機制的Transformer模型,該模型在時序任務中取得了極大的成功.此后,一些學者開始將Transformer模型運用于股票預測問題的研究,如Liu等[17]提出了一種基于Transformer模型的膠囊網(wǎng)絡進行股票走勢預測,其通過Transformer模型編碼器提取社交媒體深層語義特征,然后使用膠囊網(wǎng)絡捕捉文本結(jié)構(gòu)信息,結(jié)果表明,該方法能夠有效預測股票價格走勢.Molmann等[18]通過Transformer模型研究了未來貨運協(xié)議與黃金海洋集團股票價格之間的預測關(guān)系,結(jié)果表明,該模型對黃金海洋集團股票價格具有一定預測能力,其預測精度超過了所有對比模型.Ding等[19]通過引入高斯先驗、正交正則化和交易間隙分配器優(yōu)化了Transformer股票預測模型,并對中國A股市場股票價格進行了有效預測.基于上述研究成果,本文提出了基于遺傳算法和Transformer模型的兩階段股票預測方法,該方法首先通過遺傳算法根據(jù)因子重要性排名獲得多個股票多因子集合,然后在不同股票多因子集合上分別使用Transformer模型進行股票預測,并通過實驗對比獲得了較好的預測結(jié)果.
股票價格的影響因素主要有公司內(nèi)部因素、國家政策因素和市場因素[20].公司內(nèi)部數(shù)據(jù)通常只有在季度報表和年終總結(jié)才能夠體現(xiàn),國家政策也不是每天都會頒布,因此,它們都具有滯后性和間歇性,無法通過實時的量化數(shù)據(jù)進行反映,不適用于進行股票價格預測研究.而股票市場每天都會進行交易,從而產(chǎn)生大量的數(shù)據(jù),尤其是其中用于反映股票價格變化的各種財務指標,非常適用于作為股票預測研究的訓練數(shù)據(jù),是研究人員重點關(guān)注的對象[21].
股票市場財務指標除了常見的開盤價、收盤價、最高價、最低價、成交量和成交金額等交易型指標以外,還有一些人工構(gòu)建的更具建模意義的綜合技術(shù)指標.以下簡要介紹幾個常見的技術(shù)指標.
(1)相對強弱指標(RSI):RSI是一個信號指標,取值范圍0~100,兩個臨界點分別為30和70.當RSI小于30,提示超賣信號,考慮買入;當RSI大于70,提示超買信號,考慮賣出.
(2)移動平均線(MA):MA是一種觀察價格變動趨勢的信號指標,所謂移動平均線是把某段時間的股價加以平均,再依據(jù)這個平均值做出平均線圖像,將真實股價與移動均線進行對比,高于移動平均線,考慮買入,低于移動平均線,考慮賣出.
(3)平滑異同移動平均線(MACD):MACD是一種趨勢型指標,由一條12天的指數(shù)平滑快線和一條26天的指數(shù)平滑慢線之差,再以9天為窗口做指數(shù)平滑得到.當MACD由負轉(zhuǎn)正時,代表股價未來有可能上漲,考慮買入;反之,當MACD由正轉(zhuǎn)負時,考慮賣出.
由于篇幅有限,沒有對所有的股票技術(shù)指標進行詳細介紹,為了對股票市場總體財務指標有更清晰的認識,將股票市場主流的技術(shù)指標大致分為8組并對其做出解釋,描述如下:
(1)趨勢型指標
趨勢型指標以兩條線交叉為信號,能夠反映股票價格的上漲或下降趨勢,是投資者在研究股票價格變動時的第一選擇,也是最容易讓股民獲利的指標.趨勢型指標主要包括震動升降指標(ASI)、指數(shù)平均線(EXPMA)、佳慶指標(CHO)、簡易波動指標(EMV)、移動方向指數(shù)(DMI)、區(qū)間震蕩指標(DPO)、差離移動平均線(DMA)、變異平滑異同移動平均(QACD)和平滑異同移動平均線(MACD)等.
(2)能量型指標
能量型指標是股價熱度的溫度計,反映了股民情緒高亢或沮喪,指標數(shù)據(jù)過高代表高亢發(fā)燒,指標數(shù)據(jù)過低代表沮喪發(fā)冷.能量型指標主要包括逆時鐘線(PVC)、潛量消長指標(MAR)、梅斯線(MASS)、佳慶變異線(VCI)、心理線(PSY)、成交量變異率(VR)、人氣指標(AR)、意愿指標(BR)和中間意愿指標(CR)等.
(3)超買超賣型指標
超買超賣型指標是一種專門用于研究股票指數(shù)走勢的中長期技術(shù)分析指標,通過計算一定時期內(nèi)市場漲跌股票數(shù)量之間的相關(guān)差異性,了解整個市場買賣氣勢之強弱,以及未來大勢走向如何.超買超賣型指標主要包括商品路徑指標(CCI)、隨機指標(KDJ)、資金流量指標(MFI)、動量線(MOM)、變動速率線(OSC)、變動速率指標(ROC)和相對強弱指標(RSI)等.
(4)均線型指標
均線型指標是用于反映價格運行趨勢的重要指標,其運行趨勢一旦形成,將在一段時間內(nèi)繼續(xù)保持,為投資者提供買入或賣出的有利時機.均線型指標包括移動平均線(MA)、變異平均線(VMA)、高價平均線(HMA)和低價平均線(LMA)等.
(5)成交量型指標
成交量型指標是證券市場技術(shù)分析中用成交量數(shù)據(jù)作為主要參數(shù)的大類指標.成交量型指標主要包括離散量(ADV)、負量指標(NVI)、累計能量線(OBV)、正量指標(PVI)、波幅價量(PVT)及邱氏量法(CHIU)等.
(6)選股型指標
選股型指標是一種幫助投資者篩選高報酬個股的技術(shù)指標,指標數(shù)值越高,表示其投資價值越高.選股型指標包括股票選擇指標(CSI)、趨向比例(DX)、現(xiàn)值率(TAPI)、威力雷達(RAD)以及邱氏曲腰量(SV)等.
(7)大勢型指標
大勢型指標是一種反應大盤走向與趨勢的技術(shù)指標,其不對個股的漲跌提供信號,投資者可以通過其了解股市人氣狀況,探測股市內(nèi)在的資金動能是強勢還是弱勢,判斷股市未來動向.大勢型指標主要包括絕對廣量指標(ABI)、騰落指標(ADL)、漲跌比率(ADR)、阿拇氏指標(ARMS)、廣量動力指標(BTI)、錢龍中線指標(CA)、估波指標(COP)及麥克連指標(MCL)等.
(8)壓力支撐型指標
壓力支撐型指標是一種反應股價上限和下限的技術(shù)指標,上限代表壓力,下限代表支撐,股價觸碰上線會回落,股價觸碰下限會反彈.壓力支撐型指標主要包括布林線(BOLL)、軌道線(ENV)及風林火山(FIRE)等.
選取國內(nèi)股票市場中較為典型的40個財務指標作為原始特征用于后續(xù)模型研究,所有指標匯總?cè)绫?所示.
表1 股票多因子選取匯總
遺傳算法是一種基于自然選擇和遺傳進化思想的自適應啟發(fā)式搜索算法,廣泛用于尋找搜索空間大的優(yōu)化問題的近似最優(yōu)解,可以有效地用于優(yōu)化特征的選擇.它將一個問題的潛在解決方案編碼成個體,即染色體,所有個體組成的集合稱為種群,遺傳算法的優(yōu)化過程就是在種群中進行.染色體是遺傳物質(zhì)的主要載體,代表某些基因的組合,其決定了個體的外在表現(xiàn),如黑頭發(fā)的特征是由控制這一特征的染色體上某些基因組合決定的.遺傳算法在初始化階段,需要將問題的解進行編碼形成表現(xiàn)型到基因型的映射,較為常用的編碼方式為二進制編碼.在種群初始化之后,遺傳算法根據(jù)問題域內(nèi)個體的適應度進行個體選擇,并利用遺傳算子結(jié)合交叉和變異生成代表新解集的種群,這個過程會導致種群進化,類似于生物種群的自然進化,每一代新種群中的個體將比上一代種群的個體更適應于外在環(huán)境.解碼后,最后一代種群中的最優(yōu)個體可以作為問題的近似最優(yōu)解.
對選取的40維因子展開研究,從中獲得最優(yōu)的股票多因子特征組合,達到提高股票預測精度以及加快訓練速率的目的.具體做法是使用遺傳算法對40維多因子進行重要性排名,按排名順序取不同數(shù)量的股票因子組合作為訓練模型的輸入,進行股票預測分析.
圖1說明了通過遺傳算法進行特征選擇的整個過程.遺傳算法可分為編碼、初始化、適應度評估、終止條件檢查、選擇、交叉和變異7個階段[22].[α1,α2…αn]代表原始的特征集,β代表隨機產(chǎn)生的一條染色體.使用遺傳算法獲得因子重要性排名進行特征選擇的具體步驟如下.
圖1 遺傳算法特征選擇流程圖
(1)對染色體進行二進制編碼,隨機初始化種群,種群用以下矩陣表示:
在矩陣中,每一行代表一條染色體(或一個特征選擇集合),染色體長度為k代表基因總數(shù),m代表種群數(shù)量,ai,j取值為0或1,0代表該特征不被選中,1則代表該特征被選中.
(2)采用輪盤賭方法進行選擇操作.設定個體適應度函數(shù),計算種群中每個個體的適應度,個體被選擇的概率與該條染色體的適應度成正比,所有個體被選擇的概率之和為1,每一輪迭代過程更新一次種群.
(3) 采用多點交叉法進行交叉操作.設置交叉概率,根據(jù)概率將兩個個體之間的部分染色體進行交換,每一輪迭代對每一條染色體進行一次交叉操作.具體方法是使用Python隨機生成一個0到1之間的概率,如果隨機生成的概率小于交叉概率,則進行染色體交換,否則不進行交換.
(4) 采用單點變異方法進行變異操作.設置變異概率,根據(jù)概率對某個個體的基因進行單點變異,每一輪迭代對每一條染色體進行一次變異操作.具體方法是使用Python每次隨機生成一個0到1之間的概率,如果該概率小于變異率,則進行染色體變異,否則不進行染色體變異.
循環(huán)步驟(2)到(4),直到迭代100次.最后,遺傳算法將生成一個接近最優(yōu)解的最優(yōu)種群.將各因子在種群中出現(xiàn)的總次數(shù)統(tǒng)計排名作為因子重要性排名,因子在種群中出現(xiàn)的次數(shù)越多,說明它越重要.
特別指出,適應度函數(shù)是用來評價染色體性能的一個評價指標,在遺傳算法中,適應度函數(shù)的定義是影響性能的關(guān)鍵因素[23].計算適應度函數(shù)的過程將用于保留優(yōu)秀的解,以便進一步復制,適應度高的染色體更有可能被多次選擇,而適應度低的染色體則更有可能被淘汰.遺傳算法的適應度函數(shù)設置為決定系數(shù),其反映了特征變量X對Y目標值的解釋程度.其定義如公式(1)所示.
(1)
遺傳算法參數(shù)設置見表2.染色體長度設為40,即全部多因子種類數(shù),種群大小設為100,說明種群中隨機存在100種多因子組合,交叉率設為0.8,變異率設為0.003,算法總共迭代100次.
表2 遺傳算法參數(shù)設置
Transformer模型構(gòu)建由位置編碼、多頭注意力機制以及殘差連接和歸一化等組成,以下將對Transformer模型構(gòu)建技術(shù)細節(jié)進行詳細闡述.
(1)位置編碼
由于Transformer模型沒有循環(huán)神經(jīng)網(wǎng)絡的迭代操作,模型中沒有天然存在輸入數(shù)據(jù)間的時序關(guān)系,使用頻率不同的正弦函數(shù)和余弦函數(shù)對Transformer模型的輸入進行位置編碼,位置編碼公式原理如下:
PE(t,2i)=sin(t/10 0002i/dmodel)
(2)
PE(t,2i+1)=cos(t/10 0002i/dmodel)
(3)
其中,t表示時間步,dmodel表示輸入特征的維度總數(shù),i表示輸入特征的維度編號,i的取值范圍是[0,dmodel/2].
位置編碼的每一個維度對應一個正弦信號或余弦信號,當i在規(guī)定范圍內(nèi)取不同的值進行位置編碼時,上式中的sin函數(shù)和cos函數(shù)分別對應一組奇數(shù)和偶數(shù)的特征序號維度,例如0和1為一組,2和3為一組,分別用sin函數(shù)和cos函數(shù)進行處理,從而產(chǎn)生不同的周期變化.位置編碼隨著維度序號的增大,周期從2π到10 000*2π變化,每個位置維度在位置編碼中都會得到不同周期的sin和cos函數(shù)的取值組合,從而產(chǎn)生唯一的紋理位置信息,最終使得模型學習到位置之間的依賴關(guān)系和輸入數(shù)據(jù)的時序特性.
圖2對位置編碼進行可視化,橫軸為特征的維度,縱軸為時序的維度,圖中每一行代表一個時刻的輸入.縱向觀察,隨著特征維度的序號增大,位置嵌入函數(shù)的周期變化越來越平緩.
圖2 位置編碼可視化
使用sin和cos函數(shù)進行位置編碼的優(yōu)勢在于任意位置的PEt+k都可以被PEt的線性函數(shù)表示,從而使得兩個位置之間存在某種位置依賴關(guān)系.原理如下:
(4)
最后,將位置編碼信息添加到輸入,從而產(chǎn)生擁有位置信息的輸入.
(2)多頭自注意力機制
Transformer模型主體部分的構(gòu)建是通過多頭自注意力機制實現(xiàn)的.為便于理解,先介紹單頭自注意力機制.單頭注意力機制是將輸入矩陣經(jīng)過三次不同的線性變換映射到三組空間向量矩陣,分別記為查詢矩陣Q、鍵矩陣K及值矩陣V.Q,K,V矩陣每一行維度均設為dk,單頭自注意力機制計算公式為
Q=Linear(X)=XWQ
(5)
K=Linear(X)=XWK
(6)
V=Linear(X)=XWV
(7)
(8)
其中,X為輸入矩陣,WQ,WK,WV均為線性變換權(quán)重矩陣,softmax歸一化函數(shù)用于計算注意力權(quán)重,計算公式在前文中已經(jīng)介紹.
相較于只進行一次自注意力機制運算,如果對于K,Q,V矩陣實行多次不同的線性變換,各自進行自注意力機制運算后,將多個輸出拼接起來進行最終的輸出,能夠使模型關(guān)注到不同方面的信息并進行整合,起到增強模型性能的作用,因此,使用多頭自注意力機制構(gòu)建Transformer模型.多頭自注意力機制表達式為
(9)
MultiHead(Q,K,V)=Concat(head1,…,headh)WO
(10)
(3)殘差連接和歸一化
Transformer模型子模塊主要由一個多頭注意力機制層和一個全連接層構(gòu)成,注意力層和全連接層之間使用殘差連接和歸一化對數(shù)據(jù)進行處理.
輸入數(shù)據(jù)經(jīng)過多頭注意力機制運算以后的輸出數(shù)據(jù)維度與輸入保持一致,以便進行殘差連接,殘差連接能夠解決梯度消失和權(quán)重矩陣的退化問題.殘差連接具體做法很簡單,即對輸入和多頭注意力層的輸出進行疊加,公式如下:
X=Xinput+SelfAttention(Q,K,V)
(11)
歸一化的作用是把模型的隱藏變量歸一化為標準正態(tài)分布,以起到加速收斂的作用.具體計算過程如式(12)~(14)所示:
(12)
(13)
(14)
下面對Transformer模型子模塊進行整合,構(gòu)建完整的Transformer模型,如圖3所示.
圖3 Transformer股票預測模型[16]
由圖3可知,Transformer模型由3個相同子模塊堆疊而成,每個子模塊主要包含多頭注意力機制層和全連接層.多頭注意力機制層和全連接層的輸出都需要進行殘差連接和歸一化操作,數(shù)據(jù)輸入以后,首先進行位置編碼,然后經(jīng)過3個Transformer子模塊的特征抽取,最后外接一個全連接層,將數(shù)據(jù)維度轉(zhuǎn)化到1維進行股票價格輸出,其中,x代表輸入,yt代表t時刻的股票價格預測結(jié)果.Transformer模型參數(shù)設置見表3.
表3 Transformer模型參數(shù)設置
表3顯示了Transformer模型參數(shù).自注意力機制多頭數(shù)h設為5,多頭自注意力機制權(quán)重矩陣K,Q,V維度dk設為400,Transformer子模塊數(shù)設為3,全連接層節(jié)點數(shù)設為128,dropout參數(shù)設為0.2,用于隨機移除一部分神經(jīng)元,以防止全連接層發(fā)生過擬合,LSTM的時間步設置為5,即通過過去5天的歷史股票數(shù)據(jù)預測后一天的股票價格,模型訓練輪數(shù)設為100輪,使用Adam優(yōu)化器作為訓練優(yōu)化器,全連接層激活函數(shù)使用sigmoid函數(shù),訓練批量設為512,實驗將數(shù)據(jù)按照8∶2劃分,即前80%的數(shù)據(jù)作為訓練集進行模型訓練,后20%的數(shù)據(jù)作為驗證集來驗證模型訓練結(jié)果,使用均方差MSE作為模型損失函數(shù).
本文結(jié)合遺傳算法和Transformer模型構(gòu)建GA-Transformer混合模型,進行多因子股票價格預測研究.首先采用遺傳算法對初始多因子組合進行因子重要性排名,然后根據(jù)因子排名順序分別取排名前5,10,20,30,40的因子組合作為輸入特征輸入Transformer模型進行股票預測,最后通過實驗結(jié)果對比分析模型性能,并獲得最優(yōu)因子組合.GA-Transformer模型框架如圖4所示.
圖4 GA-Transformer模型框架[16]
其中,[α1,α2,…,αn]代表原始特征集,t5,t10,t20,t30,t40分別代表原始特征按重要性排名前5,10,20,30,40的多因子組合,yt代表t時刻的預測輸出結(jié)果.
為了實現(xiàn)普適性,選取來自金融、餐飲、醫(yī)藥、房地產(chǎn)、通信及航空等不同行業(yè)的6支股票進行實證研究,所選股票均為該行業(yè)較為典型的股票,數(shù)據(jù)匯總?cè)绫?所示.
表4 股票數(shù)據(jù)匯總
鑒于選取了股票市場上各個不同行業(yè)中具有代表性的6支股票作為股票價格預測研究對象,如果一一具體介紹過分冗余,因此,僅對其中比較典型的兩支股票進行舉證和分析,這兩支股票分別是建設銀行和貴州茅臺.股票數(shù)據(jù)時間跨度為10年,即2010年1月1日至2020年4月1日,共有2 490條日數(shù)據(jù),每一條數(shù)據(jù)的維度均為40維.建設銀行和貴州茅臺的歷史股價走勢如圖5所示.
圖5 建設銀行和貴州茅臺10年股票價格趨勢圖
由于股票的原始數(shù)據(jù)存在缺失和量綱現(xiàn)象,容易影響股票預測精度,因此,對原始數(shù)據(jù)進行數(shù)據(jù)清洗是必要的,具體做法包括缺失值處理和數(shù)據(jù)標準化.
(1)缺失值處理
由于樣本丟失及統(tǒng)計不全等原因,樣本存在著數(shù)據(jù)缺失的問題,而不同的樣本數(shù)據(jù)缺失情況造成數(shù)據(jù)的破壞程度不同,其處理方式也不完全一致.其中,對于某些大部分歷史數(shù)據(jù)缺失的因子,采用直接剔除的方法,而對于僅存在少部分歷史數(shù)據(jù)缺失的因子,采用均值填充的方法對缺失的數(shù)據(jù)進行填充,以保證數(shù)據(jù)的完整性.
(2)數(shù)據(jù)標準化
由于數(shù)據(jù)因子間的單位不同,模型訓練時會因為數(shù)據(jù)間不同的量綱導致梯度下降緩慢,影響訓練速度,因此,需要對數(shù)據(jù)進行標準化處理,將數(shù)據(jù)范圍控制為(0,1),有助于提高模型訓練速度和預測精度.具體做法是采用最大最小值標準化方法對數(shù)據(jù)進行無量綱化,便于不同單位或量級間的指標能夠進行比較和加權(quán).標準化公式如式(15)所示:
(15)
其中,min(x)代表因子序列最小值,max(x)代表因子序列最大值.
圖6和圖7分別為遺傳算法對建設銀行和貴州茅臺的因子重要性排名結(jié)果.
圖6 建設銀行因子重要性排名結(jié)果
圖7 貴州茅臺因子重要性排名結(jié)果
從圖6可以看出,在建設銀行股票因子排名中,排名靠前的12個因子分別為EMA、HMA、DKX、 low、OSC、MAUDL、CHO、BIAS、UDL、FSL、EMV及MACD,因子重要性得分均為100,從CCI因子開始,重要性逐漸降低,排名最后的MACHO、open及MASS三個因子的重要性幾乎為0.從圖7可以看出,在貴州茅臺股票因子排名中,排名靠前的10個因子分別為OSC、MASS、UDL、DKX、EMA、MACCD、HMA、OBV、DMI及MAUDL,因子重要性得分均為100,從EMV因子開始,重要性逐漸降低,排名最后的MTR、TRIX及PSY三個因子的重要性可以忽略不計.
(1)GA-Transformer模型在不同特征集上的結(jié)果對比
將建設銀行和貴州茅臺股票因子重要性排名中前5,10,20,30,40的因子組合分別輸入GA-Transformer模型進行股票預測,并用MSE對模型預測精度進行評估,模型預測結(jié)果如表5所示.
表5 GA-Transformer模型股票預測結(jié)果分析
當建設銀行和貴州茅臺兩支股票均取因子排名前10的多因子組合作為輸入特征時,股票預測結(jié)果均方誤差達到最小值分別為0.001 4和0.001 3.由此可以得到,建設銀行和貴州茅臺兩只股票的最優(yōu)特征集均為各自因子排名前10的多因子組合.
圖8和圖9分別顯示了GA-Transformer模型在建設銀行和貴州茅臺數(shù)據(jù)測試集上進行股票預測的可視化結(jié)果.可以直觀看到,預測數(shù)據(jù)和真實數(shù)據(jù)偏差很小,兩條數(shù)據(jù)線幾乎重合,說明GA-Transformer模型具有很強的模型擬合能力.
圖8 GA-Transformer模型建設銀行測試集預測結(jié)果
圖9 GA-Transformer模型貴州茅臺測試集預測結(jié)果
(2)探究超參數(shù)h取值對模型性能的影響
GA-Transformer模型引入了多頭自注意力機制進行模型構(gòu)建,引入多頭的概念是為了增強模型性能.本章為探究多頭超參數(shù)h對GA-Transformer模型性能的影響,將超參數(shù)h分別取值為3,5和10,在建設銀行和貴州茅臺數(shù)據(jù)集上取排名前10的特征集進行實驗研究.表6顯示了GA-Transformer模型分別在建設銀行和貴州茅臺股票數(shù)據(jù)測試集上使用不同超參數(shù)h的預測結(jié)果.
表6 超參數(shù)h對GA-Transformer模型預測結(jié)果的影響
由表6可知,當超參數(shù)h取值為3和5時,模型預測結(jié)果均方差MSE較為接近,并且當h取5時,GA-Transformer模型在建設銀行和貴州茅臺股票數(shù)據(jù)測試集上的預測結(jié)果均方差達到最低;當超參數(shù)h取值為10時,GA-Transformer模型預測性能出現(xiàn)了較大的降低,其原因是當超參數(shù)h取值過大時,GA-Transformer模型結(jié)構(gòu)過于復雜,使得訓練出現(xiàn)了過擬合,可以通過降低模型復雜程度或者增大訓練數(shù)據(jù)來解決該問題.
(3)模型性能橫向?qū)Ρ?/p>
為了進一步評估GA-Transformer模型在股票價格預測問題上的性能表現(xiàn),分別選取基于MLP[24]、RNN[25]、隨機森林[26]、LSTM[27]、支持向量機[28]和DA-RNN[15]等6種經(jīng)典機器學習算法的股票預測模型進行橫向比較.訓練完成后,實驗結(jié)果統(tǒng)計了各模型在6支股票數(shù)據(jù)測試集上均方差的均值,如表7所示.
表7 各模型股票預測結(jié)果橫向?qū)Ρ?/p>
從各模型預測結(jié)果來看,MLP和RNN這兩種神經(jīng)網(wǎng)絡預測模型在股票價格預測精度上比支持向量機和隨機森林兩種機器學習預測模型略有提升;LSTM作為RNN的改進神經(jīng)網(wǎng)絡模型,在股票預測效果上相比于RNN得到了一定提升,這也證明了LSTM模型在股票時序數(shù)據(jù)的預測中能夠取得良好的表現(xiàn);DA-RNN股票預測模型相較于LSTM模型在預測精度上提升了0.002 5,證明了該模型在解決股票價格預測問題上擁有一定的優(yōu)越性;GA-Transformer模型預測結(jié)果達到最低為0.001 4,相較于DA-RNN模型在預測精度上提升了0.000 6,優(yōu)化效果明顯.
本文提出了一種基于GA-Transformer模型的股票預測方法,與傳統(tǒng)的股票預測方法相比,該模型通過引入自注意力機制,能夠快速獲取全局時序信息并且實現(xiàn)并行計算,在增加計算效率的同時,可以有效解決長距離依賴問題,擁有更強的特征抽取能力.實驗表明,該方法能夠有效預測股票價格,在預測精度上優(yōu)于其他對比方法.同時,通過實驗結(jié)果可見, Transforme模型參數(shù)量大,對數(shù)據(jù)的依賴性強,在大數(shù)據(jù)集中能夠發(fā)揮更好的效果.因此,如何在保證模型效果的前提下,減少模型的參數(shù),提高運算效率將是未來的主要研究方向.