機器因子庫相對人工因子庫的增量_第1頁
機器因子庫相對人工因子庫的增量_第2頁
機器因子庫相對人工因子庫的增量_第3頁
機器因子庫相對人工因子庫的增量_第4頁
機器因子庫相對人工因子庫的增量_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、TOC o 1-2 h z u HYPERLINK l _TOC_250017 一、機器學習在 Alpha 模型中的應(yīng)用 4 HYPERLINK l _TOC_250016 二、遺傳算法介紹 5 HYPERLINK l _TOC_250015 三、技術(shù)類因子挖掘測試 6 HYPERLINK l _TOC_250014 測試數(shù)據(jù) 6 HYPERLINK l _TOC_250013 因子表達式 6 HYPERLINK l _TOC_250012 適應(yīng)度指標 7 HYPERLINK l _TOC_250011 遺傳規(guī)劃參數(shù)設(shè)置 8 HYPERLINK l _TOC_250010 因子挖掘 8 HYP

2、ERLINK l _TOC_250009 組合回測 12 HYPERLINK l _TOC_250008 四、財務(wù)類因子挖掘測試 15 HYPERLINK l _TOC_250007 測試數(shù)據(jù) 15 HYPERLINK l _TOC_250006 因子表達式 15 HYPERLINK l _TOC_250005 適應(yīng)度指標 17 HYPERLINK l _TOC_250004 遺傳規(guī)劃參數(shù)設(shè)置 17 HYPERLINK l _TOC_250003 因子挖掘 17 HYPERLINK l _TOC_250002 組合回測 20 HYPERLINK l _TOC_250001 五、總結(jié) 21 HY

3、PERLINK l _TOC_250000 風險提示 22圖表目錄圖 1:Alpha 模型框架 4圖 2:公式樹示例(depth=3,length=7) 6圖 3:葉子變量列表(技術(shù)類因子挖掘) 7圖 4:節(jié)點函數(shù)列表(技術(shù)類因子挖掘) 7圖 5:gplean 中 SymbolicRegressor 函數(shù)參數(shù)(技術(shù)類因子挖掘) 8圖 6:技術(shù)類因子挖掘過程 8圖 7:遺傳規(guī)劃挖掘過程的公式進化情況(2019.12.31,技術(shù)類因子挖掘) 9圖 8:遺傳規(guī)劃挖掘出的技術(shù)類因子表現(xiàn)示例(2020.06.30) 10圖 9:傳統(tǒng)技術(shù)類因子(22 個) 11圖 10:遺傳規(guī)劃挖掘出的技術(shù)類因子與人工技

4、術(shù)因子的相關(guān)性分布情況 11圖 11:組合回測步驟 13圖 12:隨機森林模型參數(shù)調(diào)優(yōu)(score = neg_mean_squared_error) 13圖 13:Alpha 模型效果對比(2010.06.30-2020.06.30,技術(shù)類因子) 14圖 14:節(jié)點函數(shù)列表(財務(wù)類因子挖掘) 15圖 15:葉子變量列表(財務(wù)類因子挖掘) 16圖 16:gplean 中 SymbolicRegressor 函數(shù)參數(shù)(財務(wù)類因子挖掘) 17圖 17:財務(wù)類因子挖掘過程 17圖 18:遺傳規(guī)劃挖掘出的財務(wù)類因子表現(xiàn)示例(2020.06.30) 18圖 19:傳統(tǒng)財務(wù)類因子(21 個) 19圖 20

5、:遺傳規(guī)劃挖掘出的財務(wù)類因子與人工財務(wù)因子的相關(guān)性分布情況 19圖 21:Alpha 模型效果對比(20100630-20200630,財務(wù)類因子) 20一、機器學習在 Alpha 模型中的應(yīng)用國內(nèi)量化發(fā)展已有十余年,各家機構(gòu)投資者的 Alpha 因子庫已有較大規(guī)模,這時面臨的問題是,繼續(xù)花時間和精力進行因子挖掘擴充因子庫是否劃算,還能帶來多少增量收益。我們嘗試將近年來興起的機器學習算法應(yīng)用到 Alpha 模型上,進行低頻層面的因子挖掘,考察機器因子庫相對人工因子庫的增量。Alpha 模型主要包括 Alpha 因子庫構(gòu)建和 Alpha 預測兩部分,模型框架如圖 1 所示。Alpha 因子庫構(gòu)建

6、:傳統(tǒng)做法是從邏輯出發(fā),尋找邏輯合理、IC 高、IR 穩(wěn)定、長期表現(xiàn)優(yōu)秀的因子,例如常見的估值、盈利、成長、波動率等,這種做法優(yōu)點是因子邏輯清晰,有一定的理論支撐,缺點是因子數(shù)量有限,且存在失效的可能;機器學習做法是從數(shù)據(jù)出發(fā),運用遺傳規(guī)劃等機器學習算法對原始股票數(shù)據(jù)進行特征挖掘,建造一個大型 Alpha 因子庫。這種做法的優(yōu)點是:1.將因子挖掘完全交給機器,簡單易行; 2.挖掘出的因子數(shù)量眾多,只要計算機硬件資源支持,便可以源源不斷產(chǎn)生有效因子。雖然挖掘出的因子邏輯較難解釋,但大量能貢獻獨立有效 Alpha 信息的因子組合在一起,仍可以幫助我們獲得一個比較穩(wěn)定的組合收益。缺點是存在數(shù)據(jù)過擬合

7、的風險,因子在樣本外可能失效。Alpha 預測:傳統(tǒng)做法是采用線性預測的方法,從初始 Alpha 因子庫開始,需要經(jīng)歷因子分類、大類因子加權(quán)和 ZSCORE 轉(zhuǎn)收益率三個步驟;機器學習做法是采用隨機森林等非線性模型,直接對初始 Alpha 因子庫進行訓練,得到預期收益率。相對于線性工具,機器學習模型的非線性模型最大的優(yōu)勢在于對抗多重共線性問題,可以容納較多數(shù)量的因子參與訓練生成模型,且模型擬合度高,有助于提升預測性能。圖 1:Alpha 模型框架算法挖掘投資邏輯初始數(shù)據(jù)庫數(shù)據(jù)處理因子構(gòu)建選股指標備選因子庫IC檢驗情緒因子財務(wù)因子技術(shù)因子Alpha因子庫構(gòu)建初始Alpha因子庫因子分類因子加權(quán)線

