王惠瑩,郝泳濤
(同濟(jì)大學(xué)電子與信息工程學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系,上海 201824)
隨著我國人均可支配收入的提高,人民群眾的理財(cái)意識不斷增強(qiáng),投資股票市場的熱情不斷高漲。股票投資的顯著特點(diǎn)是高風(fēng)險、高收益,如何降低甚至規(guī)避投資失敗的風(fēng)險,一直是社會各界人士關(guān)心的重點(diǎn)話題。
股票價格表現(xiàn)為一種十分不穩(wěn)定的時間序列,它的走勢受多種因素的影響,例如經(jīng)濟(jì)因素、政治因素和公司經(jīng)營狀況等??v觀股票市場的投資歷史,大眾投資者普遍使用基本面分析、技術(shù)分析和演化分析來預(yù)測股價走勢。近十年來,機(jī)器學(xué)習(xí)算法在金融時間序列預(yù)測方面取得長足的發(fā)展。Krauss等[1]分析了在統(tǒng)計(jì)套利背景下,使用集成深度神經(jīng)網(wǎng)絡(luò)(DNN)、梯度增強(qiáng)決策樹(GBDT)、隨機(jī)森林(Random Forest)三種算法開發(fā)交易策略:每天買入若干只低估股票、賣出若干只高估股票,交易信號由預(yù)測每只股票超過日內(nèi)收益中位數(shù)的概率生成。實(shí)驗(yàn)發(fā)現(xiàn)每天買入、賣出10只股票時收益最高,日回報(bào)率可達(dá)0.45%。Fischer T et al[2]在此基礎(chǔ)上以長短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM)為例,研究深度學(xué)習(xí)算法在金融市場預(yù)測中的性能表現(xiàn),發(fā)現(xiàn)日收益率提高到0.46%。Pushpendu Ghosh et al[3]采用Krauss et al[1]中的統(tǒng)計(jì)套利交易策略,引入關(guān)于開盤價的回報(bào)為特征,使用隨機(jī)森林和長短期記憶神經(jīng)網(wǎng)絡(luò)分析在預(yù)測標(biāo)普500成份股樣本外方向移動方面的有效性。實(shí)驗(yàn)結(jié)果表明,扣除交易成本前,隨機(jī)森林和長短期記憶神經(jīng)網(wǎng)絡(luò)的日回報(bào)率分別是0.54%和0.64%。
投資機(jī)構(gòu)已經(jīng)開始在股票交易中使用量化投資用于決策。與傳統(tǒng)投資策略相比,量化投資在系統(tǒng)性、準(zhǔn)確性、及時性和分散化上有著明顯優(yōu)勢。本文選取MACD、ADX、RSI、BB、FI五個技術(shù)指標(biāo),與下周股價走勢一起用于構(gòu)建特征工程,建立一個基于隨機(jī)森林的股價走勢預(yù)測模型。
隨機(jī)森林以決策樹為基學(xué)習(xí)器,在Bagging集成的基礎(chǔ)上,于生成決策樹的過程中引入隨機(jī)屬性選擇,基決策樹之間差異度的增加會導(dǎo)致最終集成的隨機(jī)森林泛化性能的提升。隨機(jī)森林的具體構(gòu)造過程如下:
(1)假設(shè)有m個帶標(biāo)簽的樣本,有放回地隨機(jī)選擇m個樣本組成采樣集,用采樣集訓(xùn)練決策樹;
(2)分裂決策樹的結(jié)點(diǎn)時,從當(dāng)前結(jié)點(diǎn)的屬性集合(假定含有d個屬性)中隨機(jī)選擇k個屬性作為候選屬性集(k (3)整個決策樹生成過程中每個結(jié)點(diǎn)都按照步驟(2)分裂,直至不能再分裂為止; (4)按照步驟(1)~(3)建立大量決策樹,這些決策樹就構(gòu)成隨機(jī)森林了。 技術(shù)指標(biāo)是從股票價格時間序列數(shù)據(jù)中計(jì)算出的重要參數(shù),投資者廣泛使用技術(shù)指標(biāo)檢測交易信號。本文使用的技術(shù)指標(biāo)如下: MACD的計(jì)算公式: 其中,MACD=異同移動平均線,C=收盤價,EMAn=n天指數(shù)移動平均線。MACD低于SignalLine時生成賣出信號,反之,則生成買入信號。 ADX的計(jì)算方式比較復(fù)雜,涉及到價格正向移動距離+DM、價格負(fù)向移動距離-DM、真實(shí)波動幅度TR、正向方向性指數(shù)+DI和負(fù)向方向性指數(shù)-DI等中間變量。 首先,計(jì)算動向變化: 其中,high(t)表示今日最高價,low(t)表示今日最低價。 然后,計(jì)算真實(shí)波幅: 其中,close(t-1)表示昨日收盤價。 接下來,計(jì)算動向指數(shù): 最終可計(jì)算出ADX值: +DM和-DM分別代表價格正向與負(fù)向的移動距離;+DI和-DI分別代表波動率修正后上漲和下跌趨勢。只要存在明顯趨勢,無論上漲還是下跌,DX值隨著趨勢強(qiáng)弱變動在0~100范圍內(nèi)波動,ADX是DX的14天平均線。 RSI的計(jì)算公式: RSI以數(shù)字的方法衡量買賣雙方的力量對比,是一個經(jīng)典的動量指標(biāo)。 BB的計(jì)算公式: 其中,MA(close,m)表示收盤價的m日簡單移動平均,UB表示上軌線,LB表示下軌線。 BB利用波帶顯示股價的安全高低價位,從而確定股價的波動范圍及未來走勢。 FI的計(jì)算公式: 其中,close(t)表示今日收盤價,vol(t)表示今日成交量。 FI用于指示上漲或下跌趨勢的力量大小。收盤價之差越大,力量越大;成交量越大,波動性越強(qiáng)。 除了上述5個技術(shù)指標(biāo),本文將下周股價走勢也作為一個特征用于模型訓(xùn)練。 如果下一周股票收盤價大于當(dāng)前收盤價,標(biāo)記為1,反之則標(biāo)記為0。 優(yōu)化參數(shù)是提升模型泛化能力的重要手段。為了降低參數(shù)值隨機(jī)選擇的不確定性,本文構(gòu)建了GS-RF模型,利用網(wǎng)格搜索優(yōu)化決策樹的數(shù)量(n_estimators)、決策樹的最大深度(max_depth)和是否采用袋外誤差評估模型(oob_score)三個參數(shù)。具體步驟如下: (1)獲取股票歷史數(shù)據(jù)集,并進(jìn)行數(shù)據(jù)預(yù)處理; (2)構(gòu)建特征工程; (3)把數(shù)據(jù)分為訓(xùn)練集和測試集,建立隨機(jī)森林預(yù)測模型; (4)結(jié)合網(wǎng)格搜索和隨機(jī)森林模型,確定最優(yōu)參數(shù)組合,建立GS-RF預(yù)測模型; (5)使用GS-RF模型預(yù)測股票未來收益率; (6)對比使用技術(shù)指標(biāo)的預(yù)測收益率,分析模型有效性。 圖1 實(shí)驗(yàn)流程 本文實(shí)驗(yàn)在英特爾i5 2.4 GHz四核八線程CPU,16GB RAM,Windows 10操作系統(tǒng)的計(jì)算機(jī)上進(jìn)行,使用Python語言編程,應(yīng)用pandas、numpy、tqdm、tushare、talib、sklearn等工具包。 測試參數(shù)優(yōu)化能否提高模型的泛化能力,利用tushare工具包下載中國平安2012年1月1日至2021年7月1日的開盤價、收盤價、最高價、最低價以及成交量等歷史數(shù)據(jù),共含2304個交易日。 按照3∶1的比例將數(shù)據(jù)拆分成訓(xùn)練集(1728個交易日)和測試集(576個交易日),用訓(xùn)練集訓(xùn)練隨機(jī)森林預(yù)測模型;然后用網(wǎng)格搜索優(yōu)化決策樹的數(shù)量、決策樹的最大深度和是否采用袋外誤差評估模型三個參數(shù),設(shè)定評估指標(biāo)是3折交叉測試集得分的平均值,最后用選出的參數(shù)組合構(gòu)建GS-RF模型。 決策樹的數(shù)量的范圍:1 表2 參數(shù)優(yōu)化前后實(shí)驗(yàn)結(jié)果對比(訓(xùn)練階段) 由表2可以得出,參數(shù)優(yōu)化后的隨機(jī)森林預(yù)測模型的精度為0.59,袋外估計(jì)準(zhǔn)確率得分為0.57,ROC曲線下方的面積為0.59。GS-RF模型在三個指標(biāo)上的表現(xiàn)全面優(yōu)于使用默認(rèn)參數(shù)的隨機(jī)森林預(yù)測模型。 進(jìn)一步驗(yàn)證GS-RF模型在股價走勢預(yù)測中的有效性,用模型預(yù)測結(jié)果生成信號指導(dǎo)股票交易,與純技術(shù)指標(biāo)的交易策略比較股票收益率。為了驗(yàn)證模型的預(yù)測性能與泛化能力,將模型應(yīng)用于中國平安、科大訊飛、華潤雙鶴、保利地產(chǎn)的累計(jì)收益率預(yù)測中,股票的時間范圍和屬性與實(shí)驗(yàn)1里中國平安的數(shù)據(jù)集一致。模型訓(xùn)練和測試后,對比分析實(shí)驗(yàn)結(jié)果。實(shí)驗(yàn)對比結(jié)果如圖2、圖3和表3、表4所示。 圖2 GS-RF模型與技術(shù)指標(biāo)累計(jì)收益率的對比(訓(xùn)練階段) 圖3 GS-RF模型與技術(shù)指標(biāo)累計(jì)收益率的對比(測試階段) 表3 GS-RF與其他策略的收益率對比(訓(xùn)練階段) 表4 GS-RF與其他策略的收益率對比(測試階段) 由圖2和表3可知,在訓(xùn)練階段,使用默認(rèn)參數(shù)的隨機(jī)森林模型的股票收益率不能穩(wěn)定的勝過全部技術(shù)指標(biāo)交易策略,甚至存在收益不如任何技術(shù)指標(biāo)交易策略的情況。而GS-RF模型則全面優(yōu)于技術(shù)指標(biāo)交易策略,說明參數(shù)優(yōu)化對提升模型性能是有效的。圖3和表4顯示在測試階段,應(yīng)用GS-RF模型的收益率最高,并且長期來看,收益率總體為正、風(fēng)險最小,進(jìn)一步證明了該模型在預(yù)測預(yù)測股價走勢中的可行性和出色表現(xiàn)。投資者可以通過在股票持續(xù)上漲期間持倉,股價下跌期間平倉獲利。 本文提出了一種基于網(wǎng)格搜索算法改進(jìn)的隨機(jī)森林股價走勢預(yù)測模型,即GS-RF模型。利用網(wǎng)格搜索算法對隨機(jī)森林模型進(jìn)行參數(shù)優(yōu)化,提高模型的預(yù)測精度和泛化能力。實(shí)驗(yàn)發(fā)現(xiàn)本該模型在預(yù)測股價走勢上具有可靠性,能為投資者提供參考。未來會在指標(biāo)選取、特征構(gòu)造及算法優(yōu)化上進(jìn)一步完善,還將考慮公司經(jīng)營狀況、市場指數(shù)、網(wǎng)絡(luò)輿情和國家政策等因素對股價走勢的影響。2 特征選擇
2.1 MACD(Moving Average Convergence Divergence,異同移動平均線)
2.2 ADX(Average Directional Index,平均趨向指標(biāo))
2.3 RSI(Relative Strength Index,相對強(qiáng)弱指標(biāo))
2.4 BB(Bolliger Bands,布林線指標(biāo))
2.5 FI(Force Index,強(qiáng)力指數(shù)指標(biāo))
2.6 NWM(Next Week Move,下周股價走勢)
3 搭建GS-RF模型
4 實(shí)驗(yàn)結(jié)果及分析
4.1 參數(shù)優(yōu)化
4.2 收益率對比
5 結(jié)語