接上一篇文章基于深度神經(jīng)網(wǎng)絡(luò)的股票多因子預(yù)測(cè)模型(上)
多因子建模
數(shù)據(jù)結(jié)構(gòu)
多因子模型處理的數(shù)據(jù)結(jié)構(gòu)是標(biāo)準(zhǔn)的面板數(shù)據(jù),包括三個(gè)維度:個(gè)股、時(shí)間、 因子,對(duì)應(yīng)的應(yīng)變量是 T+1 期的收益率。
應(yīng)用于 RNN 網(wǎng)絡(luò)結(jié)構(gòu)中時(shí),與傳統(tǒng)的多因子模型有一定的區(qū)別:
T+1 期的收益率仍然是訓(xùn)練的標(biāo)簽(label),因子對(duì)應(yīng)的是樣本的特征(feature), 個(gè)股對(duì)應(yīng)的是一個(gè)樣本,但是,時(shí)間維度,在 RNN 中,是一個(gè)循環(huán)的過程,將過去 T-n 期的因子數(shù)據(jù)都要納入 T+1 期收益率的預(yù)測(cè)之中:

多因子的 RNN 數(shù)據(jù)結(jié)構(gòu)
我們先設(shè)定具體的參數(shù),再進(jìn)一步理解 RNN 在多因子訓(xùn)練中的具體過程。
參數(shù)設(shè)定
回測(cè)時(shí)間:2007 年 5 月 1 日-2016 年 4 月 30 日,該時(shí)間區(qū)間下月度數(shù)據(jù)訓(xùn)練樣本數(shù)超過 18w(每一個(gè)股票每一個(gè)月底代表一個(gè)樣本)
策略時(shí)間:2016年 5月 1日-2017年 4月 30日
RNN 時(shí)間長(zhǎng)度( steps):24 個(gè)月,即每一個(gè)訓(xùn)練樣本包含過去 24 個(gè)月的因子 數(shù)據(jù),依次從第一個(gè)月輸入神經(jīng)網(wǎng)絡(luò),并將返回值與下一個(gè)月因子同時(shí)循環(huán)輸 入神經(jīng)網(wǎng)絡(luò),以此類推,直到得到第 24 個(gè)月的預(yù)測(cè)值。
因子數(shù):由于放入神經(jīng)網(wǎng)絡(luò)中訓(xùn)練,我們?cè)谄诔醪⒉辉u(píng)價(jià)因子的有效性,同時(shí)也不對(duì)因子進(jìn)行合并,全部輸入模型之中。(剔除部分相關(guān)性過高,且屬于同類因子,該過程可以降低模型訓(xùn)練過擬合的可能)最終入選 48個(gè)小因子,屬于10 類常見的風(fēng)格因子。(詳見后文統(tǒng)計(jì)與國(guó)信多因子系列報(bào)告)
分類數(shù):為了驗(yàn)證預(yù)測(cè)的準(zhǔn)確性,同時(shí)排除樣本中的部分噪聲,我們將樣本的收益率類型分為三類:上漲(月收益率大于 3%)、下跌(月收益率小于-3%)、 中性(月收益率處于-3%與 3%之間)
batch size:1000,該參數(shù)屬于 RNN 神經(jīng)網(wǎng)絡(luò)的系統(tǒng)參數(shù),是 BP 算法中用來計(jì)算梯度的參數(shù),即每次的訓(xùn)練,隨機(jī)抽取 18w 訓(xùn)練樣本中的 1000 個(gè)樣本作為訓(xùn)練樣本。
隱層神經(jīng)元個(gè)數(shù):400,2 層,該參數(shù)同樣屬于 RNN 神經(jīng)網(wǎng)絡(luò)的系統(tǒng)參數(shù),是 輸入樣本與隱層細(xì)胞連接的“神經(jīng)”個(gè)數(shù),受限于電腦的性能,只能設(shè)定為三位數(shù),隱層個(gè)數(shù)也僅為 2 層。
學(xué)習(xí)速率:0001,RNN 神經(jīng)網(wǎng)絡(luò)的系統(tǒng)參數(shù),是模型訓(xùn)練時(shí)梯度下降的速度, 過 高容易導(dǎo)致梯度消失 ,過低則訓(xùn)練過慢。
交叉檢驗(yàn)比例:10%,為了防止模型過擬合,選擇 18w 樣本中的 90%作為訓(xùn)練 集,用以訓(xùn)練模型參數(shù),而剩余 10%不參與訓(xùn)練,只作為測(cè)試集進(jìn)行檢驗(yàn),如果訓(xùn)練集準(zhǔn)確率與測(cè)試集準(zhǔn)確率同時(shí)上升,則說明模型過擬合的可能較小。
需要說明的是,通過訓(xùn)練,我們發(fā)現(xiàn),最后的 4 個(gè) RNN 系統(tǒng)參數(shù),在本推文中并不敏感,我們只設(shè)定為常見的參數(shù)值,就可以得到較為理想的準(zhǔn)確率。
訓(xùn)練結(jié)果
數(shù)據(jù)預(yù)處理:仿照多因子的流程,對(duì)截面因子進(jìn)行去極值、標(biāo)準(zhǔn)化的處理,同時(shí), 為了剔除行業(yè)的效果, 截面單因子對(duì)行業(yè)矩陣回歸,取殘差作為最終輸入的因子 數(shù)據(jù)。
樣本內(nèi)訓(xùn)練
經(jīng)過100次迭代,已經(jīng)能夠觀察到訓(xùn)練收斂的結(jié)果。