8、性轉(zhuǎn)換預測收益率隨機森林模型大類 Alpha因子多因子 zscoreAlpha預測數(shù)據(jù)來源:東方證券研究所本文首先利用遺傳規(guī)劃算法進行因子挖掘,再將機器因子庫與人工因子庫通過隨機森林模型轉(zhuǎn)換為預測收益率,從組合層面進行因子庫效果的整體比較。比較的是整體因子庫得到的預期收益率:從單個因子層面對比機器因子和人工因子的表現(xiàn)意義不大,我們的做法是采用隨機森林模型,將兩個 Alpha 因子庫分別轉(zhuǎn)化為預期收益率,再進行組合構(gòu)建回測,從組合層面來比較整體機器因子庫和人工因子庫的表現(xiàn)。將技術(shù)類因子庫和財務(wù)類因子庫分開對比:由于技術(shù)因子和財務(wù)因子的歷史表現(xiàn)差別比較大,技術(shù)因子整體更強一點,所以如果將技術(shù)因子和

9、財務(wù)因子合在一起,放入機器學習模型中進行 Alpha 預測的話,機器會明顯偏好技術(shù)類因子,我們將這兩類因子的挖掘和對比分開進行。機器因子庫實行動態(tài)更新:由于機器挖掘出的因子存在樣本內(nèi)過擬合的可能,所以我們采用動態(tài)更新機器因子庫的方式,每半年進行一次因子挖掘,更新因子庫,使得樣本外使用的因子保持最新的狀態(tài)。二、遺傳算法介紹機器學習挖掘選股因子時,最常用的做法是借助遺傳規(guī)劃算法。遺傳規(guī)劃是一種啟發(fā)式的進化策略算法,主要想法是模擬自然界中生物遺傳進化過程,從隨機生成的公式種群開始,通過不斷變異優(yōu)化,逐漸生成適應(yīng)度更優(yōu)的公式群。下面簡單對遺傳算法和遺傳規(guī)劃的概念進行介紹。遺傳算法(Genetic Al

10、gorithm,GA)是進化算法的重要分支,最早是由美國密歇根大學的 John holland 教授于 20 世紀 70 年代提出,是一種通過模擬自然進化過程搜索最優(yōu)解的方法。遺傳算法以生物學的遺傳和進化理論為基礎(chǔ),用二進制字符串表示所研究的問題,運用一系列復制、交換、突變等遺傳操作,通過迭代逐步搜索最優(yōu)解。為了克服遺傳算法不能描述層次結(jié)構(gòu)、不能描述計算機程序等缺陷,美國斯坦福大學的 JohnR. Koza 教授于 1992 年提出了遺傳規(guī)劃(Genetic Programming, GP)算法。遺傳規(guī)劃用層次化的計算機程序(算法樹)代替字符串表達問題,具有動態(tài)可變的結(jié)構(gòu)和大小,可以用于求解最

11、優(yōu)的解結(jié)構(gòu),是遺傳算法的推廣和更一般地形式。有關(guān)算法的原理和細節(jié)在此不多贅述,下面僅介紹算法基本流程?;谶z傳規(guī)劃算法進行選股因子挖掘的基本流程如下:初始化種群:將因子的計算公式表示成樹形結(jié)構(gòu),預先設(shè)置函數(shù)集和指標集,進行隨機組合生成一系列因子表達式,作為第一代種群集合;計算適應(yīng)度:按照一定的目標函數(shù)評估種群中個體的適應(yīng)度;選擇:從第一代種群集合中,選出適應(yīng)度較優(yōu)的一群個體作為下一代進化的父代;(3)進化:被選擇出的父代,通過表達式樹結(jié)構(gòu)的剪枝、交叉和葉節(jié)點突變等操作實現(xiàn)進化,生成子代表達式,然后繼續(xù)選擇子代中適應(yīng)度較優(yōu)的一群個體作為父代繼續(xù)進化。重復選擇與進化步驟,經(jīng)歷 N 代后,最終尋找出

12、適應(yīng)度更優(yōu)的公式群。三、技術(shù)類因子挖掘測試首先,我們基于原始日頻量價數(shù)據(jù)進行月頻技術(shù)類因子的挖掘測試。Python 中的 gplearn 是目前最成熟的遺傳規(guī)劃包之一。但 gplearn 存在不能直接處理多維面板數(shù)據(jù)、不能進行時間序列運算等問題,所以不能直接運用于選股因子的挖掘,為此,我們將 gplearn的底層代碼進行了修改,使其可以進行選股因子挖掘。如需要修改后的 gplearn 代碼包,可以與報告作者聯(lián)系。測試數(shù)據(jù)股票池:剔除上市不滿 6 個月及所有 ST、*ST、PT、暫停上市等特別處理股票后的全部 A 股,剔除停牌股當天數(shù)據(jù)?;販y區(qū)間:2010.06.30 2020.06.30預測目

13、標:個股未來 20 個交易日的收益率。因子表達式遺傳規(guī)劃中的因子表達式一般表示成二叉樹的形式,如圖 2 所示。公式的輸出值可以用遞歸的方法求得。二叉樹的內(nèi)部節(jié)點是函數(shù),葉子是變量或者常數(shù),具體取決于函數(shù)設(shè)置。葉子變量:個股日頻的量價數(shù)據(jù),共 7 個,如圖 3 所示。量價數(shù)據(jù)需要進行量綱調(diào)整。節(jié)點函數(shù):分為元素運算函數(shù)和自定義的截面運算函數(shù)兩類,共 21 個,如圖 4 所示。元素運算函數(shù)例如加減乘除運算,直接取兩個變量對應(yīng)位置上的元素進行計算即可,而截面運算函數(shù)需要在同一個截面上計算,部分截面函數(shù)還需要進行時間序列滾動運算。滾動運算的截面函數(shù)需要在變量中添加一個常數(shù),常數(shù)取值從 1 到 20,即

