DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)_第1頁
DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)_第2頁
DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)_第3頁
DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)_第4頁
DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

一、DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)概述多因子選股體系主要包括alpha模型、風(fēng)險(xiǎn)模型、交易成本模型和組合優(yōu)化四個(gè)模塊。alpha模型負(fù)責(zé)對股票收益或alpha的預(yù)測,對組合收益的影響相對更大,是量化研究的重中之重。圖1:多因子選股體系基本面數(shù)據(jù)另類數(shù)據(jù)基本面數(shù)據(jù)另類數(shù)據(jù)分析師數(shù)據(jù)交易成本風(fēng)格暴露跟蹤誤差客觀量價(jià)數(shù)據(jù)Alpha模型風(fēng)險(xiǎn)模型組合優(yōu)化組合因子生成篩選因子轉(zhuǎn)換初始Alpha精簡Alpha因子庫多因子zscore預(yù)測收益率績效歸因交易執(zhí)行機(jī)器學(xué)習(xí)Rank行業(yè)輪動(dòng)有效機(jī)器?主觀觀點(diǎn)事件庫主觀觀點(diǎn)事件庫數(shù)據(jù)來源:繪制傳統(tǒng)的因子生成過程更多依賴人工。國內(nèi)量化發(fā)展已有十余年,各家機(jī)構(gòu)投資者的alpha因子庫已有較大規(guī)模。再靠人工發(fā)現(xiàn)一個(gè)新增的有效因子不易,因子挖掘的周期越來越長,傳統(tǒng)人工構(gòu)建alpha因子的方法已經(jīng)遇到瓶頸。為了對人工因子庫進(jìn)行補(bǔ)充,我們在傳統(tǒng)alpha模型的體系下引入遺傳規(guī)劃方法,將挖掘因子的部分交給機(jī)器。在alpha因子構(gòu)建中,可以引入的常見機(jī)器學(xué)習(xí)模型主要有兩大類:遺傳規(guī)劃和神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)方法我們在之前的報(bào)告《神經(jīng)網(wǎng)絡(luò)日頻alpha模型初步實(shí)踐》、《周頻量價(jià)指增模型》、《多模型學(xué)習(xí)量價(jià)時(shí)序特征》中已有介紹,近年來市場對于神經(jīng)網(wǎng)絡(luò)模型的探索層出不窮,不少模型的表現(xiàn)十分優(yōu)異。但神經(jīng)網(wǎng)絡(luò)方法相對黑箱,無法知道得出的因子具體代表什么含義,并且神經(jīng)網(wǎng)絡(luò)相對容易過擬合,模型訓(xùn)練時(shí)間也較長。遺傳規(guī)劃算法近年來市場關(guān)注度不高。在之前的報(bào)告《機(jī)器因子庫相對人工因子庫的增量》中我們對遺傳規(guī)劃算法也已經(jīng)進(jìn)行了初步探索,但當(dāng)時(shí)采用的模型相對簡單基礎(chǔ),很多細(xì)節(jié)沒有充分考慮到。市場對于遺傳規(guī)劃算法存在一些刻板印象,認(rèn)為遺傳規(guī)劃沒有目標(biāo)引導(dǎo),進(jìn)化效率低。然而我們通過研究發(fā)現(xiàn),通過對算法的優(yōu)化改進(jìn),可以有效提升挖掘因子的效率,能夠在盡量短的時(shí)間內(nèi)挖掘出更多更好的因子。并且遺傳規(guī)劃方法得到的因子均有顯性公式,隨機(jī)化多樣化的搜索策略也使得它相對不易過擬合,有其難以被替代的獨(dú)特優(yōu)勢。此次,我們對遺傳規(guī)劃算法進(jìn)行了全面的升級,開發(fā)出了一套高效的DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)。加入了自定義的特征和算子,指定適應(yīng)度指標(biāo),從一個(gè)隨機(jī)種群出發(fā),可以通過多代進(jìn)化得到更優(yōu)子代。挖掘過程可以重復(fù)多輪,從而可以得到多個(gè)適應(yīng)度高、低相關(guān)、有顯式表達(dá)式的選股因子。2:DFQ父代3父代特征公式1父代3父代

算子適應(yīng)度指標(biāo)算子適應(yīng)度指標(biāo)預(yù)測目標(biāo)…公式1…父代n…子代n預(yù)測目標(biāo)…公式1…父代n…子代n…子代n子代k公式1公式1初始種群第一輪精英種群輸入優(yōu)質(zhì)基因遺傳核父代1 父代2 :提第一代子代第 有效進(jìn)化 升第一代子代子代2子代3一 進(jìn)子代2子代3效輪 子代1 化效率第n代子代動(dòng)態(tài)調(diào)參重復(fù)遺傳進(jìn)化第n代子代子代精英子代

