程孟菲,高淑萍
西安電子科技大學 數(shù)學與統(tǒng)計學院,西安 710126
股票是整個國民經(jīng)濟的重要組成部分,與國家經(jīng)濟發(fā)展息息相關(guān)。股票的選擇和投資策略是股票交易的核心,兩者都需要分析未來股票走勢。股市每天都會產(chǎn)生大量的數(shù)據(jù),對中小投資者來說,很難從大量的數(shù)據(jù)中分析股票的未來趨勢并進行決策。
股票數(shù)據(jù)具有非線性、不穩(wěn)定的特征,數(shù)據(jù)量大,同時具有很高的噪聲[1]。股票價格的變動受到經(jīng)濟、政策、市場和投資者心理等多重因素的影響,增加了股票預(yù)測的難度。隨機游走假設(shè)的提出,為能否利用歷史信息預(yù)測信息提出挑戰(zhàn)[2]。隨機游走假設(shè)認為,市場上股票的價格已經(jīng)反映了所有的信息,所以余下的價格波動都是源于無法預(yù)測和捕捉的隨機事件,因此股票的價格波動是一種隨機游走的形態(tài)。隨著技術(shù)的進步,對股票預(yù)測問題的研究有了很大的發(fā)展。很多學者通過對非線性、不穩(wěn)定的股票數(shù)據(jù)進行平穩(wěn)化或降噪處理,預(yù)測股票未來走勢,如婁磊等人[3]利用小波對股票進行降噪,賀毅岳等人[4]通過分解對數(shù)據(jù)進行平穩(wěn)化處理。
股票價格預(yù)測模型可分為傳統(tǒng)模型、機器學習模型、深度學習模型。傳統(tǒng)回歸模型如多項式回歸、線性回歸、差分移動自回歸模型(autoregressive integrated moving average,ARIMA)[5]等,但是難以捕獲股票歷史數(shù)據(jù)和未來價格之間的關(guān)系,預(yù)測誤差大。機器學習模型可以捕獲人難以發(fā)現(xiàn)的內(nèi)在關(guān)系,股票預(yù)測常用的機器學習模型有支持向量機[6]、隨機森林[7]、K鄰近值[8]等。深度學習是機器學習的進一步發(fā)展,常見的深度學習模型有卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)、長短期記憶網(wǎng)絡(luò)(long short term memory network,LSTM)。其中由于LSTM解決了模型訓練過程中RNN的梯度消失以及梯度爆炸的缺陷,被廣泛用于股票預(yù)測問題的研究中[9-10]。Zhao等人[11]重新定義股票趨勢預(yù)測的時間權(quán)重LSTM模型,Mootha等人[12]使用雙向LSTM對印度股票進行預(yù)測,Althelaya等人[13]采用雙向LSTM和堆疊LSTM對股票進行預(yù)測,Qian等人[14]在引入靜態(tài)分析,驗證LSTM的預(yù)測效果與數(shù)據(jù)的非平穩(wěn)性之間的關(guān)系。Li等人[15]提出自適應(yīng)的梯度下降算法訓練CNN-LSTM模型,預(yù)測效果優(yōu)于傳統(tǒng)的梯度下降算法。Nguyen等人[16]提出DTRSI模型,利用深度遷移學習訓練LSTM網(wǎng)絡(luò),有效提高了股票的預(yù)測效果。經(jīng)驗?zāi)B(tài)分解(empirical mode decomposition,EMD)將時間序列數(shù)據(jù)分解為一組與不同時間尺度相關(guān)的分量和趨勢,即本征模函數(shù)(intrinsic mode function,IMF)和殘差(residual,RES),其中IMF反映了在不同時間尺度下數(shù)據(jù)的震蕩情況,RES則反映了市場趨勢。張倩玉等人[17]利用EMD提出EMD-LSTM模型,表明EMD能有效提高不穩(wěn)定、高噪聲數(shù)據(jù)的預(yù)測效果。
雖然基于深度學習的模型提高了股票的預(yù)測效果,但是現(xiàn)有的股票預(yù)測方法主要利用了股票的歷史數(shù)據(jù)而忽略了來自其他股票的有效信息,股票價格的漲跌受到其他股票的影響,某一支或多支股票價格的漲跌會影響相關(guān)行業(yè)內(nèi)其他股票價格的變化[18]。為了進一步提高股票預(yù)測效果,本文提出了一種多尺度股票價格預(yù)測模型TL-EMD-LSTM-MA(TELM),預(yù)測股票的收盤價。TELM首先通過EMD將收盤價分解多個尺度分量,即多個IMF和RES;然后,將多個IMF和RES分為高頻部分和低頻部分,針對高頻部分,采用基于深度遷移學習的方法進行預(yù)測,即先利用市場內(nèi)其他股票數(shù)據(jù)訓練預(yù)訓練模型,再利用待預(yù)測股票或指數(shù)的對應(yīng)分量對模型進行微調(diào)和預(yù)測,針對低頻部分采用移動平均法(moving average,MA)預(yù)測;最后,將所有分量的預(yù)測值相加作為最終的預(yù)測輸出。為了驗證TELM的性能,分別對單支股票和上證指數(shù)、深證成指、上證50、中證500、滬深300進行預(yù)測。其中單支股票包括中國A股市場20個行業(yè)的500支股票,并分別從行業(yè)、上市時間等因素對實驗結(jié)果進行分析。實驗結(jié)果表明TELM在單支股票和指數(shù)的預(yù)測上比MA、LSTM、CNN-LSTM、EMD-LSTM、DTRSI效果更好,降低了模型的訓練規(guī)模,節(jié)約了時間成本,有較好的泛化能力。進一步通過模擬股票的交易過程,表明TELM預(yù)測的股票收盤價對股民的投資決策有重要的參考價值,提高了投資回報率,降低了損失。
任何非線性、非平穩(wěn)的信號都可以通過經(jīng)驗?zāi)B(tài)分解[19](EMD)將原始信號分解為多個本征模函數(shù)(IMF)和殘差(RES)。EMD在處理數(shù)據(jù)的過程中,不需要設(shè)定基函數(shù),根據(jù)數(shù)據(jù)自身的尺度特征進行分解。IMF必須滿足兩個條件:
(1)在時間范圍內(nèi),局部極值點和過零點的數(shù)目必須相等或相差1。
(2)在任意時刻,局部最大值的上包絡(luò)線和局部最小值得下包絡(luò)線均值必須為0。
假設(shè)原始信號為S(t),EMD的分解過程如下:
步驟1確定原始序列S(t)的所有極大值和極小值。
步驟2采用3次樣條插值法,根據(jù)極大值與極小值構(gòu)造S(t)的上下包絡(luò)線。
步驟3由上下包絡(luò)線計算出S(t)的局部均值m1t(t),以及差值S(t)與的m1i(t)差值:
步驟4用h1i(t)代替原始序列S(t),重復(fù)步驟1~3,直到h1i(t)和h1i-1(t)的差值小于閾值,則第一個IMF分量即為h1i(t),記作IMF1(t)=h1i(t),r1(t)=S(t)-IMF1(t),S(t)=r1(t)。
步驟5重復(fù)步驟1~4,直到rn(t)不能再分解出IMF分量。其中S(t)的分解結(jié)果如下表示:
這里RES=rn(t)為趨勢項,i越小,IMFi(t)單位時間內(nèi)震蕩幅度越大。
遷移學習把知識從一個或多個領(lǐng)域(源域)遷移到另一個領(lǐng)域(目標域),利用已知某領(lǐng)域的知識求解不同但相關(guān)領(lǐng)域的問題[20-21]。已經(jīng)在圖像分類[22]、自然語言處理[23]等領(lǐng)域有很多應(yīng)用,受到越來越多的關(guān)注。與機器學習、深度學習相比,遷移學習不再假設(shè)訓練數(shù)據(jù)和測試數(shù)據(jù)必須是獨立同分布,因此目標模型的訓練不需要從頭開始訓練,降低了對訓練數(shù)據(jù)的要求,加快訓練速度。Tan等人[24]給出了遷移學習和深度遷移學習的定義。
定義1(遷移學習)。給定一個基于數(shù)據(jù)Dt的學習任務(wù)Tt,以及基于數(shù)據(jù)Ds的學習任務(wù)Ts。發(fā)現(xiàn)Ds和Ts中的隱知識,并用來提高任務(wù)Tt的函數(shù)FT(?)效果的任務(wù),稱為遷移學習。其中Dt≠Ds,Tt≠Ts,且Ds的數(shù)據(jù)量遠大于Dt。
定義2(深度遷移學習)。給定一個<Ds,Ts,Dt,Tt,FT(?)>的遷移學習任務(wù),如果FT(?)是基于深度學習的非線性函數(shù),則稱該任務(wù)為深度遷移學習。
為了解決RNN在訓練過程中梯度消失和梯度爆炸的問題,Hochreiter等人[25]提出了LSTM模型,解決了傳統(tǒng)神經(jīng)網(wǎng)絡(luò)長期和短期依賴的問題。LSTM模型使用長短期記憶細胞記錄長短期信息,其結(jié)構(gòu)單元如圖1所示,可以概括為三門兩態(tài):輸入門it、輸出門ot和遺忘門ft,以及單元狀態(tài)ct和隱藏狀態(tài)ht。
圖1 LSTM結(jié)構(gòu)圖Fig.1 Structure of LSTM
輸入門:用于記憶當前輸入數(shù)據(jù)的信息,包括sigmoid層和tanh層。sigmoid層決定哪些信息將被更新,tanh層用于創(chuàng)建新的變量c?t。
遺忘門:用于選擇過去的哪些信息將被遺忘,1表示完全保留歷史信息,0表示完全遺忘歷史信息。
其中,[ht-1,xt]表示將ht-1和xt進行拼接,⊙表示矩陣的哈達瑪積,Wf、Wi、Wc、Wo為權(quán)重矩陣,bf、bi、bc、bo為偏置,權(quán)重矩陣和偏置將在模型的訓練過程中不斷優(yōu)化。
Joseph E.Granbville提出均線理論,杜云峰[26]驗證了利用均線對股市趨勢進行判斷,能提高投資者收益。均線是由移動平均法(MA)計算前N個數(shù)據(jù)的平均值。對一維向量x,預(yù)測向量y的計算公式如下:
本文通過EMD對股票收盤價進行的多尺度分解,并利用深度遷移學習、堆疊LSTM模型以及移動平均法,加入模型選擇機制,構(gòu)建多尺度股票預(yù)測模型TELM,模型流程如圖2所示。針對待預(yù)測的股票或指數(shù),首先將收盤價經(jīng)過EMD分解,獲得In個不同尺度的IMF和RES,并根據(jù)In的大小將其劃分為高頻部分和低頻部分,高頻部分包括h個分量IMF1,IMF2,…,IMFh,低頻部分包括In-h+1個分量IMFh+1,…,IMFIn,R ES,h取值為:
圖2 TELM模型流程圖Fig.2 TELM model flow chart
TELM模型分兩步,分別進行預(yù)訓練模型的訓練和單支股票或指數(shù)的模型訓練與預(yù)測,步驟如下:
步驟1預(yù)訓練模型的訓練。預(yù)訓練數(shù)據(jù)集的50支股票,每支股票的IMF的個數(shù)In≥7,即高頻部分的分量包括IMF1,IMF2,…,IMF5,分別訓練對應(yīng)的預(yù)訓練模型model1,model2,…,model5。針對IMFi,i=1,2,…,5,訓練堆疊雙層LSTM的深度學習模型modeli,該模型結(jié)構(gòu)如圖3所示,輸入的數(shù)據(jù)包括預(yù)處理后的第j至第j+time_step-1天的IMFi、開盤價(open)、收盤價(close)、最高價(max)、最低價(min)、成交量(vol)和成交額(amount),輸出數(shù)據(jù)y?j為IMFi在第j+time_step天的預(yù)測值,time_step為時間步長。
圖3 堆疊LSTM流程圖Fig.3 Two-layer LSTM model flow chart
步驟2單支股票或指數(shù)的預(yù)測。對高頻部分和低頻部分采用不同的方法進行預(yù)測,并將所有分量預(yù)測值相加。
步驟2.1高頻部分的預(yù)測。針對IMFi,i=1,2,…,h,輸入數(shù)據(jù)通過預(yù)處理后,將其劃分為訓練集、驗證集和測試集。利用訓練集微調(diào)modeli部分參數(shù),并對驗證集進行預(yù)測,得到預(yù)測值y?(1);利用modeli直接對驗證集進行預(yù)測,得到驗證集的預(yù)測值y?(2);通過分別比較y?(1)、y?(2)并與測值真實值的誤差進行模型選擇,判斷modeli微調(diào)后預(yù)測誤差是否變小,如果y?(1)與真實值的誤差更小,則利用微調(diào)后的模型對測試集進行預(yù)測,否則直接使用預(yù)訓練模型modeli進行測試集的預(yù)測。最終得到IMF1,IMF2,…,IMFh的測試集預(yù)測值H?1,H?2,…,H?h。
步驟2.2低頻部分的預(yù)測。計算分量和IMFl,計算公式如下:
并利用移動平均法計算測試集的預(yù)測值L?,即
步驟2.3最后將H?1,H?2,…,H?h和L?的預(yù)測值進行相加,結(jié)果作為最終的股票預(yù)測值Y?,計算公式如下:
分別對數(shù)據(jù)及模型參數(shù)、單支股票預(yù)測結(jié)果、指數(shù)預(yù)測結(jié)果、股票交易模擬進行分析。數(shù)據(jù)及模型參數(shù)是對數(shù)據(jù)和參數(shù)設(shè)置進行說明;單支股票預(yù)測結(jié)果分析除了比較不同模型的性能外,還從行業(yè)、IMF個數(shù)、上市時間等方面分析預(yù)測誤差;指數(shù)預(yù)測結(jié)果分析旨在驗證TELM是否能降低指數(shù)預(yù)測的誤差,提高預(yù)測效果;股票交易模擬則是基于股票的預(yù)測收盤價模擬股票交易過程,驗證TELM在股市交易中是否能降低投資風險、提高投資回報率。
3.1.1 數(shù)據(jù)來源
實驗所用股票數(shù)據(jù)來自財經(jīng)數(shù)據(jù)接口包Tushare(https://www.tushare.pro),包含20個行業(yè)的550支股票以及上證指數(shù)、深證成指、上證50、中證500、滬深300從2010年11月1日至2021年11月1日的歷史行情信息。預(yù)訓練數(shù)據(jù)集包括來自釀酒、新能源車、有色金屬、環(huán)保工程4個行業(yè)共50支股票數(shù)據(jù),用于步驟1中預(yù)訓練模型,每支股票的上市時間都在5個月以上;預(yù)測數(shù)據(jù)集包括500支股票和上證指數(shù)、深證成指、上證50、中證500、滬深300,單支股票或指數(shù)的數(shù)據(jù)被劃分為訓練集、驗證集、測試集,分別占總數(shù)據(jù)的80%、10%、10%,用于步驟2中模型的訓練、選擇和預(yù)測,并驗證模型的性能。
3.1.2 數(shù)據(jù)預(yù)處理
為了消除不同特征數(shù)據(jù)量綱的影響,在訓練前,對數(shù)據(jù)進行Min-Max歸一化,對歸一化后的數(shù)據(jù)根據(jù)時間步長time_step切分數(shù)據(jù)。
Min-Max歸一化的計算公式如下:
其中,xi為需要歸一化的數(shù)據(jù),yi為歸一化后的數(shù)據(jù),y?j為預(yù)測數(shù)據(jù),x?j為反歸一化后的數(shù)據(jù)。
3.1.3 性能指標
采用均方根誤差(root mean squared error,RMSE)、平均絕對誤差(mean absolute error,MAE)和決定系數(shù)R2評估模型的性能,其中R2評價回歸模型系數(shù)擬合優(yōu)度,R2越高,表示可以被解釋的程度越高,回歸模型的效果越好。評價指標的計算公式如下:
y?i,yi分別代表預(yù)測值和真實值,yˉ表示yi的均值。
3.1.4 參數(shù)設(shè)置
在TELM的訓練和預(yù)測過程中涉及許多超參數(shù),超參數(shù)的設(shè)置影響著最終的預(yù)測效果,超參數(shù)設(shè)置如表1至表3所示。
表1 堆疊LSTM模型的參數(shù)Table 1 Parameters of the stacked LSTM Network
通過網(wǎng)格搜索算法[27],尋找最優(yōu)的雙層LSTM模型的參數(shù),參數(shù)設(shè)置如表1所示,其中out_dim表示該層的輸出參數(shù),activati on表示該層的激活函數(shù),batch_size表示每輪訓練的樣本個數(shù),time_step表示時間步長,optimizer表示模型訓練使用的優(yōu)化器,損失函數(shù)為MSE。
在步驟2.1預(yù)測過程中涉及到模型的微調(diào),微調(diào)模型哪些層的參數(shù)對模型的訓練效果以及模型的訓練的時間成本有很大的影響,為了確定最優(yōu)的微調(diào)參數(shù),分別選擇不同層的參數(shù)進行對比實驗,實驗結(jié)果如表2所示。從表2中可以看出微調(diào)第4、5層的參數(shù)要優(yōu)于微調(diào)其他層參數(shù),在降低預(yù)測誤差的同時,訓練參數(shù)由12 201降至321,減少了97.4%。因此在步驟2.1預(yù)測高頻部分的分量時,將第4、5層的參數(shù)設(shè)為可微調(diào)的層。
表2 微調(diào)的層及其性能指標Table 2 Fine-tuning layers and their performance indicators
TELM模型涉及到高頻部分包含的分量數(shù)量h,h的最大值設(shè)為5,h越大表明預(yù)訓練模型的數(shù)量越多,訓練時間越長。由于股票上市時間不同,以及每支股票數(shù)據(jù)的復(fù)雜程度不同,導(dǎo)致某些股票經(jīng)過EMD分解后得到的IMF分量個數(shù)不同,因此必須確定h的最大值。h取不同值時的預(yù)測性能如表3所示,h越大,預(yù)測誤差越低,預(yù)測結(jié)果越好,在h=5時,預(yù)測誤差最低,且擬合度最好。在預(yù)測數(shù)據(jù)集中94%的股票的IMF分量個數(shù)In大于等于5。
表3 取值及其性能指標Table 3 Performance indicators of different value of h
3.2.1 不同模型的性能比較
為了驗證TELM的性能,對預(yù)測數(shù)據(jù)集的500支股票通過不同的模型進行預(yù)測,包括MA、LSTM、CNNLSTM、EMD-LSTM以及遷移學習模型DTRSI進行對比,不同模型的性能指標如表4。從表4中可以看出EMDLSTM、DTRSI以及TELM的預(yù)測結(jié)果顯示,RMSE和MAE誤差低于LSTM和CNN-LSTM,R2數(shù)值也遠高于LSTM和CNN-LSTM,EMD-LSTM和TELM對股票數(shù)據(jù)進行了多尺度分解,說明多尺度分解能有效降低股票的預(yù)測誤差,而DTRSI和TELM的預(yù)測效果則說明遷移學習同樣提高股票預(yù)測的擬合效果。表4中股票個數(shù)一項可以看出,在500支股票中,TELM在428支股票的預(yù)測任務(wù)中表現(xiàn)最優(yōu),占總量的85%,說明TELM的泛化能力強,在股票的批量預(yù)測任務(wù)中具有優(yōu)勢。
表4 六種模型的預(yù)測性能指標Table 4 Performance indicators of six models
圖4、圖5、圖6分別為三元股份、圣龍股份、西王食品3支股票2021年6月17日至2021年11月1日的預(yù)測曲線圖,從曲線中可以看出,圖4總體呈現(xiàn)上漲趨勢,圖5股票總體先漲后跌,圖6總體呈下跌趨勢,從圖4至圖6可以看出TELM模型不僅能捕獲股票未來趨勢,而且在股票的總體走勢變化較大的拐點預(yù)測準確,如圖4中8月20、10月8日。提前預(yù)測出股票趨勢變化幅度較大的點,為投資者的投資決策提出重要的依據(jù),能有效提高股民的收益和降低投資風險。
圖4 三元股份收盤價預(yù)測曲線Fig.4 Sanyuan shares closing price forecast curve
圖5 圣龍股份收盤價預(yù)測曲線Fig.5 Shenglong shares closing price forecast curve
圖6 西王食品收盤價預(yù)測曲線Fig.6 Xiwang foods closing price forecast curve
3.2.2 行業(yè)因素、上市時間、IMF數(shù)量分析
由于在源模型數(shù)據(jù)集包括釀酒、新能源車、有色金屬、環(huán)保工程4個行業(yè)的股票數(shù)據(jù),為了比較TELM的預(yù)測效果是否受行業(yè)因素的影響,本小節(jié)對多個行業(yè)的預(yù)測性能指標進行對比,不同行業(yè)性能指標如表5所示。在源模型數(shù)據(jù)集包含的4個行業(yè)中,環(huán)保工程行業(yè)的預(yù)測效果最差,該行業(yè)的股票的預(yù)測性能指標的均值分別為0.060 7、0.044 8、0.932 7。在源模型數(shù)據(jù)集不包含的行業(yè)中,除房地產(chǎn)和航運港口外,行業(yè)5至行業(yè)11的性能指標均比環(huán)保工程的性能指標差。因此,源模型數(shù)據(jù)集中是否包含該行業(yè),對該行業(yè)的股票預(yù)測會有一定的影響。通過在源模型數(shù)據(jù)集中加入某行業(yè)的股票,能提高該行業(yè)內(nèi)其他股票的預(yù)測效果。
表5 不同行業(yè)的性能指標Table 5 Performance indicators of different industrys
由于上市時間不同,數(shù)據(jù)集的股票的數(shù)據(jù)量不同,為了分析股票的預(yù)測效果與股票數(shù)據(jù)量的關(guān)系,根據(jù)股票的數(shù)量大小劃分為不同的區(qū)間,該區(qū)間內(nèi)股票的預(yù)測誤差和擬合優(yōu)度的平均值如表6。從結(jié)果可以看出,當股票的數(shù)據(jù)量大于500,RMSE、MAE及R2變化不大;當股票的數(shù)據(jù)量小于500時,性能指標較差。每年的交易日約為250天,所以上市兩年以上的股票,比上市不足兩年的股票的預(yù)測誤差小、擬合優(yōu)度高,預(yù)測效果更好。
表6 不同股票數(shù)據(jù)量區(qū)間的性能指標Table 6 Performance indicators of different intervals of stock data volume
利用EMD將股票數(shù)據(jù)分解為不同尺度分量,由于數(shù)據(jù)的復(fù)雜性不同,分解后的IMF數(shù)量不同,計算IMF數(shù)量為i的所有股票的RMSE、MAE及R2均值,i=1,2,…,10,圖7中(a)、(b)分別為RMSE、MAE及R2隨IMF數(shù)量變化曲線圖。從圖中可以看出,當IMF數(shù)量大于等于6時,誤差降低的速度和R2增長速度變緩,說明當股票的IMF數(shù)量大于等于6時,IMF分量數(shù)目對股票預(yù)測誤差的影響較小,而IMF分量數(shù)量小于6時,股票的預(yù)測誤差相對較高。因此EMD分解后IMF分量數(shù)目大于等于6的股票預(yù)測效果更好。
圖7 RMSE、MAE、R2隨IMF數(shù)量變化曲線圖Fig.7 Change curve with IMF of RMSE、MAE、R2
股票指數(shù)反映了股票市場的價格漲跌,投資者通過股票指數(shù)的變動情況預(yù)測股票市場未來的走勢。本節(jié)對上證指數(shù)、深證成指、上證50、中證500、滬深300通過不同的模型對其進行預(yù)測,預(yù)測結(jié)果見表7至表11。從表中可以看出,TELM的預(yù)測效果最佳,其次是EMDLSTM模型。其中TELM模型在上證50的預(yù)測中,R2值比EMD-LSTM提高了5.6%,說明TELM能有效提高股票指數(shù)的預(yù)測效果,更好地捕捉市場未來走勢。
表7 上證指數(shù)的預(yù)測性能對比Table 7 Comparison of prediction performance of Shanghai stock index
表8 深證成指的預(yù)測性能對比Table 8 Comparison of prediction performance of SZSE com-ponent index
表9 上證50的預(yù)測性能對比Table 9 Comparison of prediction performance of SSE 50
表10 中證500的預(yù)測性能對比Table 10 Comparison of prediction performance of CSI 500
表11 滬深300的預(yù)測性能對比Table 11 Comparison of prediction performance of CSI 300
當選擇一支股票進行投資時,由于無法準確估計股票未來很長一段時間的漲跌情況,難以確定股票的買入和賣出的時機。投資中收益越高意味著風險越高,如何在一定風險下獲得最大收益是很多投資者關(guān)心的問題。本節(jié)模擬真實的股票交易過程,利用股票的預(yù)測收盤價,計算預(yù)測回報率,提出一種股票投資策略,獲取在這種策略下股票的損失與收益情況。回報率反映了股票的盈利能力,當回報率大于0時,回報率越高說明收益越高,當回報率小于0時,回報率越高說明損失越小。T時的回報率RT以及預(yù)測回報率RPT的計算公式如下:
其中,porfitT表示T時的資產(chǎn)總值,profitT0表示初始時刻T0的資產(chǎn)總值,preporfitT表示根據(jù)T時預(yù)測收盤價Y?T計算的買入或賣出后的資產(chǎn)總值。
假設(shè)初始時刻T0時資產(chǎn)總值profitT0為10 000元,每次買入都是用目前的總資產(chǎn)全部買入該股票,每次賣出都是將持有的股票全部賣出,并考慮每次買入和賣出的交易手續(xù)費為0.4%。根據(jù)預(yù)測回報率RPT、預(yù)測收盤價Y?T以及T-1、T-2時的真實收盤價YT-1、YT-2,基于“低價買入、高價賣出”的原則,制定的投資策略如下:當未持有該股票時,如果T-1時的收盤價YT-1低于T-2時的收盤價YT-2、T時預(yù)測收盤價Y?T比T-1時降低0.5%,即YT-1<YT-2、Y?T<YT-1×(1-0.5%),則全部買入;當持有股票時,如果T-1時的收盤價YT-1高于T-2時的收盤價YT-2、預(yù)測收盤價Y?T增長1%,即YT-1>YT-2、Y?T>YT-1×(1+1%),或者預(yù)測回報率R PT大于0并且比T-1時的回報率RT-1下降50%,即0<RPT<RT-1×50%,則全部賣出。三元股份、圣龍股份、西王食品在2021年6月17日至2021年11月1日期間的收益情況如圖8至圖10,其中Real表示只根據(jù)已知的股票收盤價進行買賣,沒有考慮預(yù)測收盤價。
從圖8至圖10中不同趨勢股票的回報率曲線圖可以看出,通過參考股票收盤價的預(yù)測值進行股票交易,能有效提高回報率,降低投資風險,而沒有考慮預(yù)測的股票收盤價的Real曲線則收益率低,容易造成經(jīng)濟損失。對比三元股份的回報率曲線圖8和價格曲線圖4可以看出,三元股份估價總體是上升趨勢,且增速緩慢,TELM和DTRSI都取得較好的收益率;對比圣龍股份的回報率曲線圖9和收盤價曲線圖5,可以發(fā)現(xiàn),圣龍股份的股票收盤價在此期間總體是先漲后跌,且在前期上漲階段價格漲跌波動幅度大,TELM在上漲階段獲得了最大回報率,在后期下跌階段及時賣出,未造成嚴重的經(jīng)濟損失;圖10和圖6分別為西王食品的回報率曲線和收盤價曲線,西王食品的收盤價總體呈現(xiàn)下跌趨勢,極易造成經(jīng)濟損失,圖10的回報率曲線可以看出,TELM在合適的時間賣出,保證了收益,而DTRSI、EMD-LSTM未能及時止損,造成了嚴重的經(jīng)濟損失。由此可見,參考TELM預(yù)測的收盤價進行投資決策比DTRSI、EMDLSTM預(yù)測的股票收盤價更能有效降低股民的投資風險、提高投資收益。不同模型的回報率如表12所示,3個模型中TELM的平均回報率、最低回報率、最高回報率均為最大值。
表12 三種模型的回報率統(tǒng)計Table 12 Return rate statistics of three models %
圖8 三元股份回報率曲線Fig.8 Sanyuan shares return rate curve
圖9 圣龍股份回報率曲線Fig.9 Shenglong shares return rate curve
圖10 西王食品回報率曲線Fig.10 Xiwang foods return rate curve
表12統(tǒng)計了3個模型的最終遭受了經(jīng)濟損失的股票的占比及其回報率均值和盈利的股票占比及其回報率均值。損失股票占比越高、回報率均值越低說明風險越大,反之,盈利股票占比越高、回報率均值越高,說明該模型的收益越高。3個模型相比,TELM在損失股票占比中最低、盈利股票占比中最高,不同模型的損失回報率均值大小關(guān)系為DTRSI
為了充分利用股市內(nèi)不同股票的價格波動之間的關(guān)聯(lián)性,提高股票的預(yù)測效果,本文提出一種基于深度遷移學習的多尺度股票預(yù)測模型TELM,用于預(yù)測單支股票或指數(shù)的收盤價。通過EMD將收盤價數(shù)據(jù)分解為多尺度分量IMF和RES,從非線性、非平穩(wěn)的股票數(shù)據(jù)中捕獲股票價格與時間的關(guān)系,并利用深度遷移學習的方法訓練預(yù)測模型,從市場內(nèi)其他股票的歷史數(shù)據(jù)中提取信息,提高股票的預(yù)測效果。實驗對500支股票和上證指數(shù)、深證成指、上證50、中證500、滬深300進行預(yù)測,并根據(jù)預(yù)測結(jié)果模擬股票交易過程。實驗結(jié)果表明,與MA、LSTM、CNN-LSTM、EMD-LSTM和DTRSI相比,TELM模型能更好地預(yù)測股票未來趨勢,預(yù)測誤差更低、擬合效果更好。從行業(yè)因素、上市時間、IMF分量個數(shù)的角度進行分析發(fā)現(xiàn),通過在預(yù)訓練數(shù)據(jù)集中加入某行業(yè)的部分股票數(shù)據(jù),能有效提升該行業(yè)內(nèi)其他股票的預(yù)測效果,并且通過經(jīng)驗?zāi)B(tài)分解后IMF個數(shù)越多,股票的預(yù)測效果越好。模擬股票交易過程的實驗表明,通過預(yù)測股票收盤價能有效提高股票的投資回報率,對股民的投資決策有重要的指導(dǎo)意義。
股票的波動還受經(jīng)濟、政策等因素的影響,如何利用這些因素提升股票的預(yù)測效果,是未來可以進一步研究的內(nèi)容。