14、最多使用過去 20 天的信息進行運算。此外,需要注意函數(shù)的可容性問題,避免運算結(jié)果溢出或出錯。圖 2:公式樹示例(depth=3,length=7)數(shù)據(jù)來源:東方證券研究所 & gplearn(https:/gplearn.readthedocs.io)圖 3:葉子變量列表(技術(shù)類因子挖掘)名稱定義adjopen個股日頻復權(quán)開盤價adjclose個股日頻復權(quán)收盤價adjhigh個股日頻復權(quán)最高價adjlow個股日頻復權(quán)最低價adjvwap個股日頻復權(quán)成交量加權(quán)平均價adjvolume個股日頻復權(quán)成交量加權(quán)平均價 pctchg個股日頻收益率數(shù)據(jù)來源:東方證券研究所 & Wind 資訊圖 4:節(jié)點

15、函數(shù)列表(技術(shù)類因子挖掘)類型函數(shù)名稱參數(shù)個數(shù)定義元素運算函數(shù)add(X,Y)2X+Y元素運算函數(shù)sub(X,Y)2X-Y元素運算函數(shù)mul(X,Y)2X*Y元素運算函數(shù)div(X,Y)2X/Y(Y=0.001)元素運算函數(shù)max(X,Y)2MAX(X,Y)元素運算函數(shù)min(X,Y)2MIN(X,Y)元素運算函數(shù)abs(X)1ABS(X)元素運算函數(shù)sqrt(X)1SQRT(ABS(X)元素運算函數(shù)log(X)1LOG(ABS(X) (X=0.001)截面運算函數(shù)rank(X)1截面排序截面運算函數(shù)ortho(X,Y)2截面X對Y回歸正交化取殘差截面運算函數(shù)(帶常數(shù))ts_delay(X,d

16、)2d天以前的數(shù)值截面運算函數(shù)(帶常數(shù))ts_delta(X,d)2當天數(shù)值-d天以前的數(shù)值截面運算函數(shù)(帶常數(shù))ts_sum(X,d)2過去d天的和截面運算函數(shù)(帶常數(shù))ts_product(X,d)2過去d天的累乘(為避免累乘法數(shù)值過大,若結(jié)果絕對大于10000則取對數(shù)處理)截面運算函數(shù)(帶常數(shù))ts_max(X,d)2過去d天的最大值截面運算函數(shù)(帶常數(shù))ts_min(X,d)2過去d天的最小值截面運算函數(shù)(帶常數(shù))ts_mean(X,d)2過去d+1天的均值(為避免d=1無意義,參數(shù)d自動+1處理)截面運算函數(shù)(帶常數(shù))ts_std(X,d)2過去d+1天的標準差(為避免d=1無意義,

17、參數(shù)d自動+1處理)截面運算函數(shù)(帶常數(shù))ts_cov(X,Y,d)3過去d+1天的X和Y的協(xié)方差(為避免d=1無意義,參數(shù)d自動+1處理)截面運算函數(shù)(帶常數(shù))ts_corr(X,Y,d)3過去d+1天的X和Y的相關(guān)系數(shù)(為避免d=1無意義,參數(shù)d自動+1處理)數(shù)據(jù)來源:東方證券研究所 & gplearn(https:/gplearn.readthedocs.io)適應(yīng)度指標因子挖掘過程中,可以使用因子在回測區(qū)間內(nèi)的 IC、ICIR、因子收益率等作為適應(yīng)度指標??紤]到計算因子收益率時,線性回歸系數(shù)可以寫成矩陣運算的形式,矩陣運算的速度較快,因而我們選擇月均因子收益率指標作為適應(yīng)度,考察區(qū)間為

18、過去三年??紤]到技術(shù)類因子的 IC 普遍較高,我們設(shè)定適應(yīng)度閾值為 5%,如果大于 5%,則視為一個有效的技術(shù)因子。此處我們直接使用原始因子來計算適應(yīng)度,并不進行中性化和正交化。在計算適應(yīng)度之前,需要對生成的因子數(shù)據(jù)進行處理,剔除有一半股票當天因子數(shù)值缺失的日期,和所有日期取值均為缺失的股票,因子數(shù)值需要進行去異常值,標準化處理。遺傳規(guī)劃參數(shù)設(shè)置遺傳規(guī)劃與其他機器學習算法不同,其參數(shù)難以使用網(wǎng)格搜索尋優(yōu),主要根據(jù)運算速度和因子挖掘效果調(diào)整,我們最終選擇的主要參數(shù)設(shè)置如圖 5 所示。例如,種群規(guī)模越大,公式之間組合的空間越大,但運算復雜度也越高。挖掘技術(shù)類因子時可選擇的葉變量和節(jié)點函數(shù)均較少,因

19、而我們選擇將種群規(guī)模設(shè)置的稍小一點,為 100,即每次生成 100 個表達式,進化三代,之后結(jié)束本次挖掘,改變隨機種子,更換路徑重新進行挖掘。圖 5:遺傳規(guī)劃參數(shù)設(shè)置(技術(shù)類因子挖掘)參數(shù)名稱參數(shù)定義參數(shù)設(shè)置generations進化的代數(shù)3population_size種群規(guī)模(每一代個體數(shù)目即初始樹的個數(shù))100function_set用于構(gòu)建和進化公式時使用的函數(shù)集使用圖3中的節(jié)點函數(shù)init_depth公式樹的初始化深度,init_depth是一個二元組(min_depth,max_depth),樹的初始深度將處在min_depth,max_depth區(qū)間內(nèi)。(2,4)tourname

20、nt_size進化到下一代的個體數(shù)目(每一代中tournament_size個公式會被隨機選中,其中適應(yīng)度最高的公式將進行變異形成下一代)2metric適應(yīng)度指標自定義的月均因子收益率p_crossover父代進行交叉變異進化的概率。0.4p_subtree_mutation父代進行子樹變異進化的概率。0.01p_hoist_mutation父代進行Hoist變異進化的概率。0.01p_point_mutation父代進行點變異進化的概率。0.01p_point_replace點變異中父代每個節(jié)點進行變異進化的概率。0.4max_samples從樣本中抽取的用于評估每個樹(成員)的百分比0.9