子代2子代3子代2子代3精選優(yōu)質(zhì)個(gè)體…下一輪挖掘從新的初始種群開始,結(jié)合之前的挖掘信息,重復(fù)多輪,即可得到多個(gè)適應(yīng)度高、低相關(guān)、有顯式表達(dá)式的選股因子。數(shù)據(jù)來源:繪制二、遺傳規(guī)劃算法介紹算法原理遺傳規(guī)劃算法(GeneticProgrammingGP)是一種遺傳算法的特定類型,用于解決機(jī)器學(xué)習(xí)中的優(yōu)化問題。遺傳規(guī)劃算法被廣泛應(yīng)用于特征選擇,模型選擇和超參數(shù)優(yōu)化等多種任務(wù)中,也同樣適用于選股因子挖掘問題。首先,我們需要理解什么是遺傳算法。遺傳算法是一種搜索優(yōu)化方法,靈感來自自然選擇和達(dá)爾文的進(jìn)化論,尤其是“適者生存”的原理。遺傳算法中有一些關(guān)鍵概念,如“種群”,“交叉(雜交)”,“突變”和“選擇”,均來源于進(jìn)化論。種群是所有可能解的集合。交叉是一種方式,通過組合兩個(gè)解的部分,產(chǎn)生新的解。突變是對解的隨機(jī)更改,以增加種群的多樣性。選擇是保留適應(yīng)度高的解的過程。其次,我們需要理解什么是遺傳規(guī)劃。遺傳規(guī)劃是遺傳算法的一個(gè)變種,它將這種進(jìn)化的思想應(yīng)用于程序(或函數(shù))的創(chuàng)造和改進(jìn)。遺傳規(guī)劃中的“個(gè)體”是計(jì)算機(jī)程序或數(shù)學(xué)函數(shù),它們被設(shè)計(jì)為解決給定的任務(wù)。在機(jī)器學(xué)習(xí)中,這些程序可以是分類器,預(yù)測器或其他類型的模型。遺傳規(guī)劃算法的原理可以概括為以下步驟:(即在給定任務(wù)上的性能),給出適應(yīng)度評分。概率。生成兩個(gè)新的程序。2-5的程序。再次,我們需要理解為什么遺傳規(guī)劃可以用于選股因子挖掘問題。選股因子挖掘是一個(gè)典型的機(jī)器學(xué)習(xí)問題,其目標(biāo)是發(fā)現(xiàn)能夠預(yù)測股票未來表現(xiàn)的有效因子。遺傳規(guī)劃的核心在于生成一系列的程序(在某些情況下可以看作是函數(shù)或數(shù)學(xué)表達(dá)式),并通過模擬自然進(jìn)化過程(包括交叉、突變和選擇)對這些程序進(jìn)行優(yōu)化。每一個(gè)程序都是一個(gè)可能的解決方案,用于解決特定的問題。在選股因子挖掘的場景中,這些程序可以被設(shè)計(jì)為計(jì)算或組合股票特征的函數(shù),目標(biāo)是找到對股票表現(xiàn)有預(yù)測能力的函數(shù)。例如,你可能有兩個(gè)特征:公司的市盈率(P/E)和市凈率(P/B)。一個(gè)最簡單的程序可能就是簡單地將這兩個(gè)特征相加,如program=P/E+P/B。然而,更復(fù)雜的程序可能會(huì)包含更復(fù)雜的操作和組合,例如program=log(P/E)*sqrt(P/B)。遺傳規(guī)劃就是通過模擬自然進(jìn)化的方式,來尋找最優(yōu)程序。因此,通過使用遺傳規(guī)劃,可以自動(dòng)化選股因子的發(fā)現(xiàn)和優(yōu)化過程,提高選股的精度和效率。算法優(yōu)勢遺傳規(guī)劃在選股因子挖掘問題上有其難以被其他方法替代的獨(dú)特優(yōu)勢:直觀易懂的底層邏輯。遺傳規(guī)劃算法源于自然界的生物演化過程,這種模仿自然現(xiàn)象的方式使得算法的邏輯相對直觀和易于理解。既符合我們對自然界規(guī)律的理解,又為我們提供了一種有效的問題解決方法。通過模擬生物進(jìn)化過程中的選擇、突變和交叉等現(xiàn)象,遺傳規(guī)劃可以自動(dòng)地在問題解決方案的空間中進(jìn)行搜索和優(yōu)化。自動(dòng)化特征生成與選擇:融合人工先驗(yàn)信息。遺傳規(guī)劃算法的算子支持人工添加,自由度非常高。可以很好將已經(jīng)通過人工發(fā)掘的有效算子納入其中,實(shí)現(xiàn)與先驗(yàn)知識的融合。這為模型提供了額外的學(xué)習(xí)指導(dǎo),進(jìn)一步提高了模型的性能。捕捉非線性和交互效應(yīng):生成的因子具有顯式公式,可解釋性強(qiáng)。因子生成過程具有很強(qiáng)的可溯源性,易于解釋因子邏輯。在遺傳規(guī)劃中,特征的組合和轉(zhuǎn)換是明確的,我們可以清晰地看到每個(gè)特征在模型中的作用,從而理解模型的決策過程。這對于我們理解預(yù)測結(jié)果具有非常重要的價(jià)值,可以為決策者提供更多的洞見。并且樣本內(nèi)外持續(xù)表現(xiàn)優(yōu)異的遺傳規(guī)劃因子如果還能有可解釋的合理邏輯,就更加錦上添花,增強(qiáng)使用者的信心,可以被長期使用。但需要注意的是,遺傳規(guī)劃算法得到的因子都是先有公式,后找邏輯,公式的邏輯性與可解釋性可遇不可求。在挖掘過程中,我們無法將公式的可解釋性定量納入適應(yīng)度評價(jià)函數(shù)中,只能通過控制公式長度來適當(dāng)提高可解釋性。并且公式是否可解釋、是否有明顯的經(jīng)濟(jì)含義、是否有邏輯都是與人的主觀判斷有關(guān),不同人的認(rèn)知水平不同,可能挖掘出的公式有其邏輯,但我們還沒有認(rèn)識到。相比之下,神經(jīng)網(wǎng)絡(luò)模型中的權(quán)重參數(shù)往往難以直接理解,得到的打分不具有顯性公式,會(huì)更加難以理解其生成原理。實(shí)現(xiàn)全局優(yōu)化:遺傳規(guī)劃是一種全局優(yōu)化技術(shù),可以在整個(gè)解決方案空間中尋找最優(yōu)解,而不只是局部最優(yōu)解。神經(jīng)網(wǎng)絡(luò)的訓(xùn)練通常涉及到梯度下降等局部搜索技術(shù),這可能會(huì)導(dǎo)致模型陷入局部最優(yōu)。換句話說,如果函數(shù)的形狀是多峰的(有多個(gè)局部最小值),梯度下降可能會(huì)在找到第一個(gè)局部最小值后就停止搜索,無法找到全局最小值。在局部最小值點(diǎn),函數(shù)的梯度就已經(jīng)為零,梯度下降算法無法得知其他可能的更低的函數(shù)值在哪里,只能按照當(dāng)前梯度的方向移動(dòng)。因而,遺傳規(guī)劃算法在處理多峰問題時(shí)更具優(yōu)勢。對噪聲較為魯棒,不易過擬合。股票市場的數(shù)據(jù)通常含有大量的噪聲,遺傳規(guī)劃方法下因子挖掘過程和目標(biāo)并不是直接關(guān)聯(lián)對應(yīng)的,進(jìn)化步驟完全隨機(jī),不存在梯度下降的方向性。這種隨機(jī)化多樣化的搜索策略使得它對噪聲較為魯棒,有助于防止過擬合。并且在變異進(jìn)化過程中我們也可以加入剪枝操作或修改適應(yīng)度函數(shù),讓模型傾向于選擇更簡單的公式。這種"奧卡姆剃刀"原則也有助于避免過擬合。因而,通過遺傳規(guī)劃挖掘到的單因子樣本外衰減相對不明顯,因子穩(wěn)定性和持久性相對較高,有被長期使用的可能性。而神經(jīng)網(wǎng)絡(luò)模型更加復(fù)雜,參數(shù)眾多,這使得它們具有非常強(qiáng)的表示能力。理論上,一個(gè)足夠大且深度足夠的神經(jīng)網(wǎng)絡(luò)可以逼近任何復(fù)雜的函數(shù)。但同時(shí)也導(dǎo)致神經(jīng)網(wǎng)絡(luò)容易過擬合,可能被噪聲中的誤導(dǎo)性模式所迷惑。而在選股因子挖掘問題中,避免過擬合顯得尤為重要。算法內(nèi)部是透明白盒的,可拓展的空間大,自由度高。是一個(gè)可持續(xù)進(jìn)行的因子挖掘工具。大自然進(jìn)化了上億萬年,物種變得越來越高級優(yōu)秀,因子也是一樣,只要給予時(shí)間,就可以不斷挖出好的因子。這意味著遺傳規(guī)劃不僅可以解決現(xiàn)在的問題,也可以為未來的問題提供持續(xù)的解決方案。對計(jì)算性能要求相對低。遺傳規(guī)劃的運(yùn)算主要涉及到一系列相對簡單的運(yùn)算,例如函數(shù)計(jì)算,邏輯運(yùn)算,選擇,交叉和突變等,并且每一代的遺傳規(guī)劃中,個(gè)體的評估通常是獨(dú)立的。CPU的矩陣運(yùn)算,例如在前向傳播和反向傳播過程中的矩陣乘法。這些運(yùn)算通常需要使用高度并行化GPU來加速,GPU配置的機(jī)器通常來講價(jià)格更加高昂。應(yīng)用廣泛,既可以挖掘單因子使用,也可以挖掘多個(gè)有效且低相關(guān)的單因子進(jìn)行合成,獲得個(gè)股綜合打分。遺傳規(guī)劃算法可以作為一個(gè)單因子挖掘的工具。其挖掘得到的單因子有明確表達(dá)式,我們可以人工篩選其中邏輯合理,樣本內(nèi)外持續(xù)表現(xiàn)優(yōu)異的機(jī)器因子長期使用,對現(xiàn)有因子庫進(jìn)行補(bǔ)充;也可以將挖掘得到多個(gè)低相關(guān)的優(yōu)秀因子進(jìn)行合成,提取一個(gè)個(gè)股的綜合打分評價(jià)。綜合打分可以直接用于相對低頻的橫截面選股,也可以用來做指數(shù)增強(qiáng)組合,也可以和現(xiàn)有的低頻alpha因子結(jié)合使用??梢耘c其他機(jī)器學(xué)習(xí)模型結(jié)合,互相間并不沖突。遺傳規(guī)劃和深度學(xué)習(xí)都是強(qiáng)大的機(jī)器學(xué)習(xí)工具,在某些方面具有互補(bǔ)性。遺傳規(guī)劃在特征生成和選擇方面表現(xiàn)優(yōu)異,可以作為深度學(xué)習(xí)模型的前端特征工程工具,提供高質(zhì)量的輸入特征,進(jìn)一步提高深度學(xué)習(xí)模型的性能。此外,遺傳規(guī)劃還可以將神經(jīng)網(wǎng)絡(luò)生成的因子取值作為擬合目標(biāo)。旨在把不可解釋的機(jī)器學(xué)習(xí)因子用顯式公式進(jìn)行表達(dá),把黑盒白盒化。因此,遺傳規(guī)劃和深度學(xué)習(xí)可以一起使用,以實(shí)現(xiàn)更好的預(yù)測性能。其他結(jié)合方法也有待我們進(jìn)一步發(fā)掘和嘗試??偨Y(jié)來看,遺傳規(guī)劃是一種極具潛力的工具,特別適合用于選股因子挖掘這種復(fù)雜的問題。雖然遺傳規(guī)劃會(huì)受到進(jìn)化效率較低的批評,但這并不能掩蓋其在解決復(fù)雜問題時(shí)所展現(xiàn)出的強(qiáng)大潛力和獨(dú)特優(yōu)勢。通過研究和改進(jìn),遺傳規(guī)劃算法完全可以為我們提供更加高效精準(zhǔn)的因子挖掘解決方案?;玖鞒袒谶z傳規(guī)劃算法進(jìn)行選股因子挖掘的基本流程如下:合生成一系列因子表達(dá)式,作為第一代種群集合;進(jìn)化:被選擇出的父代,通過表達(dá)式樹結(jié)構(gòu)的剪枝、交叉和葉節(jié)點(diǎn)突變等操作實(shí)現(xiàn)進(jìn)化,生成子代表達(dá)式,然后繼續(xù)選擇子代中適應(yīng)度較優(yōu)的一群個(gè)體作為父代繼續(xù)進(jìn)化。重復(fù)選擇與進(jìn)N代后,最終尋找出適應(yīng)度更優(yōu)的公式群。下面我們對遺傳規(guī)劃中涉及到的一些細(xì)節(jié)進(jìn)行介紹:公式樹、初始化參數(shù)、遺傳、變異(交叉變異、子樹變異、點(diǎn)變異、提升變異)。公式樹:遺傳規(guī)劃算法中的因子表達(dá)式一般表示成公式樹的形式,如下圖所示。內(nèi)部結(jié)點(diǎn)是函數(shù),葉子是變量或者常數(shù),具體取決于函數(shù)設(shè)置。公式樹具有深度(depth)(length)兩個(gè)屬性。深度是根結(jié)點(diǎn)到葉子結(jié)點(diǎn)的最遠(yuǎn)距離,只有一個(gè)值的公式樹深度為0,只有一個(gè)算子的公式樹長度是1。長度是公式樹中數(shù)學(xué)表達(dá)式元素的個(gè)數(shù),等于總結(jié)點(diǎn)數(shù)。圖3:遺傳規(guī)劃算法中的公式樹示例(depth=3,length=7)數(shù)據(jù)來源:繪制初始化參數(shù):遺傳規(guī)劃算法首先需要生成一群初始化種群,初始化需要考慮以下參數(shù):init_depthpopulation_sizegeneration:進(jìn)化代數(shù)。init_method'growfull和'halfandhalf'。在'grow'方init_depth'full'方法中,依次從函數(shù)集中選擇結(jié)點(diǎn),除非遇到最大深度,從終端集中選擇一個(gè)作為葉子結(jié)點(diǎn),這樣生成的樹比較擁擠和對稱。默認(rèn)為'halfandhalf’'grow',一半概率'full'。遺傳:在有了初始種群后,我們需要決定哪些能進(jìn)化到下一代。gplearn是通過錦標(biāo)賽(tournament)的方式,從種群中隨機(jī)選擇一個(gè)小子集彼此競爭,適應(yīng)度最高的個(gè)體會(huì)獲得變異進(jìn)tournament_size參數(shù)決定:tournament_size越大,越容易找到更合適的程序,進(jìn)化也會(huì)越快收斂到某個(gè)解;tournament_size越小,越可以維持種群多樣性,但進(jìn)化效率也會(huì)變低,更加耗費(fèi)時(shí)間。交叉變異(Crossover):交叉是為了混合基因,是相對更容易產(chǎn)生優(yōu)秀子代的變異方法。交叉變異操作需要執(zhí)行兩次tournaments從父代中隨機(jī)選擇一個(gè)子樹丟棄,并用捐贈(zèng)者的隨機(jī)子樹代替。參數(shù)p_crossover決定交叉變異執(zhí)行的概率。子樹變異(SubtreeMutation):子樹變異是比較激進(jìn)的變異方法。子樹變異操作需要首先選擇一個(gè)tournamentsp_subtree_mutation點(diǎn)變異(PointMutation):點(diǎn)變異和子樹變異一樣,也比較激進(jìn),會(huì)將沒有使用的函數(shù)和運(yùn)算符重新引入種群,同樣也有益于提升種群多樣性。點(diǎn)變異操作需要選擇一個(gè)tournaments贏家,然后隨機(jī)選擇其中一些結(jié)點(diǎn)被替換。終端結(jié)點(diǎn)用終端集替換,函數(shù)結(jié)點(diǎn)用函數(shù)集替換。參數(shù)p_point_mutationp_point_replace提升變異(HoistMutation):提升變異是一種對抗膨脹的變異操作,相對也比較暴力,直接去除掉了父代的部分基因。提升變異操作需要首先選擇一個(gè)tournaments參數(shù)p_hoist_mutation決定提升變異執(zhí)行的概率。重組(Reproduction)41,將不進(jìn)行變異,而直接進(jìn)行重組。錦標(biāo)賽獲勝者被克隆并進(jìn)入下一代不進(jìn)行修改。三、DFQ模型核心改進(jìn)點(diǎn):提升進(jìn)化效率由于在進(jìn)化過程中缺乏明確的目標(biāo)引導(dǎo),常規(guī)的遺傳規(guī)劃算法進(jìn)化效率低下。如何能提升進(jìn)化效率,在有限的算力,有限的時(shí)間內(nèi),進(jìn)化出更多、更好、更短、更低相關(guān)的因子,是算法的核心痛點(diǎn),改進(jìn)起來也極為困難。我們在這方面做了大量的探索實(shí)驗(yàn)工作,現(xiàn)總結(jié)如下。圖4:DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)核心改進(jìn)點(diǎn)提升初始種群質(zhì)量提升每代種群質(zhì)量提升每代產(chǎn)生的有效公式數(shù)量

