文/李巖(中國人民大學(xué))
預(yù)測金融指數(shù)的趨勢是非常復(fù)雜且困難的,它包含了太多不確定因素,影響單只股票市場價(jià)值的因素更具體,如公司的財(cái)務(wù)報(bào)表、發(fā)行可轉(zhuǎn)債、對(duì)外訂立合約、突發(fā)的政治經(jīng)濟(jì)輿論事件、大規(guī)模資金的買入賣出、投資者對(duì)一個(gè)特定的公司的情緒等,這就造成了單只股票波動(dòng)的可預(yù)測性比較低。相比來說,股指作為一攬子股票,比單只股票更具有可預(yù)測性和難以被控盤性,更容易使用技術(shù)進(jìn)行預(yù)測。當(dāng)然,金融市場的本身影響因子復(fù)雜,波動(dòng)性高,這決定了股指趨勢預(yù)測的困難性和必要性,準(zhǔn)確預(yù)測有利于降低風(fēng)險(xiǎn),也可以更好地掌握經(jīng)濟(jì)發(fā)展勢頭,為國家的整體發(fā)展投資貢獻(xiàn)力量。預(yù)測股指價(jià)格的方法總結(jié)有:(1)技術(shù)分析(Technical Analysis),使用技術(shù)指標(biāo)進(jìn)行分析趨勢;(2)時(shí)間序列預(yù)測(Time Series Forecasting ),將價(jià)格作為時(shí)間序列進(jìn)行分析;(3)微分方程(Differential Equation),使用微分方程對(duì)股指波動(dòng)進(jìn)行建模和預(yù)測;(4)機(jī)器學(xué)習(xí)(Machine Learning)和數(shù)據(jù)挖掘(Data Mining)。
本文主要研究的是第四種方法,利用股票市場的大數(shù)據(jù)集,使用隨機(jī)森林的分類方法進(jìn)行處理。機(jī)器學(xué)習(xí)模型在股票市場行為中是一個(gè)新的應(yīng)用。該方法與傳統(tǒng)的預(yù)測方法有所不同。早期使用技術(shù)指標(biāo)進(jìn)行股票價(jià)格預(yù)測,夏毅和藍(lán)伯雄(2004)[1]證明了中國股票市場弱有效狀態(tài)下的技術(shù)分析的有效性問題。趙國順(2009)[2]基于時(shí)間序列分析技術(shù)分析股票價(jià)格趨勢;王曉曄和王正歐(2004)[3]又對(duì)時(shí)間序列方法進(jìn)行了改進(jìn),通過正則化訓(xùn)練的神經(jīng)網(wǎng)絡(luò)與粗集理論相結(jié)合的股票時(shí)間序列數(shù)據(jù)挖掘技術(shù),預(yù)測效果比單純時(shí)間序列要好。在微分方程的應(yīng)用方面,李凱(2014)[4]應(yīng)用了隨機(jī)微分方程為股票期權(quán)定價(jià)。在機(jī)器學(xué)習(xí)的應(yīng)用方面,也有國內(nèi)外不少學(xué)者進(jìn)行了探索,Li等(2014)[5]利用logistic回歸模型并考慮了股票價(jià)格對(duì)外部條件的敏感性,預(yù)測成功率為55.65%。Devi等(2015)[6]利用混合的支持向量機(jī)模型,采用了RSI、貨幣流量指數(shù)、均線、隨機(jī)振蕩器和MACD等技術(shù)指標(biāo),進(jìn)行了預(yù)測??傮w來看,股票價(jià)格具有的混沌性和高波動(dòng)性,使預(yù)測其確切的價(jià)值變得非常困難,因此將股票預(yù)測作為分類問題處理,比將其作為回歸問題處理,不需要那么精確的預(yù)測結(jié)果,相對(duì)會(huì)取得更好的效果。在本次研究中,使用一種集成學(xué)習(xí)算法,即隨機(jī)森林對(duì)股票指數(shù)進(jìn)行預(yù)測。
使用預(yù)測算法來確定股票市場價(jià)格的未來趨勢通常建立在有效市場假設(shè)前提下,也就是當(dāng)前的股票價(jià)格完全反映了所有相關(guān)信息。它意味著,如果有人想通過分析歷史股票數(shù)據(jù)獲得優(yōu)勢,那么整個(gè)市場就會(huì)意識(shí)到這個(gè)優(yōu)勢,結(jié)果,股票的價(jià)格就會(huì)被修正。這是一個(gè)極具爭議的理論,當(dāng)然此假設(shè)不是本次研究的重點(diǎn),我們暫時(shí)接受這一假設(shè)并在這一假設(shè)基礎(chǔ)上做研究。
隨機(jī)森林是將一組決策樹模型進(jìn)行袋裝,通過對(duì)多個(gè)決策樹產(chǎn)生結(jié)果投票,根據(jù)少數(shù)服從多數(shù)的原則,對(duì)產(chǎn)生最終的分類決策。該方法減少了構(gòu)建決策樹時(shí)常見的方差和過擬合問題,提高了學(xué)習(xí)算法的穩(wěn)定性和準(zhǔn)確性,單一的決策樹具有非常低的偏差和高方差,可能會(huì)導(dǎo)致:為了學(xué)習(xí)精度而把樹長得非常深,這種情況往往會(huì)過度訓(xùn)練集;數(shù)據(jù)中的輕微噪音也可能會(huì)導(dǎo)致樹以完全不同的方式生長,隨機(jī)森林通過在特征空間的不同子空間上訓(xùn)練多個(gè)決策樹以略微增加偏差為代價(jià)克服了這個(gè)問題。這意味著森林中所有的樹都看不到整個(gè)訓(xùn)練數(shù)據(jù)。數(shù)據(jù)被遞歸地分割成多個(gè)分區(qū)。隨機(jī)森林有眾多優(yōu)點(diǎn),如:對(duì)特征很多的數(shù)據(jù)也可以適用, 不用降維,不需要做特征選擇;可以輸出特征的重要性排序,方便邏輯解釋;可以判斷出不同特征之間的相互影響;訓(xùn)練速度比較快;不容易過擬合;可以適用不平衡的數(shù)據(jù)等。
隨機(jī)森林的基礎(chǔ)是決策樹,那么決策樹的節(jié)點(diǎn)是怎么排序的呢,原則是信息增益最大的排前面,由分裂引起的信息增益可計(jì)算如下:
其中I(N)是節(jié)點(diǎn)N的Gini impurity或香農(nóng)熵,PL是節(jié)點(diǎn)N在劃分后去往左邊子節(jié)點(diǎn)的比例,PR是節(jié)點(diǎn)N在劃分后去往右邊子節(jié)點(diǎn)的比例,NL和NR分別是左右節(jié)點(diǎn)。
Gini impurity作為衡量每個(gè)節(jié)點(diǎn)劃分質(zhì)量的函數(shù),公式為:
其中P(Wi)是類別標(biāo)簽i的總體比例。
香農(nóng)熵也可以用來判斷分裂質(zhì)量,它衡量信息內(nèi)容的混亂程度,是信息量的數(shù)學(xué)期望。在決策樹中,香農(nóng)熵用于衡量樹的特定節(jié)點(diǎn)中包含的信息的不可預(yù)測性,節(jié)點(diǎn)N的熵計(jì)算公式為:
其中d是類別的數(shù)量,P(Wi)是第i個(gè)類別標(biāo)簽占總體的比例。
技術(shù)指標(biāo),是利用時(shí)間序列價(jià)格計(jì)算的參數(shù),旨在預(yù)測價(jià)格方向。它們是投資者廣泛用于預(yù)測市場看跌或看漲信號(hào)的工具。我們將價(jià)量數(shù)據(jù)Open開盤價(jià)、High最高價(jià)、Low最低價(jià)、Close收盤價(jià)、Volume交易量及技術(shù)指標(biāo)數(shù)據(jù)MA5、MA10、MA20、MA60、MACD_DIF、MACD_DEA、 MACD_MACD、KDJ_K、KDJ_D、KDJ_J、CCI_CCI、DMI_PDI、DMI_MDI、DMI_ADX、DMI_ADXR、 DMA_DIF、TRIX、CR、VR、OBV、ASI進(jìn)行收集,研究數(shù)據(jù)均來自公開的交易數(shù)據(jù),收集了2010年1月1日至2021年12月31日的399300指數(shù)數(shù)據(jù)進(jìn)行測試,這些數(shù)據(jù)構(gòu)成了我們的整個(gè)數(shù)據(jù)集。接下來將數(shù)據(jù)進(jìn)一步分為訓(xùn)練集(整個(gè)數(shù)據(jù)的90%)和測試集(整個(gè)數(shù)據(jù)的10%)。并且將數(shù)據(jù)輪流做測試集10次,以提高模型的準(zhǔn)確度,將模型進(jìn)行擬合訓(xùn)練。
研究使用的隨機(jī)森林算法創(chuàng)新性地采用一日一訓(xùn)練的方法進(jìn)行預(yù)測,即按照今日的實(shí)際漲跌數(shù)據(jù),投入下一輪訓(xùn)練,得出次交易日的預(yù)測數(shù)據(jù),以此類推,相當(dāng)于每日訓(xùn)練一次模型,改變過往只預(yù)測一次的方法,閾值選用0.5,即在預(yù)測概率大于0.5時(shí),預(yù)測股票指數(shù)的次日將上漲,即預(yù)測次日的收盤價(jià)將大于開盤價(jià),操作是在次交易日的開盤價(jià)買入,收盤價(jià)賣出,來計(jì)算實(shí)際收益。舉個(gè)例子,使用截止到今日的實(shí)際數(shù)據(jù),預(yù)測股票指數(shù)的次日的漲跌情況,使用次日的實(shí)際價(jià)格重新投入訓(xùn)練,預(yù)測后日的漲跌情況,以此循環(huán)往復(fù),計(jì)算所有日期的預(yù)測綜合效果。
在模型的效果評(píng)價(jià)方面,采用了AUC和凈值法。
AUC(Area Under Curve)被定義為ROC曲線(Receiver Operating Characteristic)與下坐標(biāo)軸之間的面積,ROC曲線接近ROC的左邊沿和上邊沿時(shí),也就是曲線下的面積越大,測試越準(zhǔn)確。如果曲線接近ROC空間的45度對(duì)角線,則意味著測試不準(zhǔn)確。當(dāng)然也要考慮金融預(yù)測的復(fù)雜性,AUC的界值不需要設(shè)的很高,實(shí)際操作中,可以很容易地通過sklearn 包中的metrics.roc_auc_score函數(shù)來計(jì)算出隨機(jī)森林模型預(yù)測的準(zhǔn)確率是0.52。
利用我們的模型產(chǎn)生的預(yù)測結(jié)果,可以判斷次日的漲跌,進(jìn)而進(jìn)行買賣決策。如果預(yù)測是1,這意味著次日的指數(shù)收盤價(jià)會(huì)高于開盤價(jià),那么交易建議是購買指數(shù)。而如果預(yù)測是0,表示價(jià)格預(yù)期是下跌,收盤價(jià)會(huì)低于開盤價(jià),建議按兵不動(dòng)。最終形成的凈值曲線如圖1所示??梢杂?jì)算得出11年的凈值為1.929395,相比滬深300指數(shù)凈值1.392133有明顯提升,從圖1中也可以看出對(duì)曲線的波動(dòng)率有明顯的平滑作用。
圖1 隨機(jī)森林與399300指數(shù)對(duì)比凈值圖
由于股票市場的非線性、動(dòng)態(tài)性和復(fù)雜性,對(duì)其進(jìn)行預(yù)測是非常困難的。然而,近年來,機(jī)器學(xué)習(xí)技術(shù)在股票預(yù)測中被證明是有效的。研究使用了隨機(jī)森林分類器和眾多的技術(shù)指標(biāo)因子來建立我們的預(yù)測模型,通過計(jì)算準(zhǔn)確性和凈值等參數(shù)來評(píng)估模型,產(chǎn)生了1.9的凈值效果并有效平滑了波動(dòng),預(yù)測準(zhǔn)確率為52%,考慮到股票市場的復(fù)雜性和不可完全預(yù)測性,模型被證明可以預(yù)測未來的股票指數(shù)運(yùn)動(dòng)方向。隨機(jī)森林分類的預(yù)測股指的意義在于,非線性的問題也可以用線性判別型機(jī)器學(xué)習(xí)算法來解決,生活中,尤其是金融領(lǐng)域,很多問題都不是線性可分的,在這類問題中,所采用的解決方案方法需要一種范式轉(zhuǎn)換,做出微小修改可能會(huì)使思路更加寬廣。
隨機(jī)森林模型對(duì)股值預(yù)測是技術(shù)上的擴(kuò)展,也是對(duì)技術(shù)指標(biāo)的創(chuàng)新應(yīng)用,是傳統(tǒng)與新時(shí)代的碰撞。模型可以用來設(shè)計(jì)新的交易策略、應(yīng)用在新的品種上執(zhí)行股票投資組合管理,預(yù)測股指趨勢來選取一攬子股票進(jìn)行投資。未來的發(fā)展改進(jìn)主要有四個(gè)方面:
(1)模型時(shí)間上的擴(kuò)展應(yīng)用,在未來的工作中,可以建立隨機(jī)森林模型來預(yù)測以小時(shí)或分鐘為單位的短時(shí)間窗口的趨勢,更好地為市場提供流動(dòng)性,也可以預(yù)測周或月為單位的趨勢,較長周期的預(yù)測可以更好地掌握經(jīng)濟(jì)發(fā)展勢頭,為國家的整體發(fā)展投資貢獻(xiàn)力量;
(2)模型閾值的更改,現(xiàn)在選取0.5作為決策閾值,可以根據(jù)風(fēng)險(xiǎn)承受能力,選取在不同閾值下的收益與風(fēng)險(xiǎn)的平衡值;
(3)不同機(jī)器學(xué)習(xí)算法的集合也可以檢查其在股指預(yù)測的魯棒性。
相關(guān)鏈接
隨機(jī)森林指的是利用多棵樹對(duì)樣本進(jìn)行訓(xùn)練并預(yù)測的一種分類器。該分類器最早由Leo Breiman和AdeIe CutIer提出,并被注冊成了商標(biāo)。
在機(jī)器學(xué)習(xí)中,隨機(jī)森林是一個(gè)包含多個(gè)決策樹的分類器, 并且其輸出的類別是由個(gè)別樹輸出的類別的眾數(shù)而定。 Leo Breiman和AdeIe CutIer發(fā)展出推論出隨機(jī)森林的算法。