21、n_jobs并行計算的核數(shù)28const_range公式中所要包含的常量取值范圍。如果設(shè)為none,則無常數(shù)nonerandom_state隨機數(shù)生成器使用的種子130數(shù)據(jù)來源:東方證券研究所 & gplearn(https:/gplearn.readthedocs.io)因子挖掘基于遺傳規(guī)劃算法進行技術(shù)類因子挖掘的整體過程,如圖 6 所示。首先設(shè)定隨機種子,保證挖掘過程可以重現(xiàn),而后開始遺傳算法挖掘,包括初始化種群,計算適應(yīng)度,選擇與進化三個步驟,每次得到 100 個新因子。如果因子的適應(yīng)度絕對值大于 5%,則視為一個有效因子,加入因子庫。當累計有效因子個數(shù)達到 100 個時,中止挖掘進程,

22、否則改變隨機種子,更換路徑重新進行挖掘。上述因子挖掘過程每半年進行一次,以過去三年的月均因子收益率為適應(yīng)度,每次得到 100個有效因子,從而使得樣本外使用的因子保持最新的狀態(tài)。圖 6:技術(shù)類因子挖掘過程是設(shè)定隨機種子初始化種群計算適應(yīng)度選擇與進化否適應(yīng)度絕對值大于5%的公式個數(shù)累計是否達到100個得到100個新公式 因子庫數(shù)據(jù)來源:東方證券研究所下圖展示了 2019.12.31 遺傳規(guī)劃因子挖掘過程的公式進化情況,可以看出,第一代公式由于是隨機生成的,所以平均適應(yīng)度低,表達式長,運算用時短。從第二代公式開始,平均適應(yīng)度提升,公式長度減短,進化用時增加。圖 7:遺傳規(guī)劃挖掘過程的公式進化情況(2

23、019.12.31,技術(shù)類因子挖掘)隨機種子代數(shù)平均適應(yīng)度公式平均長度最高適應(yīng)度最優(yōu)公式長度進化時長(s)101.86%7.79-6.63%6303.71112.38%6.81-6.63%6114.53122.74%6.95-6.40%9129.86201.58%9.00-7.82%11105.06212.15%9.42-7.82%11122.59222.78%9.02-7.82%11126.99301.91%8.28-7.91%5115.77312.86%8.13-7.97%6124.41323.76%7.58-7.97%6135.42401.55%8.76-7.26%6116.20412.

24、26%8.30-7.97%4124.00423.11%7.99-7.97%4122.86501.65%9.61-6.95%7117.24512.12%9.84-6.95%7129.06522.56%9.82-8.34%11118.71601.48%9.05-6.44%2102.14612.08%8.25-6.21%8109.16622.64%7.97-7.51%4118.41702.03%8.43-7.97%6113.81712.76%8.73-7.97%6120.97723.51%9.13-7.97%6119.61801.75%8.98-6.48%298.83812.48%8.42-6.48

25、%2113.33822.98%8.856.71%14121.71901.58%9.32-6.44%3118.22912.32%9.49-6.48%2110.27923.12%9.00-6.48%2128.20數(shù)據(jù)來源:東方證券研究所 & Wind 資訊下面我們展示 2020.06.30 基于過去三年的量價數(shù)據(jù)挖掘出的技術(shù)類因子的績效表現(xiàn)。下表給出了適應(yīng)度最高的 50 個因子示例,列出了適應(yīng)度、公式長度、深度等指標??梢钥吹?,挖掘出的技術(shù)因子長度平均深度為 3 層,平均長度為 8,表達式相對較為復雜,也就意味著對于量價數(shù)據(jù)進行復雜的運算有可能找到更加有效的因子。圖 8:遺傳規(guī)劃挖掘出的技術(shù)類因子