提升進(jìn)化效率DFQ遺傳規(guī)劃價(jià)量因子挖掘系統(tǒng)

避免無效運(yùn)算降低挖掘因子的相關(guān)性動(dòng)態(tài)調(diào)整每代進(jìn)化參數(shù)數(shù)據(jù)來源:繪制

避免公式膨脹好的開始是成功的一半,初始種群質(zhì)量對后續(xù)進(jìn)化影響非常大。初始隨機(jī)生成的種群可能產(chǎn)生大量無效因子,從無效的因子出發(fā)更加難以進(jìn)化出有效的因子??梢钥紤]先擴(kuò)大搜索范圍,再找精英種群,對表現(xiàn)較好的初始種群進(jìn)行進(jìn)化。20001.3%7.8%1136IC1%90個(gè)IC5%20個(gè)公式出現(xiàn)重復(fù)。此外容易看出適應(yīng)度低的個(gè)體長度普遍較長。1136個(gè)IC不足1%的個(gè)體平均長度達(dá)到11,最長可達(dá)64圖5:2000個(gè)隨機(jī)種群的適應(yīng)度與公式長度分布length fitness70 9%60 8%7%506%40 5%30 4%3%202%10 1%alpha_52144_0_55alpha_52144_0_455alpha_52144_0_1179alpha_52144_0_448alpha_52144_0_244alpha_52144_0_159alpha_52144_0_880alpha_52144_0_1356alpha_52144_0_1822alpha_52144_0_281alpha_52144_0_1615alpha_52144_0_672alpha_52144_0_1077alpha_52144_0_71alpha_52144_0_713alpha_52144_0_444alpha_52144_0_621alpha_52144_0_793alpha_52144_0_1087alpha_52144_0_1565alpha_52144_0_1291alpha_52144_0_486alpha_52144_0_1731alpha_52144_0_406alpha_52144_0_1982alpha_52144_0_920alpha_52144_0_429alpha_52144_0_1175alpha_52144_0_155alpha_52144_0_292alpha_52144_0_854alpha_52144_0_1152alpha_52144_0_1706alpha_52144_0_1858alpha_52144_0_1985alpha_52144_0_737alpha_52144_0_1555alpha_52144_0_318alpha_52144_0_1016alpha_52144_0_1934alpha_52144_0_632alpha_52144_0_1231alpha_52144_0_64alpha_52144_0_821alpha_52144_0_1241alpha_52144_0_1987alpha_52144_0_960alpha_52144_0_1957alpha_52144_0_32alpha_52144_0_201alpha_52144_0_1827alpha_52144_0_1136alpha_52144_0_1896alpha_52144_0_272alpha_52144_0_93alpha_52144_0_250alpha_52144_0_377alpha_52144_0_508alpha_52144_0_656alpha_52144_0_765alpha_52144_0_874alpha_52144_0_1035alpha_52144_0_1154alpha_52144_0_1256alpha_52144_0_1377alpha_52144_0_1547alpha_52144_0_1632alpha_52144_0_1762alpha_52144_0_19070 0%alpha_52144_0_55alpha_52144_0_455alpha_52144_0_1179alpha_52144_0_448alpha_52144_0_244alpha_52144_0_159alpha_52144_0_880alpha_52144_0_1356alpha_52144_0_1822alpha_52144_0_281alpha_52144_0_1615alpha_52144_0_672alpha_52144_0_1077alpha_52144_0_71alpha_52144_0_713alpha_52144_0_444alpha_52144_0_621alpha_52144_0_793alpha_52144_0_1087alpha_52144_0_1565alpha_52144_0_1291alpha_52144_0_486alpha_52144_0_1731alpha_52144_0_406alpha_52144_0_1982alpha_52144_0_920alpha_52144_0_429alpha_52144_0_1175alpha_52144_0_155alpha_52144_0_292alpha_52144_0_854alpha_52144_0_1152alpha_52144_0_1706alpha_52144_0_1858alpha_52144_0_1985alpha_52144_0_737alpha_52144_0_1555alpha_52144_0_318alpha_52144_0_1016alpha_52144_0_1934alpha_52144_0_632alpha_52144_0_1231alpha_52144_0_64alpha_52144_0_821alpha_52144_0_1241alpha_52144_0_1987alpha_52144_0_960alpha_52144_0_1957alpha_52144_0_32alpha_52144_0_201alpha_52144_0_1827alpha_52144_0_1136alpha_52144_0_1896alpha_52144_0_272alpha_52144_0_93alpha_52144_0_250alpha_52144_0_377alpha_52144_0_508alpha_52144_0_656alpha_52144_0_765alpha_52144_0_874alpha_52144_0_1035alpha_52144_0_1154alpha_52144_0_1256alpha_52144_0_1377alpha_52144_0_1547alpha_52144_0_1632alpha_52144_0_1762alpha_52144_0_1907數(shù)據(jù)來源:&資訊提升每一代的進(jìn)化效果,做到一代更比一代強(qiáng)。遺傳規(guī)劃算法在每次變異的時(shí)候是沒有引導(dǎo),沒有方向,隨機(jī)發(fā)生的,可能變異出任何一個(gè)子代,可能變好也可能變差。我們希望能盡可能提升每一代種群質(zhì)量,避免子不如父,越進(jìn)化越差??梢钥紤]增加父子競爭機(jī)制,子不如父,優(yōu)先保留父代。由于進(jìn)化時(shí)挑選父代的邏輯是錦標(biāo)賽法,并不是每個(gè)父代都能獲得進(jìn)化機(jī)會(huì)。如果這個(gè)父代本身很優(yōu)秀,但未能被選中,就會(huì)在進(jìn)化過程中被遺漏,較為可惜??梢钥紤]對未獲得進(jìn)化機(jī)會(huì)的父代進(jìn)行額外的篩選保留。需要注意的是,本章節(jié)后續(xù)我們展示的均是示例數(shù)據(jù),所用特征、算子、適應(yīng)度等與最終模型并不一致,僅用來說明改進(jìn)的必要性。下面我們展示了不增加父子競爭機(jī)制的運(yùn)行結(jié)果。可以看到每一輪中進(jìn)化都不是逐代變優(yōu)的。隨機(jī)種子1和2中,第五代的平均適應(yīng)度低于第四代;隨機(jī)種子3中,第7-9代的平均適應(yīng)度均低于第6代。圖6:不增加父子競爭機(jī)制的運(yùn)行結(jié)果示例隨機(jī)種子隨機(jī)種子代數(shù)平均公式長度平均適應(yīng)度最優(yōu)適應(yīng)度的公式長度最優(yōu)適應(yīng)度1010.620.56%9.004.21%117.751.74%9.004.21%129.193.24%12.004.22%139.503.62%12.004.22%1411.403.94%15.004.22%1511.803.62%15.004.22%2010.970.60%17.002.52%217.251.40%3.003.42%225.512.26%3.003.42%233.333.34%3.003.42%243.323.36%3.003.42%253.233.27%3.003.42%3010.160.51%5.003.45%314.792.05%6.003.64%325.163.01%5.003.79%335.522.86%8.004.28%347.353.35%8.004.28%358.073.50%8.004.28%368.343.75%8.004.28%378.083.36%8.004.28%388.013.43%8.004.28%398.063.33%8.004.28%數(shù)據(jù)來源:&資訊下面我們展示了不增加額外的父代篩選保留機(jī)制的運(yùn)行結(jié)果。可以看到第三代的最優(yōu)適應(yīng)度3.65%的個(gè)體在后續(xù)進(jìn)化過程中被遺漏,后面每代的最優(yōu)個(gè)體適應(yīng)度均低于3.65%。圖7:不增加額外的父代篩選保留機(jī)制的運(yùn)行結(jié)果示例隨機(jī)種子代數(shù)平均公式長度平均適應(yīng)度最優(yōu)適應(yīng)度104.531.92%12.002.87%115.122.07%12.002.87%125.582.25%12.002.87%134.812.56%11.003.65%144.772.56%13.003.19%157.482.76%13.003.21%168.052.86%13.003.21%1710.892.94%13.003.21%1811.563.00%10.003.50%1910.983.11%10.003.50%11011.253.07%10.003.50%11110.633.16%10.003.50%11210.913.12%10.003.50%11310.483.19%10.003.50%數(shù)據(jù)來源:&資訊避免趨同進(jìn)化,降低重復(fù)率。優(yōu)秀的父代更容易被選中,基因更容易遺傳下去,從而就會(huì)擠壓其他父代的進(jìn)化機(jī)會(huì)。其次,優(yōu)秀的個(gè)體通過進(jìn)化進(jìn)一步提升表現(xiàn)相對也更困難,在父子競爭的模式下,同一父代會(huì)被重復(fù)保留,強(qiáng)勢基因不斷擴(kuò)散,每一代會(huì)產(chǎn)生許多重復(fù)公式。這不僅對提升整體預(yù)測能力作用有限,還浪費(fèi)大量算力,因而有必要對這種現(xiàn)象進(jìn)行限制。我們期望能盡可能保持種群多樣性,在一個(gè)隨機(jī)種子的路徑下,進(jìn)化出更多不同的優(yōu)秀子代。因此可以考慮減少父代被重復(fù)選中的概率,避免保留多次重復(fù)父代等。下面我們展示了不增加降低重復(fù)率機(jī)制的運(yùn)行結(jié)果。可以看到第15代中產(chǎn)生的144個(gè)子代中僅有20個(gè)不重復(fù)公式,有的公式重復(fù)出現(xiàn)了43次。圖8:不增加降低重復(fù)率機(jī)制的運(yùn)行結(jié)果示例5045403550454035302520151050數(shù)據(jù)來源:&資訊避免進(jìn)化只變長不變好,但也要保留進(jìn)化的多樣性。過長的因子不僅難以解釋其邏輯,過擬合的風(fēng)險(xiǎn)也更大。gplearn中的默認(rèn)參數(shù)’init_depth’只能控制初始種群的深度,無法對后期變異進(jìn)化后的子代進(jìn)行長度限制。如果僅靠初始種群這一步來挖掘有效因子,雖然可以控制公式長度但效率很低。只有當(dāng)種群進(jìn)化到下一代時(shí),才體現(xiàn)出優(yōu)勝劣汰,不斷進(jìn)化。所以遺傳規(guī)劃算法要想產(chǎn)生更優(yōu)秀個(gè)體,一定要靠更多的代數(shù)不斷進(jìn)化變異。但高代數(shù)進(jìn)化隨之帶來的就是公式膨脹問題:1.幾種變異都可能會(huì)讓公式變長;2.大種群下長度和適應(yīng)度有一定的正相關(guān),大概率對公式堆疊長度會(huì)小幅提升因子表現(xiàn),從而使得長公式更容易被保留。因此,我們需要避免只變長不變好這種無意義進(jìn)化,可以考慮:對變異算法進(jìn)行修改,降低明顯拉長公式的變異過程出現(xiàn)的概率;在適應(yīng)度加入適當(dāng)?shù)拈L度控制等。下面我們列出了不加公式膨脹限制的遺傳規(guī)劃運(yùn)行結(jié)果,可以看到已經(jīng)出現(xiàn)了明顯的公式膨61915618241。圖9:不加公式膨脹限制的遺傳規(guī)劃運(yùn)行結(jié)果示例隨機(jī)種子代數(shù)平均公式長度平均適應(yīng)度最優(yōu)適應(yīng)度的公式長度最優(yōu)適應(yīng)度1000011.730.29%5.002.25%100015.481.73%12.002.33%100025.541.98%14.002.52%100039.141.98%20.002.73%1000414.052.26%14.002.91%1000518.462.50%14.002.91%1000616.342.55%20.003.00%1000715.682.60%20.003.00%1000819.652.73%33.003.02%1000924.002.75%31.003.08%10001036.442.86%56.003.14%10001140.962.90%37.003.20%10001253.263.01%81.003.20%10001342.402.97%79.003.24%10001457.953.01%72.003.26%10001579.443.08%132.003.28%10001680.893.13%89.003.29%100017105.933.15%159.003.34%100018123.593.18%241.003.36%100019156.213.19%185.003.37%數(shù)據(jù)來源:&資訊加入適當(dāng)人工進(jìn)化干預(yù),動(dòng)態(tài)調(diào)整進(jìn)化過程和方向。一輪進(jìn)化通常包括多代,可以考慮根據(jù)每一代的進(jìn)化結(jié)果,調(diào)整下一代的進(jìn)化參數(shù),對每一輪的進(jìn)化過程進(jìn)行正確的干預(yù),這樣也能更快地收斂到我們想要的子代結(jié)果。遺傳規(guī)劃算法的不同輪從不同隨機(jī)種子出發(fā),但仍可能進(jìn)化出相似子代,造成算力浪費(fèi)。因此,我們可以考慮在算法中加入對于相關(guān)性的考量:內(nèi)部相關(guān)性懲罰:在適應(yīng)度中對相關(guān)性進(jìn)行懲罰。本文采用中位數(shù)相關(guān)性懲罰的模式,中位數(shù)懲罰相對力度小,能保留原有因子的進(jìn)化機(jī)會(huì)。如果直接用最大相關(guān)性懲罰,就意味著因子庫只要已有該因子,后面都不會(huì)挖掘類似因子,犧牲了一部分進(jìn)化可能性。然而,當(dāng)進(jìn)行相關(guān)性考察的因子變多時(shí),中位數(shù)易低估。因而,我們又額外加入了一條最大相關(guān)性篩選。如果因子0。外部相關(guān)性篩選:每輪結(jié)果后將已有輪次的所有挖掘結(jié)果進(jìn)行合并,再按照適應(yīng)度和相關(guān)性對因子庫進(jìn)行精簡。具體做法是:把這一輪和之前輪次得到的所有符合閾值要求的因子放f0f1f1f0f1f1遺傳規(guī)劃算法在公式生成時(shí)隨機(jī)性強(qiáng),特征和算子間會(huì)隨機(jī)組合,形成各種意想不到的形式,這對算子和適應(yīng)度的編寫提出了很高的要求。如果不對算子進(jìn)行優(yōu)化,可能會(huì)花了很長時(shí)間來挖掘,結(jié)果一輪挖出后的因子大部分都是不合理的。因此,需要我們對特征、算子、適應(yīng)度的算法進(jìn)行優(yōu)化,考慮到各種不合理輸入的兼容性,避免無效運(yùn)算,提升挖掘效率。四、DFQ模型實(shí)驗(yàn)結(jié)果遺傳規(guī)劃算法在實(shí)際使用時(shí)通常不需要我們自行實(shí)現(xiàn),有很多開源的框架可以采用。在Python環(huán)境中有許多可以直接調(diào)用的包,經(jīng)過適當(dāng)修改即可用于選股因子挖掘。本文我們以gplearn為基礎(chǔ)進(jìn)行改進(jìn),使用SymbolicTransformer模塊實(shí)現(xiàn)自動(dòng)化特征工程的轉(zhuǎn)換,即選股因子挖掘過程。6個(gè)月及ST、*ST、PT、暫停上市等特別處理股票后的全部A股。22012.1.1-2016.12.315年數(shù)據(jù)作為訓(xùn)練集,17-23年為樣本外測試集。增大訓(xùn)練集樣本會(huì)增加內(nèi)存消耗。20操作,但會(huì)增加內(nèi)存消耗,后續(xù)我們會(huì)繼續(xù)進(jìn)行嘗試。挖掘價(jià)量因子。在前期報(bào)告《機(jī)器因子庫相對人工因子庫的增量》中,我們嘗試過對財(cái)務(wù)因子的挖掘,但挖掘出的因子效果不如傳統(tǒng)財(cái)務(wù)因子。財(cái)務(wù)數(shù)據(jù)由于更新頻率低,且需邏輯支持,并不是很適合使用機(jī)器學(xué)習(xí)來進(jìn)行因子生成。后續(xù)我們會(huì)繼續(xù)進(jìn)行嘗試。特征:47個(gè)。包括日度量價(jià)特征和日內(nèi)分鐘量價(jià)特征。高質(zhì)量的L22013l2對部分特征進(jìn)行了適當(dāng)量綱調(diào)整。算子:81個(gè)。包括gplearn972個(gè)。自定義算子包括元素運(yùn)算、截面運(yùn)算和時(shí)序運(yùn)算,算子內(nèi)部需要充分考慮兼容性及運(yùn)算效率。常數(shù):1,5,10,20,40,60,表示時(shí)序算子的計(jì)算窗口期。由于我們只希望常數(shù)出現(xiàn)在算子的指定位置上,避免無意義運(yùn)算,因而并不在默認(rèn)參數(shù)const_range底層代碼中修改添加。本文的重點(diǎn)在于改進(jìn)遺傳規(guī)劃算法本身,提升進(jìn)化效率,目的是在任意一個(gè)適應(yīng)度下,都能更高效地找到更多符合要求的因子。因而,此處我們沒有對適應(yīng)度指標(biāo)進(jìn)行詳盡對比,而是選擇業(yè)內(nèi)最常見的行業(yè)市值中性化后的rankIC作為適應(yīng)度IC計(jì)算前我們進(jìn)行異常值處理、缺失值填充、標(biāo)準(zhǔn)化、行業(yè)市值中性化操作。后續(xù)我們會(huì)繼續(xù)嘗試其他適應(yīng)度指標(biāo)。模型運(yùn)行用時(shí)與隨機(jī)公式的復(fù)雜度、隨機(jī)算子的計(jì)算效率、cpu性能有關(guān),無法準(zhǔn)確估計(jì)。IntelXeonGold6242RCPU3.10GHZ,80線程,256G內(nèi)存的36155-2420-505%50%3-4100個(gè)適應(yīng)度超過5%,且互相間相關(guān)系數(shù)不超過50%的單因子。下面我們展示某次連續(xù)兩輪挖掘的運(yùn)行信息和運(yùn)行結(jié)果。從第一輪來看:(1)第0代初始種群的平均適應(yīng)度達(dá)到6.21%,最優(yōu)公式適應(yīng)度達(dá)到9.16%,說明我們對初始種群質(zhì)量的提升有效;(2)隨著代數(shù)增多,種群平均長度和平均適應(yīng)度都在逐漸提高,進(jìn)化在逐代變優(yōu),說明我們對每代種群質(zhì)量的提升有效;(3)每代保留的適應(yīng)5%15200+5%的個(gè)體。表格展示的數(shù)字都是去重后的,不存在同代重復(fù)個(gè)體的影響。說明我們對每代產(chǎn)生有效公式數(shù)量的提升有效;(4)最優(yōu)公式長度控制在1015代進(jìn)化總用時(shí)8.42h,第0代用時(shí)最長達(dá)到4.87h,后面15代平均用時(shí)27min。從第二輪來看:(1)由于第二輪是在第一輪的因子基礎(chǔ)上挖掘與第一輪精選因子低相關(guān)性155%所減少。(2)第二輪每代進(jìn)化用時(shí)相比第一輪也都有增長,但需要注意的是,第二輪是從新的隨機(jī)種子出發(fā)生成不同公式,里面不同算子的運(yùn)行效率不同,運(yùn)行時(shí)長有一定的隨機(jī)性。此處展示的例子是目前測試下來一輪用時(shí)最長的。圖10:運(yùn)用遺傳規(guī)劃算法進(jìn)行因子挖掘的執(zhí)行信息(連續(xù)兩輪)隨機(jī)種子代數(shù)平均公式長度平均適應(yīng)度最優(yōu)公式長度最優(yōu)公式適應(yīng)度適應(yīng)度超過5%的公式個(gè)數(shù)運(yùn)行時(shí)間(h)52121805.356.21%29.16%1004.8752121815.906.32%49.42%1130.2752121826.406.41%49.42%1240.3952121836.436.67%49.42%1360.3852121846.886.84%49.42%1470.2952121856.896.96%59.52%1590.3752121866.977.06%59.52%1680.2552121876.977.21%59.52%1780.1452121886.857.22%49.53%1820.1252121896.737.38%49.53%1920737.49%49.53%1950.23521218116.667.59%49.53%2070.32521218126.837.63%810.01%2150957.66%810.01%2250.12521218146.957.71%810.01%2350.26521218156.937.78%810.01%2400.1252121905.306.27%48.55%1007.5952121915.506.39%48.55%1170.9052121925.666.56%48.55%1270.9952121935.866.69%48.55%1390.8752121946.016.79%68.76%1470.9352121956.066.89%78.98%1581.0152121966.166.99%78.98%1640.9352121976.257.14%89.00%1720.8652121986.227.19%89.00%1751.0252121996.217.32%69.06%1820.85521219106.317.38%89.44%1881.00521219116.397.36%89.44%1930.86521219126.487.42%89.44%1980.88521219136.517.50%89.44%2010.89521219146.617.55%89.44%2050.80521219156.657.60%89.44%2110.86數(shù)據(jù)來源:&資訊一輪挖掘后的第15代因子,在進(jìn)行了外部的相關(guān)性篩選后,分別保留了45個(gè)適應(yīng)度超過5%50%的因子。5%-10%1-53-14。45186%1-33-44-131-2個(gè)新因153可見,多代進(jìn)化是有必要的,每代都能進(jìn)化出優(yōu)秀且有差異化 的因子。 圖11:運(yùn)用遺傳規(guī)劃算法進(jìn)行因子挖掘的執(zhí)行結(jié)果(一輪)保留個(gè)數(shù) 保留個(gè)體平均適應(yīng)度184184342222311211816141210864200 1 2 3 4 5 6 7 8 10 12 13