基于上圖的基本的兩層 RNN 網(wǎng)絡(luò)結(jié)構(gòu),得到的損失率如下圖:

Basic_LSTM
轉(zhuǎn)換為模型的 3 類收益率預(yù)測(cè)值與真實(shí)值的對(duì)比準(zhǔn)確率: 損失率

從曲線中可以看到,檢驗(yàn)集的準(zhǔn)確率最終收斂于 85%-90%之間,這個(gè)準(zhǔn)確率水平在機(jī)器學(xué)習(xí)的大多數(shù)模型中并不足夠高,但考慮到我們使用的是基本的 RNN結(jié)構(gòu),同時(shí)是存在市場(chǎng)博弈的股票市場(chǎng),我們認(rèn)為這一收斂水平能夠反映出LSTM 神經(jīng)網(wǎng)絡(luò)對(duì)多因子數(shù)據(jù)進(jìn)行了有效的訓(xùn)練與特征抓取。
樣本外檢驗(yàn)
通過訓(xùn)練的最終結(jié)果,我們將樣本外數(shù)據(jù) 2016-2017 輸入,得到模型對(duì)未來 12個(gè)月的股票收益率的估計(jì)。其準(zhǔn)確率的走勢(shì)如下圖:

Basic_LSTM樣本外選股準(zhǔn)確率
樣本外的準(zhǔn)確率最終收斂水平僅高于 50%,但是需要區(qū)分這一水平所能夠反映的真實(shí)預(yù)測(cè)程度。為了直觀的檢驗(yàn) LSTM 模型樣本外的選股效果,我們選擇模型給出的每個(gè)月個(gè)股的預(yù)測(cè)結(jié)果作為選股標(biāo)準(zhǔn)。
每月末,將樣本外數(shù)據(jù)輸入模型,并根據(jù)模型輸出的對(duì)個(gè)股收益的三類(-3%、3%)預(yù)測(cè),將全 A 股股票分為三個(gè)組合——高收益預(yù)測(cè)、低收益預(yù)測(cè)、中性預(yù)測(cè)。

全A股預(yù)測(cè)組合凈值
可以看到,模型在最近一年,對(duì)高、低收益的預(yù)測(cè)勝率較高,但對(duì)于居中的中性組合預(yù)測(cè)效果較差。

全A股多空組合累計(jì)凈值
多空超額收益在最近 12 個(gè)月的勝率為 75%。從多空累計(jì)凈值上看,多空超額收益最近 12 個(gè)月在 4.5%。
為了進(jìn)一步驗(yàn)證模型對(duì)于股票預(yù)測(cè)的準(zhǔn)確性,我們把選股的標(biāo)準(zhǔn)從模型輸出的預(yù)測(cè)變?yōu)槟P妥罱K預(yù)測(cè)前的激活值。由于我們將預(yù)測(cè)目標(biāo)分為了三類(高、中、 低),神經(jīng)網(wǎng)絡(luò)會(huì)選擇激活值最大的類別,作為預(yù)測(cè)類別。因此,激活值實(shí)際上 反映了模型對(duì)個(gè)股未來收益的預(yù)測(cè)概率。
基于此,我們重新構(gòu)建三類股票組合,每一期,選擇激活值最大的 30%的股票最 為對(duì)應(yīng)組合:

30%多空組合凈值
可以發(fā)現(xiàn),模型對(duì)于中性收益的預(yù)測(cè)效果仍然沒有改進(jìn),但是多空收益的預(yù)測(cè)效果比全 A 股更加準(zhǔn)確。

多空組合的超額收益超過 9%,而最近 12 個(gè)月的月度勝率超過 90%。通過樣本外數(shù)據(jù)的回測(cè),我們發(fā)現(xiàn),通過 LSTM 的 RNN 網(wǎng)絡(luò)學(xué)習(xí),對(duì)股票的收益率預(yù)測(cè)實(shí)際上是較為準(zhǔn)確的,同時(shí),模型對(duì)于不同收益類型的預(yù)測(cè)概率能夠更進(jìn)一 步的反映出股票上漲與下跌的概率大小。
結(jié)果分析
回顧 RNN 神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),在基本的 LSTM 結(jié)構(gòu)中,每一期的輸入樣本,其與隱層、隱層與輸出層的 連接權(quán)重是共享的,也就是說,在 我們具體的模 型里,每一期 48 個(gè)因子的輸入,都對(duì)應(yīng)有 400 個(gè)權(quán)重連接到隱層 400 個(gè)神經(jīng)元上, 每一期的循環(huán)都會(huì)對(duì)這 400 個(gè)權(quán)重進(jìn)行更新。
下圖是輸入層的權(quán)重分布的更新過程:

輸入層權(quán)重 w 分布變化

輸入層 bias 分布變化

輸入層權(quán)重 w 分布

輸入層 bias 分布
與我們觀察到的模型訓(xùn)練的損失率收斂特征一致,神經(jīng)網(wǎng)絡(luò)在較早的迭代次數(shù)時(shí)已經(jīng)逐漸收斂,參數(shù)權(quán)重趨于穩(wěn)定。
既然知道了輸入層的權(quán)重,我們考慮觀察訓(xùn)練結(jié)束時(shí),模型得到的因子與隱層的連接權(quán)重,作為因子在系統(tǒng)中的貢獻(xiàn)程度。

參數(shù)權(quán)重變化示意圖
從示意圖能夠直觀的理解因子的權(quán)重。X1、X2 代表實(shí)際模型中的因子,連接輸入樣本 X1、X2 與隱層神經(jīng)元的曲線即為訓(xùn)練的權(quán)重,隨著樣本迭代,權(quán)重朝著較優(yōu)解的方向變化,權(quán)重越大,則示意圖中的曲線越粗。
由于我們觀察到本報(bào)告中的參數(shù)分布較為穩(wěn)定,因此我們認(rèn)為,可以大致將輸入層因子的權(quán)重總和作為該因子在模型中的貢獻(xiàn)度。雖然因子真實(shí)的貢獻(xiàn)度也 會(huì)受到隱層權(quán)重的影響,但輸入層的最終結(jié)果仍然具有一定的參考意義。
輸入層因子權(quán)重絕對(duì)值之和