26、表現(xiàn)示例(2020.06.30)公式編號表達式適應(yīng)度公式深度公式長度alpha_5_94add(ts_product(pctchg, 4.000), mul(adjvolume, sqrt(sqrt(add(adjclose, adjvolume)-7.61%511alpha_10_13ts_std(sqrt(adjvolume), 18.000)-7.40%24alpha_4_97sub(sqrt(adjvolume), ts_sum(log(pctchg), 1.000)-7.27%37alpha_10_11sqrt(adjvolume)-7.25%12alpha_9_85sqrt(ts_

27、std(ortho(adjopen, adjvolume), 3.000)-7.24%36alpha_3_18add(min(log(adjvolume), ts_min(adjhigh, 19.000), min(ts_cov(adjhigh, adjclose, 20.000), rank(adjclose)-7.16%314alpha_1_92abs(ts_sum(log(abs(adjvolume), 1.000)-7.14%46alpha_9_40max(ts_cov(ts_sum(ts_std(rank(ts_product(adjvolume, 16.000), 5.000),

28、9.000), mul(add(adjvolume, adjopen), ts_corr(adjhigh, adjlow, 5.000), 6.000), -7.12%624rank(ts_max(log(adjvolume), 11.000)alpha_9_9sqrt(ts_std(ts_std(adjvolume, 19.000), 3.000)-7.04%36alpha_2_87sub(log(adjvolume), ortho(adjopen, adjclose)-6.93%26alpha_3_77log(adjvolume)-6.92%12alpha_4_91ortho(sqrt(s

29、ub(adjlow, adjvwap), log(adjvolume)-6.87%37alpha_3_67add(adjvolume, min(ts_cov(adjhigh, adjclose, 20.000), rank(adjclose)-6.84%39alpha_3_40rank(adjvolume)-6.83%12alpha_9_2rank(sqrt(adjvolume)-6.83%23alpha_4_43ts_max(ts_delta(adjvolume, 20.000), 5.000)-6.82%25alpha_6_43ts_product(add(adjvolume, sqrt(

30、sqrt(rank(ts_cov(adjvwap, adjvolume, 19.000), 4.000)-6.68%611alpha_4_90min(adjvolume, ortho(adjvwap, adjvolume)-6.67%25alpha_2_74adjvolume-6.67%01alpha_9_34abs(adjvolume)-6.67%12alpha_6_57min(adjhigh, adjvolume)-6.63%13alpha_8_80ortho(sub(adjhigh, adjopen), ts_max(ts_std(adjvolume, 10.000), 4.000)-6

31、.63%39alpha_8_91ts_max(ts_std(adjvolume, 10.000), 4.000)-6.57%25alpha_6_30add(adjvolume, sqrt(adjlow)-6.57%24alpha_7_43add(log(pctchg), min(adjopen, min(adjopen, adjvolume)-6.56%38alpha_7_6add(log(pctchg), min(adjopen, adjvolume)-6.56%26alpha_5_75min(adjvolume, adjclose)-6.54%13alpha_6_8log(ts_sum(a

32、djvolume, 2.000)-6.52%24alpha_4_61min(adjvolume, adjopen)-6.50%13alpha_4_18ts_max(sqrt(adjvolume), 12.000)-6.50%24alpha_5_78log(ts_mean(adjvolume, 6.000)-6.42%24alpha_10_4ts_max(abs(rank(adjvolume), 5.000)-6.39%35alpha_9_36ts_std(adjvolume, 6.000)-6.39%13alpha_4_51ts_cov(adjvolume, adjhigh, 12.000)-

33、6.33%14alpha_4_95ortho(sqrt(sub(adjlow, adjvwap), log(div(adjvolume, adjlow)-6.31%39alpha_1_27sqrt(ts_delta(adjvolume, 18.000)-6.31%24alpha_8_30ortho(ts_sum(ts_sum(adjclose, 13.000), 11.000), ortho(sub(adjhigh, adjopen), ts_max(ts_std(adjvolume, 10.000), 4.000)-6.27%415alpha_7_4add(add(ts_cov(div(ad

34、jclose, adjlow), ts_max(adjvwap, 1.000), 10.000), abs(ts_max(adjvolume, 4.000), min(adjopen, adjvolume)-6.19%417alpha_7_40ts_max(adjvolume, 4.000)-6.17%13alpha_4_34ts_sum(ts_cov(adjvolume, adjhigh, 12.000), 3.000)-6.12%26alpha_7_80ts_max(pctchg, 4.000)-6.10%13add(add(ts_cov(div(adjclose, adjlow), ad

35、d(add(ts_cov(div(adjclose, adjlow), ts_max(adjvwap, 1.000), 10.000), abs(ts_max(adjvolume, 4.000),alpha_7_38abs(min(mul(adjlow, adjvolume), div(adjvwap, pctchg), 10.000), abs(ts_max(adjvolume, 4.000), abs(min(mul(adjlow, adjvolume), div(adjvwap,-6.09%741pctchg)alpha_4_54min(ts_delay(adjvwap, 19.000)

36、, ortho(adjvwap, adjvolume)-6.08%27alpha_8_34ortho(ts_max(ts_delta(adjvwap, 14.000), 19.000), ortho(sub(adjhigh, adjopen), ts_max(ts_std(adjvolume, 10.000), 4.000)-6.08%415alpha_7_37add(add(ts_cov(div(adjclose, adjlow), ts_max(adjvwap, 1.000), 10.000), abs(ts_max(adjvolume, 4.000), abs(min(ortho(pct

37、chg, adjlow), div(adjvwap, -6.01%422pctchg)alpha_1_11abs(ts_max(adjvolume, 13.000)-6.00%24alpha_1_54abs(ts_sum(ts_max(adjvolume, 13.000), 1.000)-6.00%36alpha_2_7ts_product(adjvolume, 8.000)-5.98%13alpha_8_8ts_product(min(adjvolume, pctchg), 7.000)-5.96%25alpha_9_49sub(ortho(ts_std(div(adjvolume, adj

38、low), 15.000), sqrt(ts_min(adjclose, 2.000), adjvolume)5.95%412數(shù)據(jù)來源:東方證券研究所 & Wind 資訊進一步我們計算挖掘出的技術(shù)因子與現(xiàn)有技術(shù)類因子的相關(guān)性。人工技術(shù)類因子主要包括非流動性、反轉(zhuǎn)、投機這三大類,我們用 TO20 作為非流動性的代表,RET20 作為反轉(zhuǎn)的代表,VOL20作為投機的代表。可以看到,每期挖掘出的因子和技術(shù)類因子的相關(guān)性都很低,平均相關(guān)性均在 20%以下。圖 9:傳統(tǒng)技術(shù)類因子(22 個)大類因子簡稱因子定義非流動性TO20過去20個交易日的日均換手率對數(shù)TO60過去60個交易日的日均換手率對數(shù)LNA

39、MIHUD2020日Amihud非流動性自然對數(shù)LNAMIHUD6060日Amihud非流動性自然對數(shù)AVGAMT_20_60過去20日日均成交額/過去60日日均成交額,乘以100處理AVGVOL_20_240過去20日日均成交量/過去240日日均成交量,乘以100處理反轉(zhuǎn)RET20過去20個交易日的收益率RET60過去60個交易日的收益率PPREVERSAL乒乓球反轉(zhuǎn),過去5日均價/過去60日均價-1CGO60處置效應(yīng)因子,當前價/60日換手反推的持倉價-1P2HIGH當前價格除以過去243個交易日的最高價,乘以100處理投機VOL20過去20個交易日的波動率VOL60過去60個交易日的波動

40、率VOL120過去120個交易日的波動率IVOL20過去20個交易日的特質(zhì)波動率IVOL60過去60個交易日的特質(zhì)波動率VOL120過去120個交易日的波動率IVOL60_CAPM過去60個交易日的CAPM特質(zhì)波動率IVR20過去20個交易日的特異度IVR60過去60個交易日的特異度MAXRET20過去最大收益,過去20日最大3個日收益均值MAXRET60過去最大收益,過去60日最大3個日收益均值數(shù)據(jù)來源:東方證券研究所圖 10:遺傳規(guī)劃挖掘出的技術(shù)類因子與人工技術(shù)因子的相關(guān)性分布情況數(shù)據(jù)來源:東方證券研究所 & Wind 資訊組合回測下面我們主要討論,如何將挖掘出的因子進行有效組合,轉(zhuǎn)化為預

41、期收益率,并構(gòu)建多空組合進行回測。由于前面通過遺傳規(guī)劃算法挖掘出的因子之間相關(guān)性關(guān)系較為復雜,存在共線性問題,直接使用傳統(tǒng)線性模型進行 Alpha 預測的話,會增加回歸估計量的方差,樣本外預測準確性較低,因而我們采用隨機森林模型來進行 Alpha 預測,再根據(jù)預測收益率構(gòu)建組合進行回測。Alpha 預測以及隨機森林模型在之前報告中已經(jīng)有過詳細介紹,在此僅闡述重點細節(jié):Alpha 預測的目標是個股超額收益:Alpha 預測過程最終得到的是個股相對市場等權(quán)組合的超額收益,而不是個股的絕對收益。如果預測絕對收益還要去預測整個市場的平均收益在時間序列上的變化,預測難度很大,對實際投資意義也不大。Alp

42、ha 預測時將個股超額收益拆分成 disperson 和 zscore 分別預測:個股相對市場等權(quán)組合的超額收益預測,可以分解成 dispersion(橫截面上所有股票收益率的標準差)和橫截面?zhèn)€股收益率zscore 兩部分,我們的做法是前者用 AR(1)模型預測,后者使用機器學習模型進行預測。在之前報告中我們進行過對比測試,發(fā)現(xiàn)分開預測 Disperson 和 zscore 再合成的預測方式比直接用預測超額收益要準,MSE(Mean Squared Error)更小。個股收益率 zscore 預測模型采用隨機森林模型。在之前機器的比拼報告中,我們曾對比過多種 Alpha 預測的方法,其中隨機森

43、林模型優(yōu)勢較突出:1.邏輯簡單,需要調(diào)整的參數(shù)少,而且預測結(jié)果受樹結(jié)構(gòu)的影響也比較小,在大部分工程問題中實際應(yīng)用的效果都很不錯;2.數(shù)據(jù)過擬合的可能性較小。由于金融數(shù)據(jù)的信噪比很低,過擬合很容易,所以避免過擬合的意義更大;3.隨機森林的決策樹分叉過程中帶有變量選擇的作用,由于我們用到的因子數(shù)量比較多,借助隨機森林可以幫助我們將一些表現(xiàn)較弱的噪音變量剔除;4. python 中 sklearn 的 RandomForest 函數(shù)可以方便地實現(xiàn)隨機森林模型,并且函數(shù)可以接受并行運算,有速度優(yōu)勢。隨機森林模型 Hyperparameter 參數(shù)選擇。隨機森林模型的 Hyperparameter 參數(shù)

44、可以通過網(wǎng)格搜索確定,python 中sklearn 的 GridSearchCV 函數(shù)可以實現(xiàn)網(wǎng)格搜索調(diào)參,其中模型所用的評價標準選擇為 MSE,交叉驗證參數(shù)選擇 Stratified 5-fold CV,讓不同驗證集里股票數(shù)量的行業(yè)分布基本一致。理論上,可以把模型所需要的參數(shù)都輸進去,得出最優(yōu)化的參數(shù)配置,但是參數(shù)增多后,網(wǎng)格搜索的運算耗時也會增加。因而我們只需要把對模型影響最大的超參數(shù)(樹的個數(shù) n_estimators 和樹層數(shù)max_depth)進行調(diào)優(yōu),其余主觀設(shè)置即可。由于當樹的個數(shù)增加之后,單次隨機森林模型訓練和預測所需時間也會相應(yīng)增加,而且預測 MSE 的邊際變化很小,綜合考

45、慮預測效果和時間成本,我們選擇 max_depth=5 和 n_estimators=200 作為最終的參數(shù)配置。個股收益率 zscore 預測模型的參數(shù)采用單月橫截面平行訓練的方法得到。使用過去三年的月度數(shù)據(jù)分別進行橫截面模型訓練,將當月底行業(yè)市值中性化因子值,行業(yè)虛擬變量和對數(shù)市值作為自變量,下月收益率 zscore 作為因變量來進行訓練,得到 36 個機器學習模型,再把 t+1 月的最新因子數(shù)值分別輸入到這 36 個模型中,就可以得到 36 個 t+1 月的收益率 zscore 預測值,將其簡單平均就可以得到個股 t+1 月的收益率 zscore 的最終預測值。圖 11:組合回測步驟數(shù)據(jù)

46、提取與處理提取當月底的因子值Xt , Xt ,., Xt。因子值均進行缺失值填充(行業(yè)市值回歸)、異常值處理、行業(yè)市值中性化、標準化。(1)(2)( K )模型訓練提取過去三年每月底的因子值和下月個股真實的收益率zscore。因子值均進行缺失值填充、異常值處理、行業(yè)市值中性化、標準化。加入行業(yè)虛擬變量和對數(shù)市值作為模型自變量,進行隨機森林模型訓練,得到36個模型 ft 36 t 35t 1, f ,., f模型預測把當月底處理好的個股的最新因子值,加入行業(yè)虛擬變量和對數(shù)市值作為模型自變量,同時輸入到這36個隨機森林模型中,可以得到36個t+1月個股收益率zscore的預測值,將其簡單平均最終得

47、到個股t+1月的收益率預測值。多空組合構(gòu)建每月等權(quán)做多預測收益最高10%股票,做空預測收益最低10%的股票構(gòu)建多空組合,計算組合表現(xiàn)。每月計算預測收益率和下月真實收益率的IC,ICIR等指標數(shù)據(jù)來源:東方證券研究所圖 12:隨機森林模型參數(shù)調(diào)優(yōu)(score = neg_mean_squared_error)數(shù)據(jù)來源:東方證券研究所 & Wind 資訊下面我們采用隨機森林模型,對遺傳規(guī)劃挖掘出的技術(shù)類因子(每半年生成 100 個),傳統(tǒng)技術(shù)類因子(22 個,圖 9 所示),遺傳算法因子+技術(shù)類因子(122 個),以及遺傳算法因子正交傳統(tǒng)技術(shù)類因子(100 個)分別進行 Alpha 預測過程,得到

48、每月的預期收益率。計算預期收益率和真實收益率的 IC(spearman),ICIR 以及 t 統(tǒng)計量,并根據(jù)預期收益率構(gòu)建多空組合,考察多空組合的表現(xiàn)。多空組合由等權(quán)做多預測收益最高 10%股票,同時做空預測收益最低 10%的股票構(gòu)成??梢钥吹?,經(jīng)過遺傳規(guī)劃算法可以從日頻量價數(shù)據(jù)中挖掘出有效的月頻技術(shù)類指標,并且疊加到傳統(tǒng)技術(shù)類因子庫中之后,組合收益和穩(wěn)定性均有所提高,但這種提升在統(tǒng)計上并不顯著:遺傳算法技術(shù)類因子與傳統(tǒng)技術(shù)類因子相比,不論是 IC、ICIR 還是多空組合月均收益、年化夏普比均有提高,IC 達到 10.11%,ICIR 達到 2.13,多空組合月均收益 2.97%,年化夏普比

49、1.5。遺傳算法技術(shù)類因子疊加傳統(tǒng)技術(shù)類因子后,相比傳統(tǒng)技術(shù)類因子,表現(xiàn)也有提升。疊加后 IC 達到 10.41%,ICIR 達到 2.19,多空組合月均收益 2.86%,年化夏普比 1.48,并且多空組合最大回撤也有明顯降低,從原有 22.34%降低為 17.6%。遺傳算法技術(shù)類因子對傳統(tǒng)技術(shù)類因子正交化后,仍有顯著的選股效果,IC 達到 7.57%, ICIR 達到 1.35,多空組合月均收益 2.39%。但是一對多的回歸正交化并不能完全剔除原有變量的信息,正交化后的因子效果可能反而變強。對不同組合的 IC 序列和多空組合收益率序列進行了雙邊 T 檢驗,結(jié)果顯示 T 檢驗 p 值均大于 1

50、0%,說明遺傳算法因子挖掘帶來的組合差異在統(tǒng)計上并不顯著。圖 13:Alpha 模型效果對比(2010.06.30-2020.06.30,技術(shù)類因子)指標原有技術(shù)類因子遺傳算法因子1+2遺傳算法因子正交原有技術(shù)類因子IC-spearman10.06%10.11%10.41%7.57%IC_IR1.95tstat7.958.869.095.60多空組合月均收益2.79%2.97%2.86%2.39%多空組合勝率72.73%75.21%77.69%70.25%多空組合年化夏普比率1.321.501.481.02多空組合最大回撤-22.34%-18.88%-17.60%-30

51、.09%多空組合年化收益19.68%21.39%20.42%16.26%IC序列statisticpvalue遺傳算法因子原有技術(shù)類因子0.030.981+2遺傳算法因子0.180.861+2原有技術(shù)類因子0.200.84多空組合收益率序列statisticpvalue遺傳算法因子原有技術(shù)類因子0.250.801+2遺傳算法因子(0.16)0.871+2原有技術(shù)類因子0.090.93數(shù)據(jù)來源:東方證券研究所 & Wind 資訊四、財務(wù)類因子挖掘測試下面,我們基于原始財務(wù)報表數(shù)據(jù)進行月頻財務(wù)類因子的挖掘測試。由于此處因子挖掘算法的原理與上一節(jié)大致相同,本節(jié)只對做法上的區(qū)別進行闡述。測試數(shù)據(jù)股票池

52、:剔除上市不滿 6 個月及所有 ST、*ST、PT、暫停上市等特別處理股票后的全部 A 股,剔除停牌股當天數(shù)據(jù)。由于銀行和非銀行業(yè)股票部分財務(wù)指標缺失,因而我們將這兩個行業(yè)剔除?;販y區(qū)間:20100630 20200630預測目標:個股未來 20 個交易日的收益率。因子表達式遺傳規(guī)劃中的因子表達式生成方法與技術(shù)類因子挖掘相同,但葉變量和節(jié)點函數(shù)設(shè)置不同。葉子變量:個股財務(wù)報表數(shù)據(jù),要求滿足每月數(shù)據(jù)缺失率最大不超過 50%,最終篩選出資產(chǎn)負債表指標 25 個,利潤指標 20 個,現(xiàn)金流量表指標 28 個,共 73 個。由于財報數(shù)據(jù)是季頻的,需要將數(shù)據(jù)整理成月頻,我們的做法是對于資產(chǎn)負債表數(shù)據(jù)按照

53、公告日更新,缺失值用前一個非缺失值填充,對于利潤表和現(xiàn)金流量表按照當前報告累計值+(去年年報-去年同期)計算 ttm 值,并按照公告日更新,缺失值用前一個非缺失值填充,數(shù)據(jù)均轉(zhuǎn)化為萬元單位。節(jié)點函數(shù):分為元素運算函數(shù)和截面運算函數(shù)兩類,共 15 個。常數(shù)取值為 12,24,36,即最多使用三年前的信息進行運算。同比增長率指標計算時我們將分母小于 0 的視為缺省值,復合增長率指標計算時將分子和分母小于 0 的均視為缺省值,避免產(chǎn)生邏輯和運算錯誤。由于單純對財務(wù)報表數(shù)據(jù)進行加減等運算,得到的因子指標在不同公司之間不可比,因而在后續(xù)隨機生成公式時我們限定,最外層函數(shù)必須是除法或增長率。圖 14:節(jié)點

54、函數(shù)列表(財務(wù)類因子挖掘)類型函數(shù)名稱參數(shù)個數(shù)定義元素運算函數(shù)add(X,Y)2X+Y元素運算函數(shù)sub(X,Y)2X-Y元素運算函數(shù)mul(X,Y)2X*Y元素運算函數(shù)div(X,Y)2X/Y(Y=0.001)元素運算函數(shù)max(X,Y)2MAX(X,Y)元素運算函數(shù)min(X,Y)2MIN(X,Y)元素運算函數(shù)abs(X)1ABS(X)元素運算函數(shù)sqrt(X)1SQRT(ABS(X)元素運算函數(shù)log(X)1LOG(ABS(X) (X=0.001)截面運算函數(shù)rank(X)1截面排序截面運算函數(shù)ortho(X,Y)2截面X對Y回歸正交化取殘差截面運算函數(shù)(帶常數(shù))ts_delay(X,d

55、)2d月以前的數(shù)值截面運算函數(shù)(帶常數(shù))ts_delta(X,d)2當月底數(shù)值-d月以前的數(shù)值截面運算函數(shù)(帶常數(shù))ts_cagr1(X,d)2(當月底數(shù)值/d月以前的數(shù)值)-1 d=12截面運算函數(shù)(帶常數(shù))ts_cagr2(X,d)2(當月底數(shù)值/d月以前的數(shù)值)(1/2)-1 d=24截面運算函數(shù)(帶常數(shù))ts_cagr3(X,d)2(當月底數(shù)值/d月以前的數(shù)值)(1/3)-1 d=36數(shù)據(jù)來源:東方證券研究所 & gplearn(https:/gplearn.readthedocs.io)圖 15:葉子變量列表(財務(wù)類因子挖掘)數(shù)據(jù)來源名稱定義資產(chǎn)負債表ACCT_PAYABLE應(yīng)付賬款

56、資產(chǎn)負債表ADV_FROM_CUST預收款項資產(chǎn)負債表CAP_RSRV資本公積金資產(chǎn)負債表CAP_STK股本資產(chǎn)負債表EMPL_BEN_PAYABLE應(yīng)付職工薪酬資產(chǎn)負債表INTANG_ASSETS無形資產(chǎn)資產(chǎn)負債表INVENTORIES存貨資產(chǎn)負債表LONG_TERM_DEFERRED_EXP長期待攤費用資產(chǎn)負債表LONG_TERM_EQY_INVEST長期股權(quán)投資資產(chǎn)負債表LT_BORROW長期借款資產(chǎn)負債表MINORITY_INT少數(shù)股東權(quán)益資產(chǎn)負債表MONETARY_CAP貨幣資金資產(chǎn)負債表OTH_PAYABLE其他應(yīng)付款資產(chǎn)負債表PREPAY預付款項資產(chǎn)負債表ST_BORROW短期借

57、款資產(chǎn)負債表SURPLUS_RSRV盈余公積金資產(chǎn)負債表TAXES_SURCHARGES_PAYABLE應(yīng)交稅費資產(chǎn)負債表TOT_ASSETS資產(chǎn)總計資產(chǎn)負債表TOT_CUR_ASSETS流動資產(chǎn)合計資產(chǎn)負債表TOT_CUR_LIAB流動負債合計資產(chǎn)負債表TOT_LIAB負債合計資產(chǎn)負債表TOT_NON_CUR_ASSETS非流動資產(chǎn)合計資產(chǎn)負債表TOT_NON_CUR_LIAB非流動負債合計資產(chǎn)負債表TOT_SHRHLDR_EQY_EXCL_MIN_INT股東權(quán)益合計(不含少數(shù)股東權(quán)益)資產(chǎn)負債表UNDISTRIBUTED_PROFIT未分配利潤利潤表EBIT息稅前利潤利潤表EBITDA息稅

58、折舊攤銷前利潤利潤表INC_TAX所得稅利潤表LESS_FIN_EXP減:財務(wù)費用利潤表LESS_GERL_ADMIN_EXP減:管理費用利潤表LESS_IMPAIR_LOSS_ASSETS減:資產(chǎn)減值損失利潤表LESS_NON_OPER_EXP減:營業(yè)外支出利潤表LESS_OPER_COST減:營業(yè)成本利潤表LESS_SELLING_DIST_EXP減:銷售費用利潤表LESS_TAXES_SURCHARGES_OPS減:營業(yè)稅金及附加利潤表MINORITY_INT_INC少數(shù)股東損益利潤表NET_PROFIT_AFTER_DED_NR_LP扣除非經(jīng)常性損益后凈利潤(扣除少數(shù)股東損益)利潤表N

59、ET_PROFIT_EXCL_MIN_INT_INC凈利潤(不含少數(shù)股東損益)利潤表OPER_PROFIT營業(yè)利潤利潤表OPER_REV營業(yè)收入利潤表PLUS_NET_INVEST_INC加:投資凈收益利潤表PLUS_NON_OPER_REV加:營業(yè)外收入利潤表TOT_OPER_COST營業(yè)總成本利潤表TOT_OPER_REV營業(yè)總收入利潤表TOT_PROFIT利潤總額現(xiàn)金流量表AMORT_INTANG_ASSETS無形資產(chǎn)攤銷現(xiàn)金流量表CASH_PAID_INVEST投資支付的現(xiàn)金現(xiàn)金流量表CASH_PAY_ACQ_CONST_FIOLTA購建固定資產(chǎn)、無形資產(chǎn)和其他長期資產(chǎn)支付的現(xiàn)金現(xiàn)金流

60、量表CASH_PAY_BEH_EMPL支付給職工以及為職工支付的現(xiàn)金現(xiàn)金流量表CASH_PAY_DIST_DPCP_INT_EXP分配股利、利潤或償付利息支付的現(xiàn)金現(xiàn)金流量表CASH_PAY_GOODS_PURCH_SERV_REC購買商品、接受勞務(wù)支付的現(xiàn)金現(xiàn)金流量表CASH_PREPAY_AMT_BORR償還債務(wù)支付的現(xiàn)金現(xiàn)金流量表CASH_RECP_BORROW取得借款收到的現(xiàn)金現(xiàn)金流量表CASH_RECP_DISP_WITHDRWL_INVEST收回投資收到的現(xiàn)金現(xiàn)金流量表CASH_RECP_SG_AND_RS銷售商品、提供勞務(wù)收到的現(xiàn)金現(xiàn)金流量表DEPR_FA_COGA_DPBA固定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論