9.00%8.00%7.00%6.00%5.00%4.00%3.00%2.00%1.00%0.00%數(shù)據(jù)來源:&資訊兩輪挖掘后,將對第一輪精選后的4515代得到的適應(yīng)度達(dá)到閾值的因子645%50%36個(gè)來自第一輪,281-53-14。圖12:運(yùn)用遺傳規(guī)劃算法進(jìn)行因子挖掘的執(zhí)行結(jié)果(連續(xù)兩輪)數(shù)據(jù)來源:&資訊在算法優(yōu)勢的部分我們曾介紹過,遺傳規(guī)劃算法可以作為一個(gè)單因子挖掘的工具。其挖掘得到的單因子有明確表達(dá)式,可以人工篩選其中邏輯合理,樣本內(nèi)外持續(xù)表現(xiàn)優(yōu)異的因子長期使用,對現(xiàn)有因子庫進(jìn)行補(bǔ)充。單因子更多需要長期有效,樣本外衰減慢,因而我們列出的是因子在12-23年全樣本區(qū)間的表現(xiàn),適應(yīng)度指標(biāo)仍指訓(xùn)練集。單調(diào)性使用十組超額收益和[1,2,3,4,5,6,7,8,9,10]這個(gè)序列的秩相關(guān)系數(shù)來表示,取值范圍為[-1,1]。十組分檔收益如果完全單IC1IC-1。首先我們列出了18個(gè)人工價(jià)量因子的效果進(jìn)行對比。這18個(gè)人工因子中全樣本中性化IC絕對值基本均超過5%,ICIR絕對值基本均超過2%,整體較強(qiáng)。因子單調(diào)性整體較好,有7個(gè)因子都是完全單調(diào)的。但多頭表現(xiàn)一般且2023年失效嚴(yán)重,僅有2個(gè)因子12年以來多頭年化超10%。其中:1.ivol12rankIC最高,達(dá)到-10.38%。2.sdvvol12年以來的中性化ICIR、10組多頭超額收益最高均為最高,年化ICIR達(dá)到-5.45,多頭超額年化收益達(dá)到10.29%。3.dwf因子2023年以來10組多頭超額收益最高,達(dá)到11%。13:18因子類別因子名稱因子含義參考報(bào)告ret20過去20個(gè)交易日的收益率vol20過去20個(gè)交易日的波動(dòng)率ppreversal過去5日均價(jià)/過去60日均價(jià)-1日線量價(jià)maxret20ivol20過去20日最大3個(gè)日收益均值20個(gè)交易日的特質(zhì)波動(dòng)率《低特質(zhì)波動(dòng),高超額收益》ivr20過去20個(gè)交易日的特異度《投機(jī)、交易行為與股票收益(上)》lnto_20d過去20個(gè)交易日日均換手率的對數(shù)《非流動(dòng)性的度量及其橫截面溢價(jià)》lnamihud2020日Amihud非流動(dòng)性自然對數(shù)《非流動(dòng)性的度量及其橫截面溢價(jià)》dwf_h20d漲幅榜單因子(榜單參數(shù)N=100,半衰期20個(gè)交易日)《A股漲跌幅排行榜效應(yīng)》idjump_20d過去20個(gè)交易日日內(nèi)極端收益之和《溫和收益的動(dòng)量與極端收益的反轉(zhuǎn)》idmom_20d過去20個(gè)交易日日內(nèi)溫和收益、隔夜收益之和《溫和收益的動(dòng)量與極端收益的反轉(zhuǎn)》idskew_20d過去20個(gè)交易日的日內(nèi)收益率偏度均值《日內(nèi)交易特征穩(wěn)定性與股票收益》idkurt_20d過去20個(gè)交易日的日內(nèi)收益率峰度均值《日內(nèi)交易特征穩(wěn)定性與股票收益》日內(nèi)量價(jià)sdrvol_20d過去20個(gè)交易日日內(nèi)波動(dòng)率的標(biāo)準(zhǔn)差除以均值《日內(nèi)交易特征穩(wěn)定性與股票收益》sdrskew_20d過去20個(gè)交易日日內(nèi)收益率偏度的標(biāo)準(zhǔn)差《日內(nèi)交易特征穩(wěn)定性與股票收益》sdvvol_20d過去20個(gè)交易日日內(nèi)成交量二階矩的標(biāo)準(zhǔn)差除以均值《日內(nèi)交易特征穩(wěn)定性與股票收益》apb_1d_20d基于日內(nèi)行情計(jì)算的APB指標(biāo),20個(gè)交易日平滑《基于量價(jià)關(guān)系度量股票的買賣壓力》arpp_1d_20d基于1天周期計(jì)算的ARPP指標(biāo),20個(gè)交易日平滑《基于時(shí)間尺度度量的日內(nèi)買賣壓力》數(shù)據(jù)來源:&資訊圖14:18個(gè)人工價(jià)量因子績效表現(xiàn)(2012.1.1-2023.4.17)表達(dá)式原始ICIC_IR行業(yè)市值正交IC行業(yè)市值正交IC_IR10組多頭年化超額收益(2012-)10超額收益(2017-)10超額收益(2019-)10超額收益(2023-)10絕對收益(2017-)10絕對收益(2019-)10絕對收益(2023-)單調(diào)性sdvvol_20d-7.81%(4.44)-7.48%(5.45)10.29%67.19%43.23%2.97%80.17%167.26%11.05%-100.00%arpp_1d_20d6.68%3.155.74%3.9510.08%47.31%11.86%0.19%61.77%111.22%8.38%98.79%ivol20-10.73%(2.79)-10.38%(3.82)8.46%31.87%18.94%5.81%44.47%124.99%14.07%-100.00%ivr20-8.96%(3.83)-8.17%(4.56)7.99%55.71%38.66%3.73%67.78%158.93%11.74%-100.00%idskew_20d-7.17%(3.21)-7.09%(4.86)7.79%47.53%26.05%-0.20%59.70%136.62%7.79%-100.00%sdrskew_20d-4.41%(1.62)-5.30%(3.46)7.62%55.85%32.21%-0.37%69.44%148.61%7.71%-96.36%idkurt_20d-3.08%(0.85)-4.50%(1.99)7.26%62.89%40.99%-0.93%76.00%163.62%7.09%-96.36%sdrvol_20d-6.67%(2.48)-6.91%(3.73)7.13%59.14%33.12%1.18%72.79%150.17%9.30%-100.00%lnto_20d-8.78%(1.72)-10.05%(3.01)6.94%37.52%19.55%1.68%52.21%128.43%9.72%-98.79%idjump_20d-10.11%(2.87)-9.38%(4.04)6.66%36.21%18.78%3.76%46.10%120.97%11.89%-98.79%dwf_h20d-10.23%(3.03)-9.42%(4.10)6.50%30.84%17.21%11.09%39.36%117.11%19.51%-98.79%apb_1d_20d8.14%3.847.52%5.226.19%10.71%-4.64%-1.27%19.07%77.84%6.71%100.00%maxret20-9.40%(2.29)-9.42%(3.36)4.34%9.26%3.80%4.42%19.96%96.23%12.60%-91.52%ret20-6.86%(1.78)-6.82%(2.59)3.50%-1.35%-5.58%-2.35%4.19%73.41%5.19%-84.24%vol20-8.17%(1.70)-8.53%(2.57)2.82%0.93%3.33%4.87%10.95%96.93%13.13%-69.70%lnamihud207.57%1.745.82%2.642.28%-4.40%-14.73%1.77%4.89%61.64%9.74%84.24%idmom_20d6.62%1.795.80%2.212.06%25.89%16.12%4.05%37.05%118.24%12.24%66.06%ppreversal-6.47%(1.47)-5.82%(1.88)1.68%-8.76%-8.52%-2.92%-3.39%68.81%4.65%-81.82%數(shù)據(jù)來源:&資訊DFQ模型挖出的單因子眾多,在撰寫這部分時(shí)我們進(jìn)行了3天的挖掘,已找到了324個(gè)訓(xùn)練集適應(yīng)度超過5%,不重復(fù),且與18個(gè)人工價(jià)量因子相關(guān)性不高的單因子。45個(gè)在12IC5%14%27ICIR24080%IC781210%IC作為適應(yīng)度,未考慮其他因子評價(jià)標(biāo)準(zhǔn),后續(xù)我們會(huì)嘗試其他適應(yīng)度指標(biāo),以期能夠更加全面評價(jià)地因子表現(xiàn)。15:DFQ324個(gè)單因子全樣本中性化IC(2012.1.4-2023.4.14)