總結(jié)
多因子模型的發(fā)展趨于成熟,因子的 alpha 收益出現(xiàn)了下降的趨勢(shì)。如果維持多因子模型的收益是量化領(lǐng)域的一個(gè)核心問題。
我們認(rèn)為 擴(kuò)展的方向包括新的因子挖掘、股票池的區(qū)分,以及非線性因子特征的挖掘。而機(jī)器學(xué)習(xí),正是非線性問題的一個(gè)有效解決途徑。具體到本篇推文涉及的深度神經(jīng)網(wǎng)絡(luò) RNN 來說,即是通過時(shí)間維度的擴(kuò)展,以及空間深度的擴(kuò)展,將目前的因子空間,擴(kuò)散到更高維度的空間中去,并在其中找尋有效的路徑,實(shí)現(xiàn)對(duì)因子模型的預(yù)測(cè)。
在嚴(yán)格區(qū)分了訓(xùn)練集、測(cè)試集、樣本外數(shù)據(jù)集之后,我們通過訓(xùn)練能夠得到較高準(zhǔn)確度的收斂結(jié)果,并且在樣本外數(shù)據(jù)回測(cè)中,得到顯著的超額收益。交叉檢驗(yàn)的準(zhǔn)確度接近 90%,樣本外多空收益最近 12 個(gè)月的勝率則超過 90%。
這些結(jié)果的意外之處在于,利用基本的 LSTM 結(jié)構(gòu),能夠在參數(shù)未優(yōu)化之前得到如此高的準(zhǔn)確率與顯著水平,對(duì)于模型的進(jìn)一步改進(jìn)和優(yōu)化令人有所期待。同時(shí),這些結(jié)果的意料之中在于,當(dāng)我們不再將機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)當(dāng)做復(fù)雜的 “黑箱”,其強(qiáng)大的數(shù)據(jù)處理能力必將在投資領(lǐng)域展露出來,也同樣令人期待。
量化金融分析師(簡(jiǎn)稱AQF,Analyst of Quantitative Finance)由量化金融標(biāo)準(zhǔn)委員會(huì)(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領(lǐng)域的專業(yè)水平證書。 >>>點(diǎn)擊咨詢AQF證書含金量
.png)
課程適合人群:
金融工程/數(shù)學(xué)專業(yè)背景的同學(xué)/工作人士,希望進(jìn)一步學(xué)習(xí)Python編程以及在量化投資的實(shí)戰(zhàn)應(yīng)用;
非金融工程專業(yè)背景的同學(xué)/工作人士,希望迅速成為寬客;
金融相關(guān)人員,希望學(xué)習(xí)如何系統(tǒng)的做量化策略;
個(gè)人投資者,希望系統(tǒng)學(xué)習(xí)掌握量化投資相關(guān)的實(shí)務(wù)技能,從模型開發(fā),回測(cè),策略改進(jìn),搭建穩(wěn)定的量化交易系統(tǒng)。>>>點(diǎn)擊咨詢AQF課程相關(guān)問題
(點(diǎn)擊上圖了解課程詳情)
量化金融分析師AQF核心課程體系:
1、《量化投資基礎(chǔ)》
主要涵蓋了量化投資領(lǐng)域的必備知識(shí),包括:基本面分析、技術(shù)分析、數(shù)量分析、固定收益、資產(chǎn)組合管理、權(quán)益、另類投資等內(nèi)容。
2、《Python語言編程基礎(chǔ)》
包含了Python環(huán)境搭建、基礎(chǔ)語法、變量類型、基本函數(shù)、基本語句、第三方庫、金融財(cái)務(wù)實(shí)例等內(nèi)容。旨在為金融財(cái)經(jīng)人提供最需要的編程方法。
3、《基于Python的經(jīng)典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對(duì)交易模型、波動(dòng)擴(kuò)張模型、Alpha模型、機(jī)器學(xué)習(xí)(隨機(jī)森林模型、主成分分析)、深度學(xué)習(xí)(人工神經(jīng)網(wǎng)絡(luò))等內(nèi)容。
4、《量化交易系統(tǒng)設(shè)計(jì)》
旨在學(xué)習(xí)量化交易系統(tǒng)的具體知識(shí),包括過濾器,進(jìn)入信號(hào),退出信號(hào),倉位管理等詳細(xì)內(nèi)容,并指導(dǎo)學(xué)員設(shè)計(jì)涵蓋個(gè)人交易哲學(xué)的量化交易系統(tǒng)。
5、《量化實(shí)盤交易》
旨在為解決實(shí)際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。 >>>點(diǎn)擊咨詢AQF相關(guān)問題
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國(guó)主要金融市場(chǎng)及交易產(chǎn)品的交易機(jī)制;
2、熟知國(guó)內(nèi)外期貨交易、股市交易的異同點(diǎn)和內(nèi)在運(yùn)行機(jī)制;
3、掌握經(jīng)典量化交易策略細(xì)節(jié)及其背后的交易哲學(xué);
4、掌握金融、編程和建模知識(shí)基礎(chǔ),擁有量化交易實(shí)盤操作能力;
5、具備獨(dú)立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設(shè)計(jì)的基本框架,以及風(fēng)險(xiǎn)管理和資產(chǎn)組合理論的實(shí)際運(yùn)用;
7、掌握從策略思想——策略編寫——策略實(shí)現(xiàn)餓完整量化投資決策過程;具備量化投資實(shí)戰(zhàn)交易能力。
.png)
更多內(nèi)容推薦閱讀:
2019年量化金融分析師(AQF)全國(guó)統(tǒng)一考試報(bào)名簡(jiǎn)章
Wind、Excel和Python三大金融技能兼修,下一個(gè)金融分析大神就是你
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機(jī)構(gòu) AQF是什么意思
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號(hào):量化金融分析師


.png)