圖16:DFQ遺傳規(guī)劃挖掘324個(gè)單因子全樣本中性化年化ICIR分布(2012.1.4-2023.4.14)行業(yè)市值正交IC 行業(yè)市值正交IC_IR15.00%10.00%5.00%0.00%-5.00%-10.00%11211223344556677889100111122133144155166177188199210221232243254265276287298309320

6.004.002.000.00(2.00)(4.00)(6.00)89892757236124687988104144172214220146175133286193278200247272138134304232154160254248308數(shù)據(jù)來源:&資訊 數(shù)據(jù)來源:&資訊17:DFQ324布(2012.1.4-2023.4.14)

18:DFQ32410收益分布(2012.1.4-2023.4.14)150.00%

單調(diào)性

25.00%

10組多頭年化超額收益(2012-)1

20.00%15.00%10.00%5.00%0.00%427數(shù)據(jù)來源:&資訊 數(shù)據(jù)來源:&資訊由于篇幅有限,我們僅精選了幾個(gè)單因子來展示。挖掘持續(xù)進(jìn)行中,新因子不斷出現(xiàn),如需其他單因子,可聯(lián)系報(bào)告作者。我們此次精選出的單因子均在多種因子表現(xiàn)衡量維度下表現(xiàn)優(yōu)異:12IC8%ICIR4以上;IC絕對值不大幅低于訓(xùn)練集適應(yīng)度(IC絕對值低);1210%以上;99%1850%;6%;圖19:DFQ遺傳規(guī)劃挖掘10個(gè)單因子績效表現(xiàn)(2012.1.4-2023.4.14)數(shù)據(jù)來源:&資訊下面我們分別介紹這幾個(gè)因子的原始表達(dá)式,含義,并展示全樣本多頭超額收益凈值以及分年超額收益。log(rank_div(amount,apb)):該因子12年以來多頭超額收益達(dá)到15.13%,是我們目前挖到的因子中排名第一的。但17年之后因子多頭表現(xiàn)有所衰減。與換手率因子相關(guān)性最高,達(dá)38%,但多頭端表現(xiàn)和icir均有顯著提升。因子表達(dá)式中涉及的算子均為截面運(yùn)算,表示每日的個(gè)股成交額(amount)和個(gè)股買賣壓力(apb,等權(quán)加權(quán)均價(jià)和成交量加權(quán)均價(jià)之比的對數(shù))的截面排名之比,再取log(abs(x))。因子值越大說明個(gè)股的amount截面排名高,并且apb截面排名低。apb低反映股票的買壓小,賣壓大,對股票未來收益是負(fù)向影響,因此整體因子IC負(fù)向。mul(mul(power3(max(rskew,lnto)),swing),lnto):今年以來多頭表現(xiàn)突出,多頭超額收益達(dá)到15.5%,是我們目前挖到的因子中今年表現(xiàn)最好的。17年以來以及19年以來多頭超額收益也在我們目前挖到的因子中排名前三。與換手率因子相關(guān)性最高,達(dá)34%icir均有顯著提升。由于日內(nèi)收益率偏度(rskew)和日內(nèi)對數(shù)換手率(lnto)量綱相近,因子可以理解為取rskewlnto(swing),lntomul(ts_max(lncoret,40if_then_else(tr,amihudsqrskewlnhlret)):今年以來多頭表現(xiàn)也不錯(cuò),多頭超額收益達(dá)到11.99%48%,但多頭端表現(xiàn)和icir顯著提升。因子表達(dá)式為兩部分相乘,第一部分為過去40個(gè)交易日的開盤-收盤對數(shù)收益率(lncoret)if_then_else(tr)和非流動(dòng)性(amihud)的大小,若tr獲勝取日內(nèi)偏度的平方(sqrskew),若amihud獲勝取最高-最低對數(shù)收益率(lnhlret)。該因子屬于波動(dòng)率因子的變形。umr(max(inv(curt(ts_mean(power3(amount),10lnto),vhhi):今年以來多頭超額收益達(dá)到10.3%。17年以來以及19年以來多頭超額收益在我們目前挖到的因子中均排名第一。與換手率因子相關(guān)性最高,達(dá)51.67%,但多頭端表現(xiàn)和icir均有顯著提升。公式相對較為復(fù)雜,但可以基本簡化為umr(lnto,vhhi)。umr(x1,x2)是我們自定義的算子表示(x1-mean(x1))*x2。lnto表示當(dāng)日對數(shù)換手率,vhhiHHI指數(shù),考察日內(nèi)成交量在不同交易時(shí)間分布的離散程度。vhhi指數(shù)越大,表示日內(nèi)成交量集中程度越高。二者均為正vhhivhhiIC我們也挖到了相近形式的umr(amihud,vhhi)、umr(amihud,power2(ts_ewm(swing,60)))、umr(ts_sum(power2(max(rskew,lnto)),1),vhhi)。這三個(gè)因子12年以來多頭超額收益均在13%以上。scale(power3(rank_mul(ts_to_wm(adjhigh20lnto))):今年以來多頭表現(xiàn)突出,多頭超額收益達(dá)到14.01%,在我們目前挖到的因子中排名前三。與反轉(zhuǎn)因子相關(guān)性最高,達(dá)但多頭端表現(xiàn)、ic、icir均有顯著提升。因子表達(dá)式可近似理解為兩個(gè)元素排名相乘,第一個(gè)元素為過去20個(gè)交易日的復(fù)權(quán)最高價(jià)(adjhigh)/過去20個(gè)交易日最高價(jià)的線性衰減加權(quán)均值,第二個(gè)元素為lnto。industry_norm(if_then_else(arpp,lnto,swing,cret)):今年以來多頭表現(xiàn)也不錯(cuò),多頭超額收益達(dá)到11.6%,與換手率因子相關(guān)性最高,達(dá)41%,但多頭端表現(xiàn)和icir顯著提升。該因子同樣用到了邏輯判斷if_then_else算子,比較日內(nèi)買賣壓力(arpp,時(shí)間加權(quán)均價(jià)的相對價(jià)格位置)lntoarpp獲勝取日內(nèi)振幅(swing),lnto獲勝取收盤價(jià)對數(shù)收益率(cret)。ts_max(ts_cov(sqrvol,ex_lnret,20),60):今年以來多頭表現(xiàn)也不錯(cuò),多頭超額收益達(dá)到9.27%,與idmom因子相關(guān)性最高,達(dá)34%,但多頭端表現(xiàn)、ic、icir均有顯著提升。因子可以理解為日內(nèi)波動(dòng)率的平方(sqrvol)和個(gè)股超額收盤價(jià)對數(shù)收益率(ex_lnret)在過去20個(gè)交易日的協(xié)方差,再取時(shí)序上60個(gè)交易日的最大值。scale(mul(ts_sum(ts_cov(adjvolumerank(adjvolume20),1rvol)):今年以來多頭表現(xiàn)也不錯(cuò),多頭超額收益達(dá)到10.21%,與sdvvol因子相關(guān)性最高,達(dá)38%,但I(xiàn)C、多頭端今年以來表現(xiàn)均有顯著提升。因子可以近似理解為過去20個(gè)交易日復(fù)權(quán)成交量(adjvolume)方差,乘上日內(nèi)波動(dòng)率(rvol)。mean2(ts_mean(lncoret,60ts_max_to_min(apb10:與MAXRET20因子相關(guān)性最高,達(dá)39%,但多頭端表現(xiàn)、ICIR均有顯著提升。60-收盤對數(shù)收益率(lncoret)10apb的最大值-rank_sub(amihud,ts_max(sqrt(power2(rank(amount))),1)):與換手率因子相關(guān)性最高,達(dá)50.67%,但多頭端表現(xiàn)和icir顯著提升。因子大致等于非流動(dòng)性(amihud)和過去2天成交額(amount)最大值的截面排名之差。圖20:DFQ遺傳規(guī)劃挖掘10個(gè)單因子多頭超額收益凈值(2012.1.4-2023.4.14)

圖21:DFQ遺傳規(guī)劃挖掘10個(gè)單因子多頭分年超額收益(2012.1.4-2023.4.14)6.00

log(rank_div(amount,apb))umr(max(inv(curt(ts_mean(power3(amount),10))),lnto),vhhi)rank_sub(amihud,ts_max(sqrt(power2(rank(amount))),1))mul(mul(power3(max(rskew,lnto)),swing),lnto)mul(ts_max(lncoret,40),if_then_else(tr,amihud,sqrskew,lnhlret))scale(power3(rank_mul(ts_to_wm(adjhigh,20),lnto)))industry_norm(if_then_else(arpp,lnto,swing,cret))ts_max(ts_cov(sqrvol,ex_lnret,20),60)scale(mul(ts_sum(ts_cov(adjvolume,rank(adjvolume),20),1),rvol))mean2(ts_mean(lncoret,60),ts_max_to_min(apb,10))

60.00%

log(rank_div(amount,apb))umr(max(inv(curt(ts_mean(power3(amount),10))),lnto),vhhi)rank_sub(amihud,ts_max(sqrt(power2(rank(amount))),1))mul(mul(power3(max(rskew,lnto)),swing),lnto)mul(ts_max(lncoret,40),if_then_else(tr,amihud,sqrskew,lnhlret))scale(power3(rank_mul(ts_to_wm(adjhigh,20),lnto)))industry_norm(if_then_else(arpp,lnto,swing,cret))ts_max(ts_cov(sqrvol,ex_lnret,20),60)scale(mul(ts_sum(ts_cov(adjvolume,rank(adjvolume),20),1),rvol))mean2(ts_mean(lncoret,60),ts_max_to_min(apb,10))5.00

50.00%4.00

40.00%3.00 30.00%2.00

20.00%1.00

10.00%0.00%2017/12/62018/4/92018/8/22018/11/302019/4/22019/7/302019/11/272020/3/272020/7/272020/11/242021/3/242021/7/212021/11/192022/3/212022/7/192022/11/162023/3/16-10.00%201220132014201520162017201820192020202120222023數(shù)據(jù)來源:&資訊 數(shù)據(jù)來源:&資訊在算法優(yōu)勢部分我們也提到過,同樣可以將遺傳規(guī)劃算法挖掘得到的多個(gè)低相關(guān)的優(yōu)秀因子后進(jìn)行合成,提取個(gè)股的綜合打分評價(jià)。綜合打分可以直接用于相對低頻的橫截面選股,也可以用來做指數(shù)增強(qiáng)組合,也可以和現(xiàn)有的低頻alpha因子結(jié)合使用。由于多因子合成結(jié)果與我們挖到的因子數(shù)量有關(guān),目前僅展示基于現(xiàn)有挖掘成果得到的合成因子表現(xiàn)。挖掘持續(xù)進(jìn)行中,感興趣的投資者歡迎關(guān)注我們后期的更新結(jié)果。首先我們將每次挖掘完成后,達(dá)到適應(yīng)度閾值,且通過相關(guān)性篩選后保留的因子拼在一起,根據(jù)表達(dá)式進(jìn)行去重。而后進(jìn)行基本的異常值、缺失值、標(biāo)準(zhǔn)化、中性化處理。由于我們的因子挖掘在多臺服務(wù)器同時(shí)進(jìn)行,并不是持續(xù)不間斷挖掘的,因此還需要再根據(jù)處理后的中性化單因子值計(jì)算訓(xùn)練集中的相關(guān)系數(shù)。目前在進(jìn)行了3天的挖掘后,我們得到了324個(gè)有效單因子,將他們按照相關(guān)系數(shù)0.5過濾后,還剩下152個(gè)單因子。機(jī)性,我們只能確保得到的因子在訓(xùn)練集上適應(yīng)度達(dá)標(biāo),但無法確保其樣本外不衰減,因而我們152IC6.3%31個(gè)因子全樣本中性化IC5%,樣本外衰減率較低。18個(gè)因子全樣本ICIR22380%接下來我們將訓(xùn)練集(2012.1.1-2016.12.31)中挖掘到的這152個(gè)單因子進(jìn)行加權(quán),測試樣本外合成因子的表現(xiàn),合成因子樣本外回測區(qū)間為2017.1.11-2023.4.14。因子加權(quán)方式眾多,并無廣泛認(rèn)可的最優(yōu)方式,每種加權(quán)方法都有其適用的情況。并且低頻因子的加權(quán)結(jié)果也相對隨機(jī),不同年份表現(xiàn)有所差異。我們無意探討因子加權(quán)的問題,僅分別列出了zscore等權(quán)、線性回歸模型下的彈性網(wǎng)絡(luò)回歸,這2種方式下的DFQ遺傳規(guī)劃合成因子和18個(gè)人工合成因子的表現(xiàn)。DFQ15218個(gè)因子,他們的內(nèi)部相關(guān)性并不高,因此zscore等權(quán)也是一個(gè)可行做法,我們重新計(jì)算訓(xùn)練集IC來確定因子符號。彈性網(wǎng)絡(luò)回歸(ElasticNetRegression)(RidgeRegression)lasso回歸(LassoRegression)的線性回歸模型,能夠比較好的處理因子間的共線性問題,避免因子間的冗余和過擬合,是線性回歸模型中表現(xiàn)較突出的做法。它通過同時(shí)懲罰絕對值和平方值來達(dá)到選擇特征和擬合數(shù)據(jù)的目的,不僅可以像嶺回歸那樣縮小系數(shù),還可以像lasso回歸那樣選擇特征。我們采用平行訓(xùn)練的做法,每個(gè)月取過去48個(gè)月模型的預(yù)測均值作為預(yù)期收益率。L1_ratio設(shè)置0.5,alpha設(shè)置0.01,對參數(shù)進(jìn)行網(wǎng)格搜索后生成的合成因子效果并無顯著提升。圖22:18個(gè)人工價(jià)量因子的原始值相關(guān)系數(shù)矩陣數(shù)據(jù)來源:&資訊可以看到:在不同加權(quán)方法下,DFQ遺傳規(guī)劃合成因子的整體績效表現(xiàn)均優(yōu)于18個(gè)人工合成因子。在彈性網(wǎng)絡(luò)方法下,DFQ遺傳規(guī)劃合成因子整體表現(xiàn)更突出。RankIC12.72%,年化ICIR5.44,201713.29%2.423.5%,74%72%2014.32%。18152績效指標(biāo)zscore等權(quán)彈性網(wǎng)絡(luò)18人工因子152gp因子績效指標(biāo)zscore等權(quán)彈性網(wǎng)絡(luò)18人工因子152gp因子18人工因子152gp因子152gp+18人工因子IC9.88%13.24%12.41%12.72%12.89%ICIR3.614.724.935.445.53tstat12.19915.7312.7313.713.92月均收益1.10%0.67%0.70%1.06%0.99%年化夏普1.881.501.452.422.36勝率70.13%68.80%66.23%74.02%74.02%最大回撤-7.70%-6.23%-7.27%-3.50%-2.93%月均單邊換手率78.12%65.87%69.92%72.27%71.52%年化超額收益14.26%8.20%8.55%13.29%12.50%月均收益 0.90% 0.63%0.69%1.35% 1.09% 年化夏普1.301.291.25 2.31 2.40勝率62.50%65.00%55.00%75.00%75.00%最大回撤-7.71%-6.23%-5.23%-3.50%-2.93%月均單邊換手率77.41%63.85%63.04%70.06%68.28%年化超額收益11.03%7.68%8.42%14.32%13.77%圖23:DFQ遺傳規(guī)劃挖掘合成因子VS18個(gè)人工合成因子績效表現(xiàn)-zscore等權(quán)VS彈性網(wǎng)絡(luò)回歸(2017.1.11-2023.4.14)(2017-)20分組多頭超額(2017-)20分組多頭超額(2020-)數(shù)據(jù)來源:&資訊下面我們詳細(xì)展示按照彈性網(wǎng)絡(luò)回歸方法加權(quán)的152個(gè)DFQ遺傳規(guī)劃合成因子的分組表現(xiàn)。可以看到,20分組單調(diào)性較好,多頭端分年表現(xiàn)也十分穩(wěn)定,2017-2023年每年多頭超額均超過8%,2023年以來超額達(dá)到11%。圖24:DFQ遺傳規(guī)劃挖掘合成因子20組分年超額-彈性網(wǎng)絡(luò)回歸(2017.1.11-2023.4.14)20分組年化超額收益

2017- 2020- 20分組分年超額

3.79%-3.92%3.79%-3.92%6.48%3.18%-0.11%-5.57%-1.50%-3.15%-1.21%-1.49%0.48%-3.14%-0.23%-0.55%2.09%-3.21%-0.92%-5.53%-5.76%-9.52%-12.10% -13.90%-1.57%-0.50%-1.37%-0.73%-3.84%-2.46%-14.24%-9.75%-11.03%-24.68%-21.23%-39.13%-28.02%-22.49%-32.77%-37.82%-33.66%0012345678910111213141516171819%-1 -10.-3.75%-2.61%-3.75%-0.13%0.96%2.51%3.63%1.94%5.47%4.35%5.79%8.53%10.488.64%8.36%13.29%-12-8.05%-1.85%-2.91%-4.53%-0.39%0.21%-1.16%1.65%0.24%5.75%3.17%3.08%7.46%7.99%123456789101112131415168.568.25.40-31.82366.08-34.2411.02%14.47%10.97%8.51%8.22%18.70%8.03%20%14.32%7.56%4.90%5.49%13.95%9.20%1.68%19%6.37%4.97%5.04%12.45%5.28%%6.07%5.88%7.14%9.12%8.10%7.68%6.74%9.67%14.97%8.24%17189.16%%11.58%1.71%9.69%9.42%10.37%5.98%1.64%1.60%6.83%5.23%6.68%5.29%6.10%2.27%1.39%11.85%10.72%3.23%2.15%1.80%2.40%3.38%4.44%3.43%7.05%3.05%6.72%2.62%0.89%7.23%6.08%-5.61%-0.93%-0.48%1.57%10.09%4.69%3.76%4.35%3.57%-0.18%1.79%2.97%4.77%6.51%-2.24%-2.62%0.37%2.54%-0.57%1.15%-2.90%-1.22%6.57%2.04%10.29%2.35%-0.34%-2.84%-4.47%-3.28%-1.15%-3.34%-1.86%-0.97%-1.62%0.85%-8.50%-5.46%-2.58%-3.16%-11.76%-9.14%數(shù)據(jù)來源:&資訊 ||DFQ2525:DFQ20組超額凈值-(2017.1.11-2023.4.14)2.521.510.50&Wind25:DFQ20組超額凈值-(2017.1.11-2023.4.14)2.521.510.50&Wind資訊26:DFQ-彈性網(wǎng)絡(luò)回歸下自變量出現(xiàn)次數(shù)(2017.1.11-2023.4.14)出現(xiàn)次數(shù)4035302520151050&Wind資訊mul(lnto,adjlow)sq

溫馨提示

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

評論

0/150

提交評論