DFQ強化學習因子組合挖掘系統(tǒng)_第1頁
DFQ強化學習因子組合挖掘系統(tǒng)_第2頁
DFQ強化學習因子組合挖掘系統(tǒng)_第3頁
DFQ強化學習因子組合挖掘系統(tǒng)_第4頁
DFQ強化學習因子組合挖掘系統(tǒng)_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄一、DFQ化學因組合挖系統(tǒng)述 6二、強學習法介紹 7強化學習 7PPO算法 8三、基強化習的組合生模型 模型概述 公式化因子 Alpha因子生成器 12因子評價 15Alpha因子組合模型 15四、DFQ型實結果 18數(shù)據(jù)說明 18運算用時 19特征與算子出現(xiàn)頻次 20因子表現(xiàn) 22單因子表現(xiàn) 22合成因子績效表現(xiàn) 25不同隨機種子的相關性 28與常見因子的相關性 28五、top合表現(xiàn) 305.1top組合構建說明 305.2滬深300top50組合 305.3中證500top50組合 315.4中證1000top50組合 32六、指增強合表現(xiàn) 33增強組合構建說明 33滬深300指數(shù)增強組合 33中證500指數(shù)增強組合 34中證1000指數(shù)增強組合 35七、總結 36參考文獻 37風險提示 37圖表目錄圖1:多因子選股體系示意圖 6圖2:強化學習示意圖 7圖3:策略梯度算法VSPPO算法示意圖 8圖4:基于強化學習的因子組合生成模型示意圖 圖5:因子表達式&表達式樹&逆波蘭表達式 12圖6:Alpha因子生成器 12圖7:token的合法性定義 13圖8:Transformer模型下產(chǎn)的合法因子數(shù)量 14圖9:LSTM模型下產(chǎn)生的合法因子數(shù)量 14圖10:Transformer模型下試集因子表現(xiàn) 15圖模型下測試集因子表現(xiàn) 15圖12:人工因子列表 17圖13:DFQ模型因子組合人工因子的保留情況 17圖14:DFQ模型主要參數(shù)置 18圖15:和NumPy的性能差異 19圖16:滬深300股票池:size(單因子個數(shù)) 19圖17:滬深300股票池:fps(一秒運行的步數(shù)) 19圖18:中證500股票池:size(單因子個數(shù)) 20圖19:中證500股票池:fps(一秒運行的步數(shù)) 20圖20:中證1000股票池:size(單因子個數(shù)) 20圖21:中證1000股票池:fps(一秒運行的步數(shù)) 20圖22:滬深300:單因子表式長度分布 20圖23:中證500:單因子表式長度分布 21圖24:中證1000:單因子達式長度分布 21圖25:滬深300&中證500&中證1000股票池:特征出頻次 21圖26:滬深300&中證500&中證1000股票池:算子出頻次 22圖27:滬深300股票池:單子權重分布 23圖28:滬深300股票池:因相關系數(shù)絕對值的最大值分布 23圖29:中證500股票池:單子權重分布 23圖30:中證500股票池:因相關系數(shù)絕對值的最大值分布 23圖31:中證1000股票池:因子權重分布 23圖32:中證1000股票池:子相關系數(shù)絕對值的最大值分布 23圖33:滬深300股票池:單子訓練集RANKIC分布 24圖34:滬深300股票池:單子訓練集RANKIC_IR(未年化)分布 24圖35:中證500股票池:單子訓練集RANKIC分布 24圖36:中證500股票池:單子訓練集RANKIC_IR(未年化)分布 24圖37:中證1000股票池:因子訓練集RANKIC分布 24圖38:中證1000股票池:因子訓練集RANKIC_IR(未年化)分布 24圖39:滬深300股票池合成子績效表現(xiàn)(原始X,中性化Y) 25圖40:中證500股票池合成子績效表現(xiàn)(原始X,中性化Y) 25圖41:中證1000股票池合因子績效表現(xiàn)(原始X,中性化Y) 25圖42:滬深300股票池合成子測試集分年表現(xiàn) 26圖43:中證500股票池合成子測試集分年表現(xiàn) 26圖44:中證1000股票池合因子測試集分年表現(xiàn) 26圖45:滬深300股票池測試因子衰減速度 27圖46:中證500股票池測試因子衰減速度 27圖47:中證1000股票池測集因子衰減速度 27圖48:滬深300股票池強化習因子的原始值表現(xiàn)、中性化因子表現(xiàn)以及原始因子和中性化收率之間的關系 圖49:中證500股票池強化習因子的原始值表現(xiàn)、中性化因子表現(xiàn)以及原始因子和中性化收率之間的關系 圖50:中證1000股票池強學習因子的原始值表現(xiàn)、中性化因子表現(xiàn)以及原始因子和中性化收益率之間的關系 圖51:不同隨機種子得到的試集因子值序列的相關性 28圖52:與常見因子的測試集子值相關系數(shù)矩陣 28圖53:兩兩回歸殘差測試集現(xiàn) 29圖54:滬深300股池top50組合績效表現(xiàn) 30圖55:滬深300股池top50組合凈值 30圖56:中證500股池top50組合績效表現(xiàn) 31圖57:中證500股池top50組合凈值 31圖58:中證1000股票池top50組合績效表現(xiàn) 32圖59:中證1000股票池top50組合凈值 32圖60:滬深300股票池指數(shù)強組合績效表現(xiàn) 33圖61:滬深300股票池指數(shù)強組合凈值 33圖62:中證500股票池指數(shù)強組合績效表現(xiàn) 34圖63:中證500股票池指數(shù)強組合凈值 34圖64:中證1000股票池指增強組合績效表現(xiàn) 35圖65:中證1000股票池指增強組合凈值 351

一、DFQ強化學習因子組合挖掘系統(tǒng)概述多因子選股體系主要包括Alpha模型、風險模型、交易成本模型和組合優(yōu)化四個模塊。Alpha模型負責對股票收益或Alpha的預測,對組合收益的影響相對更大,是量化研究的重中之重。傳統(tǒng)的Alpha模型一般分為Alpha因子庫構建和Alpha因子加權兩個核心步驟?;久鏀?shù)據(jù)另類數(shù)據(jù)基本面數(shù)據(jù)另類數(shù)據(jù)分析師數(shù)據(jù)交易成本風格暴露跟蹤誤差客觀量價數(shù)據(jù)Alpha模型風險模型組合優(yōu)化組合因子生成篩選因子轉(zhuǎn)換初始Alpha精簡Alpha多因子zscore預測收益率績效歸因交易執(zhí)行機器學習Rank行業(yè)輪動有效機器?主觀觀點事件庫主觀觀點事件庫數(shù)據(jù)來源:東方證券研究所繪制在Alpha因子構建中,可以引入的常見機器學習模型主要有兩大類:遺傳規(guī)劃和神經(jīng)網(wǎng)絡,我們都有對應的研究成果。神經(jīng)網(wǎng)絡方法相關報告:《神經(jīng)網(wǎng)絡日頻alpha模型初步實踐》、《周頻量價指增模型》、《多模型學習量價時序特征》、《基于循環(huán)神經(jīng)網(wǎng)絡的多頻率因子挖掘》;遺傳規(guī)劃算法相關報告:《機器因子庫相對人工因子庫的增量》、《DFQ遺傳規(guī)劃價量因子挖掘系統(tǒng)》。遺傳規(guī)劃和神經(jīng)網(wǎng)絡方法各有優(yōu)劣,神經(jīng)網(wǎng)絡方法樣本內(nèi)擬合效果好,但模型黑箱,因子無顯式公式,可解釋性差,存在過擬合風險;遺傳規(guī)劃算法生成的因子具有顯式公式,可解釋性強,相對不易過擬合,對算力要求低,但模型泛化能力不強,在滬深300和中證500股票池中效果較差。在Alpha因子加權問題上,我們也有相應探索,可參考《機器的比拼》等報告。例如彈性網(wǎng)絡等線性模型,決策樹、神經(jīng)網(wǎng)絡等非線性模型也都有不錯的應用效果。在量化投資實踐中,為了提升模型穩(wěn)定性,我們通常會同時使用多個因子。傳統(tǒng)的Alpha模型往往單獨挖掘每個因子,在挖掘過程中只關注每個因子自身的選股效力。先選出一部分效果不錯的單因子后再去進行加權組合。這樣做將因子挖掘和因子加權割裂開來,在因子挖掘階段忽略了單因子在應用中的組合需求。實際上我們更關注的是可以協(xié)同工作并產(chǎn)生綜合效果的因子組合?;诖?,我們展示了一種新的因子組合挖掘框架,直接使用因子組合的表現(xiàn)來優(yōu)化一個強化學習因子生成器,最終生成的是一組公式因子集合,這些因子協(xié)同使用具有較高的選股效力。這樣做既能保留遺傳規(guī)劃算法公式化的優(yōu)勢,也能提升模型泛化能力,適應多種股票池,還能大幅提升運算效率。本文參考了華為&中科院計算所的科學家在2023年發(fā)表的研究論文《GeneratingSynergisticFormulaicAlphaCollectionsviaReinforcementLearning》,并進行了修改優(yōu)化工作。2:強化學習示意圖

二、強化學習算法介紹強化學習強化學習(ReinforcementLearning,RL)是一類機器學習方法,它的核心思想是訓練一個智能體(agent),智能體能夠在與環(huán)境(environment)交互的過程中不斷學習,從而做出最優(yōu)決策。在強化學習過程中,智能體與環(huán)境一直在交互:智能體在環(huán)境里面獲取某個狀態(tài)后,會利用該狀態(tài)輸出一個動作,然后這個動作會在環(huán)境之中被執(zhí)行。接下來環(huán)境會根據(jù)智能體采取的動作,輸出下一個狀態(tài)以及當前這個動作帶來的獎勵。這樣智能體就可以利用獎勵信號來更新自己,使得下一次輸出的動作能獲得更高的獎勵。強化學習的智能體一開始并不知道每一步正確的動作應該是什么,只能通過不停地試錯探索來獲取對環(huán)境的理解,發(fā)現(xiàn)最有利的動作,最大化獎勵。數(shù)據(jù)來源:東方證券研究所&EasyRL:強化學習教程

智能體(Agent):執(zhí)行動作和學習的實體。智能體所處的外部世界,與智能體互動。狀態(tài)(State):環(huán)境在某個時間點的描述。動作(Action):智能體可以在某個狀態(tài)下采取的操作。獎勵(Reward):一個數(shù)值,表示智能體采取某個動作后的即時收益。策略(Policy):智能體采取動作的策略,通常用于描述在特定狀態(tài)下采取各個動作的概率。強化學習模型的這種不斷適應環(huán)境,探索環(huán)境的特性,決定了它有非常大的潛力,可能可以獲得超越人類能力的表現(xiàn)。近年來,強化學習已經(jīng)在諸多領域展示了其強大的能力。在游戲領域,DeepMindAlphaGo4:1RL在復雜策略分析方面的能力。AlphaZero不僅學會了圍棋,還自主學習了國際象棋和將棋,并在各自的領域擊敗了世界級算法。AlphaStar在星際爭霸II中擊敗了人類職業(yè)選手。在金融領域,強化學習可以進行自動化交易。通過學習歷史數(shù)據(jù)和實時市場動態(tài),強化學習算法可以確定何時買入、賣出或持有特定資產(chǎn)。還可以進行投資組合優(yōu)化,用于確定資產(chǎn)組合的最佳權重分配,以實現(xiàn)特定的風險/回報目標。但目前強化學習算法在Alpha模型上的應用還比較少,這也是我們本次報告要解決的問題。使用強化學習進行選股因子挖掘具有以下優(yōu)勢:適應性決策制定:與傳統(tǒng)的預測模型不同,強化學習不僅僅預測市場動態(tài),而是直接學習一個策略。隨著市場的變化,強化學習模型可以持續(xù)地學習和調(diào)整策略,從而適應新的市場環(huán)境。端到端的學習:強化學習可以實現(xiàn)從原始輸入到交易決策的端到端學習,避免了傳統(tǒng)方法中的多個步驟和假設。探索與利用的平衡:強化學習算法自然地處理探索(嘗試新的策略)與利用(沿用當前最佳策略)之間的平衡,使其能夠在穩(wěn)定性與性能之間找到最佳折衷。考慮交易成本和約束:強化學習可以直接在獎勵函數(shù)中考慮交易成本、稅費、市場沖 擊等實際約束,使策略更具實用性。 有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。多因子策略優(yōu)化:強化學習可以更好地整合和平衡多個選股因子,從而形成一個綜合的、更穩(wěn)健的投資策略。PPO算法近端策略優(yōu)化(ProximalPolicyOptimization,PPO)是一種深度強化學習算法,結合了深度學習和傳統(tǒng)的強化學習技術,也是現(xiàn)在OpenAI默認的強化學習算法。PPO算法完全遵循強化學習的框架,使用狀態(tài)、動作、獎勵等概念,并通過與環(huán)境的交互來訓練智能體。目標是找到一種策略(即動作選擇機制),使得從環(huán)境中獲得的獎勵最大化。與此同時,PPO算法使用深度神經(jīng)網(wǎng)絡來表示策略和價值函數(shù),這允許算法處理高維、連續(xù)或復雜的觀察和動作空間。PPO算法是傳統(tǒng)策略梯度算法(PolicyGradient,PG)的改進,屬于同策略算法。在強化學習中,如果要學習的智能體和與環(huán)境交互的智能體是相同的,稱之為同策略。在策略梯度算法中,智能體先去跟環(huán)境互動,收集經(jīng)驗。然后根據(jù)收集到的經(jīng)驗,按照策略梯度算法的方式更新策略網(wǎng)絡的參數(shù)。但問題是,一旦我們更新了策略網(wǎng)絡參數(shù),那么之前收集到的經(jīng)驗就變的不能用了,所PPO算法。PPO屬于信任域(TrustRegion,TR)方法的一種,其核心思想是在每次更新策略的時候,不讓新策略偏離老策略太遠,這樣基于老策略收集的經(jīng)驗仍然可以繼續(xù)使用,避免在更新策略的過程中產(chǎn)生過大的震蕩和不穩(wěn)定。具體來說,PPO(新策略和舊策略的比值),確保策略更新是有界的,從而增加了訓練的穩(wěn)定性。圖3:策略梯度算法VSPPO算法示意圖從同一個策略中多次采樣,不斷更新模型數(shù)據(jù)采樣更新模型數(shù)據(jù)采樣數(shù)據(jù)采樣更新模型數(shù)據(jù)采樣策略梯度算法示意圖 PPO算法示意圖數(shù)據(jù)來源:東方證券研究所&EasyRL:強化學習教程PPO算法步驟如下:收集經(jīng)驗:執(zhí)行當前策略來與環(huán)境交互并收集經(jīng)驗樣本,包括狀態(tài)、動作、獎勵。而后從經(jīng)驗集中多次抽取樣本進行學習,充分利用每批經(jīng)驗來不斷更新網(wǎng)絡。經(jīng)驗集個數(shù)由n_stepsbatch_size個樣本,然后重復選擇n_epochs次,根據(jù)每個樣本更新策略。一個樣本可能會被多次選中,進行多次學習。計算回報與優(yōu)勢:(1)優(yōu)勢:衡量在給定狀態(tài)下采取某一行動相對于平均行動的優(yōu)勢。(2)回報:從當前步驟開始的未來折扣獎勵的總和。計算損失函數(shù):分為三部分:策略損失:策略損失是強化學習中關鍵的損失函數(shù),其目的是優(yōu)化智能體的策略,以便在與環(huán)境互動時選擇更好的動作。通過優(yōu)勢和新舊策略的比率來計算策略損失,然后將比率剪裁以限制更新的幅度。值損失:值損失用于優(yōu)化值函數(shù),即狀態(tài)值的估計。值函數(shù)在強化學習中用于估計從給定狀態(tài)開始的預期回報,值損失利用值函數(shù)預測值和實際回報之間的均方誤差來計算。通過最小化值損失,可以更準確地預測未來回報。熵損失:熵損失是一種鼓勵探索的機制。通過增加策略的熵,來鼓勵智能體采取更隨機的動作,從而探索更多的狀態(tài)空間。在訓練智能體時,我們不僅想讓它學習如何在已知環(huán)境中表現(xiàn)良好,還想讓它探索新的可能性,以便在未知情況下也能做出好決策。將策略損失、值損失、熵損失三者加權作為損失函數(shù),ent_coef和vf_coef是熵損失和值損失的權重系數(shù)。這三種損失共同工作,以訓練能夠在多種環(huán)境中做出智能決策的智能體。優(yōu)化損失函數(shù):通過隨機梯度下降(或其他優(yōu)化器)來優(yōu)化損失函數(shù)。默認使用Adam算法。學習率是優(yōu)化器的關鍵參數(shù),它決定了每次梯度下降更新時參數(shù)更新的幅度。較高的學習率可能導致更快的收斂,但也可能造成不穩(wěn)定。較低的學習率可能更穩(wěn)定,但收斂速度可能會慢,容易陷入局部最優(yōu)解。更新策略:重復:使用PPO算法進行選股因子挖掘有多個潛在的優(yōu)點:PPO的特征,減少了手工特征工程的需求。PPO解決復雜的選股問題上可能比某些傳統(tǒng)方法更有優(yōu)勢。訓練穩(wěn)定性高:PPO通過限制策略更新的大小來增加訓練的穩(wěn)定性,這在金融市場這種高度噪音、非穩(wěn)定的環(huán)境中是很有價值的。適應性強:PPO的策略迭代方法使其能夠更好地適應不斷變化的市場環(huán)境。此外,PPO算法可以與動作掩蔽機制結合,以確保在訓練過程中僅選擇合法動作,稱為MaskablePPO算法。可以通過以下步驟實現(xiàn):定義掩蔽向量:TrueFalse。修改策略網(wǎng)絡的輸出:將策略網(wǎng)絡的輸出(即動作概率分布)與掩蔽向量相結合,通過將非法動作的對數(shù)概率設置為一個非常大的負數(shù)來完成,這樣對數(shù)概率進行softmax轉(zhuǎn)0,使得這些動作在采樣中幾乎不可能被選擇,以消除非法動作的影響。重新歸一化:由于消除了某些動作的概率,所以需要重新歸一化概率分布,以確保其總1。選擇動作:根據(jù)修改后的概率分布選擇動作。訓練和優(yōu)化:PPOPPO相同。Python中的StableBaselines和sb3_contrib庫提供了一系列強化學習算法的實現(xiàn),sb3_contrib是StableBaselines3的擴展庫。我們使用的是sb3_contrib中的ppo_mask。在ppo_mask中使用了TensorBoard工具來監(jiān)控訓練過程,可以展示訓練過程中的各種可視化統(tǒng)計數(shù)據(jù),幫助我們更直觀地理解訓練過程,從而更有效地調(diào)試和優(yōu)化模型。三、基于強化學習的因子組合生成模型模型概述基于強化學習的因子組合生成模型,由兩部分組成:Alpha因子生成器:使用MaskablePPO模型生成動作,并以token序列的形式生成公式化的Alpha因子。Alpha因子組合模型:組合Alpha因子,并給出獎勵信號。AlphaAlphaAlpha圖4:基于強化學習的因子組合生成模型示意圖(A)Alpha因生器 (B)Alpha因組模型&

公式化因子公式化的Alpha因子有顯式公式,可以用數(shù)學表達式的形式表示。因子表達式由以下幾部分組成,每個元素都被稱為Token:算子:118個),二元截面(Binary,21個),三元截面(Three,個),四元截面(Four,8);時序算子根據(jù)需要的特征個數(shù)和窗口個數(shù)進一步分為個小類:一元時序(Rolling,35個),二元時序(PairRolling,11個),2常數(shù)(PairRollingDiffDay2,4個),3常數(shù)(PairRollingDiffDay3,2個),三元時序(ThreeRolling,2)。算子內(nèi)部需要充分考慮缺失值兼容性及運算效率。特征:703314l2量價特征13個,基本面特征(估值+)10時間窗口(時序算子的參數(shù)):55日,10日,20日,40日,60日。強化學習模型是按照逆波蘭表達式的形式生成因子,先產(chǎn)生操作數(shù),再匹配操作符。我們選取的特征和時間窗口參數(shù)的數(shù)量差別較大,因而更容易產(chǎn)生特征。特征后續(xù)只能匹配截面算子進行截面的運算,匹配時序算子不合法,因而時序算子出現(xiàn)的概率會大大降低?;诖?,我們將時間窗口的序列*1050特殊符號:BEG(序列開始),SEP(序列結束)。每個因子公式天然地與一棵表達式樹等價,進而與一個逆波蘭表達式(表達式樹的后續(xù)遍歷,ReversedNotation,RPN)等價,模型通過token序列的形式生成RPN,從而生成因子。逆波蘭表示法是一種沒有括號、沒有優(yōu)先級規(guī)則的數(shù)學表達式表示方法。在這種表示法中,操作符位于其操作數(shù)之后。例如,表達式add(5,volume)的逆波蘭表達式就是5volumeadd,表達式ts_sum(add(5,volume2)5volumeadd2ts_sum圖5:因子表達式&表達式樹&逆波蘭表達式因子表達式表達式樹因子表達式逆波蘭表達式數(shù)據(jù)來源:東方證券研究所&arXivAlpha為了控制和評估有效表達式的生成過程,我們將Alpha因子的生成過程,建模為非平穩(wěn)的馬爾可夫決策過程(Markovdecisionprocess,MDP)。MDP的各個組成部分如下:圖6:Alpha因子生成器數(shù)據(jù)來源:東方證券研究所&arXiv狀態(tài)(State):token序列,例如[BEG,$adjclose,$volume]。有效狀態(tài)BEGtoken序列。動作空間(actionspace):token序列不能保證是表達式的RPN,因而我們只允許模型輸出符合運算規(guī)則的合法動作,以確保RPN序列的格式正ActionMask步驟。動作掩蔽(ActionMask):根據(jù)當前狀態(tài)判斷動作空間中的動作是否合法,不合法的動作將被掩蔽,模型僅從合法動作集合中進行抽樣得到下一個動作。每類token性定義如下圖。行動(Action):將要添加到token序列尾部的下一個tokenSub。下一個行動是什么由策略網(wǎng)絡從動作空間中選取生成。狀態(tài)轉(zhuǎn)移(Dynamic)token獎勵(Reward):智能體在特定狀態(tài)下采取某一動作的即時效用。獎勵是針對Action的,MDPtoken序列給出即時獎勵,僅在序列結束(SEP或長度達到閾值)0ICAlpha如果當前的token序列是[BEG,$adjclose,$vol,Sub,Add],那么序列未完成,當前動作Add0token[BEG$adjclose,$vol,Sub,SEP],那么序列actionSub(0.1,$vol)IC。20個token的表達式如果當前仍不完整,那么獎勵將被強制設為-1(IC的最小值),以降低后續(xù)再生成超長表達式的概率。此外,我們將出現(xiàn)連續(xù)重復一元截面運算符的因子(例如rank(rank($adjclose)))、單特征因子(例如$adjclose)、無法計算IC(缺失率過高、標準差過小、截面不重復數(shù)值太少)的因子、與因子池中的已有因子的因子值相關系數(shù)0.990,降低不合理單因子出現(xiàn)的概率。價值(Value):優(yōu)勢(Advantage):度量一個動作相對于平均動作的優(yōu)勢??梢允褂脧V義優(yōu)勢估計(GeneralizedAdvantageEstimation,GAE)來計算?;貓螅≧eturn):=+價值。圖7:token的合法性定義token類型合法性規(guī)則特征(FEATURE)前面沒有token,或前面的token是特征時間窗口(DELTA_TIME)前面至少有一個token一元截面(Unary)滿足參數(shù)個數(shù)要求+前一個token是特征二元截面(Binary)滿足參數(shù)個數(shù)要求+前2個token是特征三元截面(Three)滿足參數(shù)個數(shù)要求+前3個token是特征四元截面(Four)滿足參數(shù)個數(shù)要求+前4個token是特征算子(OPERATOR)一元時序(Rolling)滿足參數(shù)個數(shù)要求+前1個token是時間窗口,倒數(shù)第二個token是特征二元時序(PairRolling)滿足參數(shù)個數(shù)要求+前1個token是時間窗口,倒數(shù)第二個和第三個token是特征二元時序2常數(shù)(PairRollingDiffDay2)滿足參數(shù)個數(shù)要求+倒數(shù)第一個和第二個token是時間窗口,倒數(shù)第三個和第四個token是特征二元時序3常數(shù)(PairRollingDiffDay3)滿足參數(shù)個數(shù)要求+倒數(shù)第1-3個token是時間窗口,倒數(shù)第4-5個token是特征三元時序(ThreeRolling)滿足參數(shù)個數(shù)要求+前1個token是時間窗口,倒數(shù)第2-4個token是特征數(shù)據(jù)來源:東方證券研究所繪制基于上述定義的MDP,我們使用MaskablePPO模型不斷生成動作。該模型接受狀態(tài)作為輸入,并輸出動作分布,實際動作將從輸出分布中抽樣。PPO算法中用于學習環(huán)境的策略模型屬于演員-評論家策略(MaskableActorCriticPolicy,MlpPolicy)。這個策略根據(jù)當前觀察到的環(huán)境狀態(tài)選擇動作,評估動作的價值,并計算動作被模型選中的概率。智能體會根據(jù)策略做出動作,相當于演員,而價值函數(shù)會對做出的動作給出價值,相當于評論家。該方法可以看作基于價值的方法和基于策略的方法的交集,習慣上仍歸入基于策略的方法。演員-評論家方法結合了基于策略的策略梯度算法的探索能力和基于價值的方法的穩(wěn)定性和高效性,可以加速學習過程,通過同時學習策略(演員)和價值函數(shù)(評論家),算法可以相互引導和糾正,避免一些不穩(wěn)定的學習動態(tài)。演員-評論家策略需要價值網(wǎng)絡和策略網(wǎng)絡。策略網(wǎng)絡根據(jù)當前策略和給定的狀態(tài),選擇一個動作輸出。價值網(wǎng)絡用來評估在給定狀態(tài)下采取特定動作的預期回報。這兩個網(wǎng)絡均使用深度神經(jīng)網(wǎng)絡來表示。策略網(wǎng)絡的結構包括:一個特征提取器(features_extractor),一個多層感知機(mlp_extractor),一個動作分布生成網(wǎng)絡(action_net)。價值網(wǎng)絡的結構包括:一個特征提取器(features_extractor),一個多層感知機(mlp_extractor),一個價值估計生成網(wǎng)絡(value_net)。價值網(wǎng)絡和策略網(wǎng)絡共享一個基礎的特征提取器(features_extractor)。token序mlp_extractor,其目的是為后續(xù)的網(wǎng)絡組件提供一個更簡潔、更信息化的表示。這樣的共享這不僅有助于減少模型復雜性,還有助于提高模型的學習效率和性能。特征提取器我們采用Transformer模型。TransformerTransformer編碼器可以有效地處理序列數(shù)據(jù),提取其關鍵特征,并輸出一個固定長度的向量。在我們模型中,只需要對觀察序列進行編碼以提取特征,因此只使用了編碼器部分,并沒有使用解碼器。LSTM模型相比,Transformer有以下優(yōu)點:(1)提高計算效率。(2)長距離依賴關系:通過自注意力機制,直接捕獲序列中的長距離依賴關系。(3)可解釋性:自注意力機制的權重提供了序列元素之間關系的直觀可視化。(4)靈活性:可以輕松擴展到多頭注意力,從而捕獲序列中不同層次的特征。實際測試發(fā)現(xiàn),LSTM模型運行速度更快,顯存占用更低,但產(chǎn)生的合法有效因子數(shù)量少,合成因子效果不如Transformer。在算力允許的情況下,使用Transformer模型作為特征提取器應是更優(yōu)選擇。圖8:Transformer模型下產(chǎn)的合法因子數(shù)量 圖9:LSTM模型下產(chǎn)生的合法因子數(shù)量 數(shù)據(jù)來源:東方證券研究所&wind資訊 數(shù)據(jù)來源:東方證券研究所&wind資訊圖10:Transformer模型下試集因子表現(xiàn) 圖11:LSTM模型下測試集因子表現(xiàn)數(shù)據(jù)來源:東方證券研究所&wind資訊 數(shù)據(jù)來源:東方證券研究所&wind資訊價值網(wǎng)絡和策略網(wǎng)絡均使用多層感知器(multilayerperceptron,MLP)網(wǎng)絡來處理特征。MLPfeatures_extractor得到的特征,旨在得到更有意義、更高級的表示,為策略MLPMLP264個神經(jīng)元。動作分布生成網(wǎng)絡(action_net)使用了一個單層全連接網(wǎng)絡,用于生成動作分布。動作分布還將與動作掩蔽機制相結合,以確保非法動作不會被選中。價值估計生成網(wǎng)絡(value_net)也使用了一個單層全連接網(wǎng)絡組成,用于將特征轉(zhuǎn)換為單一的價值估計。因子評價我們將優(yōu)化后因子組合的IC,作為當前動作的獎勵。因子組合的IC率來計算。合成因子值通過單因子值和單因子權重加權計算。計算單因子IC時,收益率進行截面中性化和標準化,不進行缺失值填充。因子值進行標準化,并使用0來填充缺失值。計算合成因子IC時,因子值也進行標準化,并使用0來填充缺失值。收益率中性化專注于消除收益率與行業(yè)市值風格之間的關系,使得因子與收益率之間的關系更純粹,同時收益率中性化只需要計算一次,不需要對每個因子都計算,能夠大幅節(jié)省運算開銷。Alpha考慮到因子組合的可解釋性和運算效率,我們使用線性模型來組合Alpha。也可以根據(jù)模型最終得到的單因子集,在外部進行重新加權,考慮動態(tài)加權、非線性加權等方式,可能也可以獲得更好的合成因子表現(xiàn)。k個alphaF={f1,f2,……,fk}w=(w1,w2,wk),組合模型定義如下:??c(X;F,w)=∑????????(??)=????=1組合模型的損失設計如下,通過優(yōu)化損失函數(shù),可以找到最佳的因子權重:?? ????1

????)=??(1?2∑??????)+∑∑|????|?(????,????)|+05?∑∑?????(????,????))??=1

??=1??=1

??=1??=1??=1這里,我們引入了平均相關性的符號?????????代表合成因子的IC;??=1∑??

∑??

|????|?(????)????)|,為絕對值相關性和,因子間的高度負相關和正相關均會帶來損??=1??=1失的增加。通過減小因子之間絕對值的相關性,減少因子之間的冗余和共線性,增加因子多樣性;∑??∑??=1

??∑∑

?????(????????)考慮了相關性的正負號。一旦我們得到單因子I,以及兩兩相關系數(shù),就可以使用這些項來計算損失,從而在每個梯度下降步驟中節(jié)省計算時間。我們在損失函數(shù)中還加入了L1正則化項,以防止過擬合。L1正則化通過在損失函數(shù)中添加一個與權重的絕對值成比例的項來工作,將傾向于產(chǎn)生稀疏權重向量,防止模型過于復雜,確保模型不會過度依賴單個因子,從而減少過擬合的風險。梯度下降采用Adam算法。Adam(AdaptiveMomentEstimation)算法是一種流行的隨機優(yōu)化方法,結合了動量和自適應學習率調(diào)整的優(yōu)點,會比傳統(tǒng)的隨機梯度下降(SGD)alphakO(k^2)100-200alpha了,更多的alpha因子不會帶來太多的性能增長,遵循收益遞減法則。規(guī)模上限為200個因子,當因子池達到200以保持因子總數(shù)不變。下面展示了增量組合模型優(yōu)化算法的主要步驟:Alphak個alpha因子,F(xiàn)={f1,f2,……,fk},權重集合W=(w1,w2,wk)alpha因子fnew。AlphaF*和對應的單因子權重集合W*。算法流程:Alpha因子:AlphafnewAlphaF中。若該因子出現(xiàn)連續(xù)重復一元截面運算符的因子(例如rank(rank($adjclose)))、僅為單特征因子(例如$adjclose)IC(缺失率過高、標準差過小、截面不重復數(shù)值太少)0.99足添加條件,跳過該因子。若滿足添加條件,則為該因子分配一個初始權重,即為單因IC值。AlphaICFAlpha因子f,計算或從緩存中獲取他們與目標的平均相關性????IC均值。AlphaFAlphafF中的其他所有Alpha因子,計算或從緩存中獲取它們之間的平均相關性???(????(??),????(??)),也就是因子值的相關系數(shù)均值矩陣。梯度下降優(yōu)化因子權重:計算上述公式損失函數(shù),使用梯度下降方法(Adam算法)更1AlphaF那么找出權重wAlpha集合F和權重集合wAlpha因子和權重。ICIC。由于每次添加新因子后,都需要計算出目前因子池中單因子的IC和相關系數(shù),用于優(yōu)化權重,這將產(chǎn)生大量重復計算。因而我們將每次因子池中的因子表達式和因子值予以保存,每次計算IC和相關系數(shù)之前,將首先從保存的數(shù)據(jù)中查找,如果因子之前已存在,因子值數(shù)據(jù)直接調(diào)用即可,無需重復計算。這將大幅提升運算效率,測試顯示大概可以節(jié)省10倍的運算時間,原先在中證1000股票池中進行30萬步訓練需要24小時以上,修改后僅需3-5小時。此外,我們在初始加入了20個人工因子,相當于不斷尋找跟人工因子具有協(xié)同效應的新因子。這些人工因子的表達式均可以用我們設置的特征和算子來表示。圖12:人工因子列表

因子類別 因子名稱 因子含義 因子表達式lnamihud_20d 20日Amihud非流動性自然對數(shù) log(ts_mean(amihud,20))因子類別 因子名稱 因子含義 因子表達式lnto_20d 過去20個交易日的日均換手率對數(shù) ts_mean(lnto,20)vol_20d 過去20個交易日的波動率 ts_mean(lnto,20)ret_20d 過去20個交易日的收益率 ts_pctchg(adjclose,dd)ppreversal 過去5日均價/過去60日均價-1 hlcut 收盤價切割振幅 _ts_fxcut_75(adjclose,lnhlret,20)tocut 收盤價切割換手率 _ts_fxcut_75(adjclose,lnto,20)trumr 切割真實波動加權超額收益 _ts_umr_ewm(tr,ex_lnret,10,60)toumr 切割換手率加權超額收益 idskew_20d 過去20個交易日的日內(nèi)收益率偏度均值 ts_mean(rskew,20)idkurt_20d 過去20個交易日的日內(nèi)收益率峰度均值 ts_mean(rkurt,20)idjump_20d 過去20個交易日日內(nèi)極端收益之和 ts_sum(rjump,20)idmom_20d 過去20個交易日日內(nèi)溫和收益、隔夜收益之和 ts_sum(lnret-rjump,20)sdrvol_20d 過去20個交易日日內(nèi)波動率的標準差除以均值 div(ts_std(rvol,20),ts_mean(rvol,20))sdrskew_20d 過去20個交易日日內(nèi)收益率偏度的標準差 ts_std(rskew,20)sdvvol_20d 過去20個交易日日內(nèi)成交量二階矩的標準差除以均值 arpp_1d_20d 基于1天周期計算的ARPP指標,20個交易日平滑 ts_mean(if_one_nan(touchup-touchdown)*arpp,20)apb_1d_20d 基于日內(nèi)行情計算的APB指標,20個交易日平滑 ts_mean(apb,20)rvolumr 切割分鐘收益波動率加權超額收益 _ts_umr_ewm(rvol,ex_lnret,10,60)rskewumr 切割分鐘收益偏度加權超額收益 _ts_umr_ewm(rskew,ex_lnret,10,60)數(shù)據(jù)來源:東方證券研究所繪制我們統(tǒng)計了在三個股票池中,模型最后得到的因子組合中人工因子的保留情況。均任取一個隨機種子展示??梢钥吹?,整體人工因子保留比例并不高,其中sdrvol_20d在三個股票池中都展現(xiàn)出了與其他因子很強的協(xié)同效應。圖13:DFQ模型因子組合中人工因子的保留情況滬深300中證500中證1000sdrvol_20dts_mean(apb,20)lnto_20drvolumrppreversalapb_1d_20dsdrvol_20dppreversalhlcutsdrvol_20dtrumrhlcutrvolumrtoumr數(shù)據(jù)來源:東方證券研究所繪制四、DFQ模型實驗結果股票池:3005001000大,訓練所需顯存越高,基本線性增長。顯存占用也與特征數(shù)量有關,在70個特征的情況下,3003000Mib,5005000Mib,100010000Mib。測試所用服務器顯存不足以進行全市場訓練,感興趣的投資者可自行嘗試。2.訓練集、驗證集、測試集:采用2015.1.1-2018.12.31的數(shù)據(jù)作為訓練集,2019.1.1-2019.12.312020.1.1-2023.6.30為測試集。(1)L2數(shù)據(jù),L220132015年開始。(2)IC達到最高點的步數(shù)為最優(yōu)迭代步數(shù),取此時的因子組合作為最優(yōu)因子組合。為提高運算效率,訓練集中的IC20天計算,驗證集和測試集由于時間較短,采用每天計算的方式,考慮不同調(diào)倉路徑避免誤差。(5)IC時,收益率進行截面中性化和標準化,不進行缺失值填充。因子值進行標準化,并使0來填充缺失值。調(diào)倉頻率:挖掘月頻因子,考察因子預測未來20子同樣可以操作,但會增加運算時間和顯存占用。模型參數(shù):圖14:DFQ模型主要參數(shù)設置參數(shù)類別 參數(shù)符號 參數(shù)含義 參數(shù)取值參數(shù)類別 參數(shù)符號 參數(shù)含義 參數(shù)取值Transformer參數(shù)

pool_capacity 池的容量,定義了可以同時存儲的因子表達式的最大數(shù)量。 200steps 訓練過程中的總步數(shù),定義了模型訓練的迭代次數(shù) 30000features_extractor_class 特征提取器的類別 Transformern_steps 每個訓練批次的步數(shù) 2048n_epochs 每個訓練批次的訓練次數(shù) 10batch_size 批處理大小,每個訓練批次中的樣本數(shù)量 256gamma 折扣因子,用于計算未來獎勵的折現(xiàn) 1GAE(廣義優(yōu)勢估計)的超參數(shù),用于權衡偏差和方差之間的平衡 0.95clip_range 用于裁剪代理損失的參數(shù) 0.2ent_coef 熵系數(shù),用于控制策略的探索性 0.1vf_coef 損失計算中的值函數(shù)系數(shù) 0.5max_grad_norm 梯度裁剪的最大值,用于防止梯度爆炸 0.5learning_rate 學習率,控制策略模型每次梯度下降更新時參數(shù)更新的幅度 0.001n_encoder_layers Transformer編碼器中的層數(shù)。編碼器層數(shù)決定了模型的深度 6模型中每個層的維度??刂颇P蛯挾?128n_head 多頭自注意力機制中的“頭”的數(shù)量 4d_ffn 隱藏層維度 2048在模型訓練過程中應用的丟棄率 0.1數(shù)據(jù)來源:東方證券研究所繪制由于我們已經(jīng)設置了表達式長度閾值限制,無需懲罰表達式長度。因此,我們將折扣因子設置為gamma=1(無折扣)。這將使得我們的模型試圖去尋找那些可能更長但表現(xiàn)良好的alpha因子表達式,而不是傾向于選擇較短的表達式。由于搜索空間隨著表達式長度的增加而指數(shù)級增長,這個選擇有助于鼓勵模型探索更復雜的解決方案。多種子訓練:555算力:TensorGPU上運行。如果一GPUTensor結構通常CPUNumPyCPU-Tensor,GPU-TensorNumPy在計10000*10000CPUGPUTensor都比NumPy快,GPU版本的是近百倍的加速。需要注意的是,在不同pytorch版本下,運算結果可能會出現(xiàn)差異,尤其是在一些涉及浮點運算的情況下,但總體差距不大,并不會顯著影響模型結果。數(shù)據(jù)存儲:qlib圖15:Tensor和NumPy的性能差異數(shù)據(jù)來源:東方證券研究所&wind資訊我們展示三個股票池中的模型運算耗時,其中fps指一秒運行的步數(shù),size指當前因子池內(nèi)的單因子個數(shù)。均隨機選取一個種子??梢钥吹剑篺ps200著因子池內(nèi)單因子個數(shù)增多而迅速下降,當size200fps10-2030w3-6圖16:滬深300股票池:size(單因子個數(shù)) 圖17:滬深300股票池:fps(一秒運行的步數(shù)) 數(shù)據(jù)來源:東方證券研究所&wind資訊 數(shù)據(jù)來源:東方證券研究所&wind資訊有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。2020 |DFQ18500股票池:size(單因子個數(shù))19500股票池:fps(一秒運行的步數(shù))&wind資訊&wind資訊201000股票池:size(單因子個數(shù))211000股票池:fps(一秒運行的步數(shù))&wind資訊&wind資訊|DFQ18500股票池:size(單因子個數(shù))19500股票池:fps(一秒運行的步數(shù))&wind資訊&wind資訊201000股票池:size(單因子個數(shù))211000股票池:fps(一秒運行的步數(shù))&wind資訊&wind資訊4.3特征與算子出現(xiàn)頻次我們展示三個股票池中,最終得到的因子組合中200個單因子的表達式長度分布,以及所用到的特征與算子出現(xiàn)頻次。均隨機選取一個種子。可以看到:(1)表達式長度:6-7192,總體長度適中。22300len20181614121086420數(shù)據(jù)來源:東方證券研究所&wind資訊有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。Elu(Ts_hhi($lncoret,40))Ts_fxcut_50($swing,$e…Ts_min(Hhi($l2c15),10)Softmax($l2c16)212123500LEN20181614121086420&wind資訊(2)特征出現(xiàn)頻次:30023500LEN20181614121086420&wind資訊(2)特征出現(xiàn)頻次:300500300EP2(TTM/總市值)500中TPER(目標價隱含的收益率)最易出現(xiàn),說明大票中基本面特征能起到比較重要的作用;中證1000中分鐘特征出現(xiàn)頻次最高,其中vvol(日內(nèi)成交量的波動率,除以當日成交量)因子最易出現(xiàn),說明小票中高頻量價特征能起到比較重要的作用。25300&500&1000日度量價&wind資訊(3)算子出現(xiàn)頻次:三個股票池最終保留的單因子里,時序算子和截面算子出現(xiàn)頻次基本300Ts_pctchg_abs(Ts_pctchg_abs)500Quantile(1000Ts_var(d天的方差)23則較為復雜,出現(xiàn)頻次較低。有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。Ts_corr($lnhlret,$ep2,20)Inv(Ts_ref($tper,40))Ts_mean($l2c4,20)Signed_power($l2c20,…Ts_product($cvpct,5)Ts_skew($adjlow,10)Fraction($adjtwap)|DFQ241000LEN20181614121086420&wind資訊基本面分鐘量價l2量價|DFQ241000LEN20181614121086420&wind資訊基本面分鐘量價l2量價Ts_mean($apb,20)Regression_proj($lnt…Ts_kurt($ep2,10)Ts_max_to_min($rkur…Ts_med($sqrskew,10)Ts_var($apb,60)Arc_tan($peg)金融工程|專題報告——DFQ強化學習因子組合挖掘系統(tǒng)圖26:滬深300&中證500&中證1000股票池:算子出現(xiàn)頻次數(shù)據(jù)來源:東方證券研究所&wind資訊單因子表現(xiàn)首先我們展示三個股票池中,最終得到的因子組合中200個單因子的權重分布,以及每個因子與其他因子相關系數(shù)絕對值的最大值。均隨機選取一個種子,并在訓練集上計算單因子取值??梢钥吹剑涸谌齻€3003%0.01%。3001%。但可能出現(xiàn)50097%在傳統(tǒng)的Alpha因子選擇中,我們通常會剔除高相關的因子,以減少多重共線性的問題。例如在DFQ遺傳規(guī)劃模型中,我們將挖掘得到的單因子按照50%的相關系數(shù)閾值進行了過濾。而在此次的強化學習模型中,我們并未嚴格限制相關性范圍,單因子篩選僅通過損失函數(shù)自行完成。測試顯示,添加嚴格的單因子相關性約束后,合成因子組合性能會下降。1+1>2500a1a297%,然而,a1和a26%IC(4%5%),一個可能解釋是:雖然這些alpha因子高相關,但他們的某些線性組合可能指向與原始方向完全不同的方向。假設線性空間中有兩個單位向量,兩個向量越相似,它們之間的差異向量就越接近垂直于原始向量。這意味著,即使兩個alpha因子高度相關,它們的差異也可能指向一個全新的方向,這個方向可能包含有價值的信息。有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。22Ts_mean($apb,20)Rank_div(Ts_log_pct…Ts_to_wmean(Regre…Truncate(Ts_rsi(Orth…Ts_ref(Ts_rank_ame…Ts_max_to_min(Qua…Fraction($ovpct)Ts_kurt(Quantile($lno…Signed_power($l2c20…Ts_to_max(Ortho(Ra…Ts_fxcut_75($adjclos…Ts_fxumr_50($sqrske…Ts_pctchg(Ts_delta($…Log(Neg(Ts_min_ma…Ts_product($cvpct,5)Demean(Inv(Ts_sum(…Ts_max_to_min(Ts_r…Ts_umr_ewm($tr,$ex…Ortho(Ts_coskew(Ts…Fraction(Truncate(Re…Ts_max(Multiply3($cv…Multiply3($apb,Sqrt(R…Mul(Rank_amean(Ra…Ts_corr($l2c13,Ts_m…Rank_gmean(Ts_ran…Ts_fxumr_75($cvpct,…Zscore(Poly_regressi…Max2(Ts_rank_amea…Ts_product(Regressi…Ts_log_pctchg(Ts_m…Regression_proj($l2c…Rank_gmean_amean…Ts_sum(Quantile(Inv(…Min2($wfr,Ts_std($ad…S_log_1p(Sub_add_d…Ts_fxumr_50(Ts_cov(…Ts_kurt(Power3(Max…Mul(Ts_var(Sub_add…Softmax($cret)Ts_umr_ewm($lnto,$…Ts_coskew(Ts_var($…Ts_diffcorr($l2c18,$a…Mul(Min3(Ts_wma($s…Ts_min_max_cps(Ra…Ts_to_ewm($rkurt,40)Relu(Curt(Leakyrelu(…Inv($bp)Demean(Umr(Min4($…Ts_mean($apb,20)Rank_div(Ts_log_pct…Ts_to_wmean(Regre…Truncate(Ts_rsi(Orth…Ts_ref(Ts_rank_ame…Ts_max_to_min(Qua…Fraction($ovpct)Ts_kurt(Quantile($lno…Signed_power($l2c20…Ts_to_max(Ortho(Ra…Ts_fxcut_75($adjclos…Ts_fxumr_50($sqrske…Ts_pctchg(Ts_delta($…Log(Neg(Ts_min_ma…Ts_product($cvpct,5)Demean(Inv(Ts_sum(…Ts_max_to_min(Ts_r…Ts_umr_ewm($tr,$ex…Ortho(Ts_coskew(Ts…Fraction(Truncate(Re…Ts_max(Multiply3($cv…Multiply3($apb,Sqrt(R…Mul(Rank_amean(Ra…Ts_corr($l2c13,Ts_m…Rank_gmean(Ts_ran…Ts_fxumr_75($cvpct,…Zscore(Poly_regressi…Max2(Ts_rank_amea…Ts_product(Regressi…Ts_log_pctchg(Ts_m…Regression_proj($l2c…Rank_gmean_amean…Ts_sum(Quantile(Inv(…Min2($wfr,Ts_std($ad…S_log_1p(Sub_add_d…Ts_fxumr_50(Ts_cov(…Ts_kurt(Power3(Max…Mul(Ts_var(Sub_add…Softmax($cret)Ts_umr_ewm($lnto,$…Ts_coskew(Ts_var($…Ts_diffcorr($l2c18,$a…Mul(Min3(Ts_wma($s…Ts_min_max_cps(Ra…Ts_to_ewm($rkurt,40)Relu(Curt(Leakyrelu(…Inv($bp)Demean(Umr(Min4($…27300weights4.00%3.00%2.00%1.00%0.00%-1.00%-2.00%-3.00%&wind資訊29500weights2.50%2.00%1.50%1.00%0.50%0.00%-0.50%-1.00%-1.50%-2.00%&wind資訊311000weights3.00%2.00%1.00%0.00%-1.00%-2.00%-3.00%&wind資訊有關分析師的申明,見本報告最后部分。其他重要信息披露見分析師申明之后部分,或請與您的投資代表聯(lián)系。并請閱讀本證券研究報告最后一頁的免責申明。Ts_mean($arpp,60)Arc_tan(Truncate($l2c14))Ts_pctchg_abs($l2c20,40)Ts_to_max($dp2,40)Sub_add_div(Ortho(Ts_…Ts_to_mean($cret,5)Ts_pctchg($l2c12,5)Ts_med(Pow(Neg(Elu(Z…Ts_product(Power2($l2c…Rank_div(Umr(Ts_cokur…Cut($l2c20,Quantile(Ma…Ts_cokurt($lnopenret,El…Ts_pctchg(Ts_var(Ts_m…Ts_triple_corr(Ts_to_mi…Ts_to_min(Ts_var(Ortho…Ts_to_min(Ts_to_min(T…Softmax_one(Inv(Ts_hhi…Ts_coskew($lncoret,$vh…Mean3($cvpct,Quantile(…Ts_product(Hhi($fyroe_r…Ts_pctchg(Arc_tan(Scal…Ts_mean(Regression_n…70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%&wind資訊Umr($fyroe_resid,$vvol)Arc_tan($wfr)Ts_fxcut_75($adjclos…Rank_amean(Rank_…Ts_fxumr_50($apb,$l…Ts_med($sqrskew,10)Ts_kurt($ep2,10)Ts_cokurt($adjvolum…Ts_to_ewm($ex_lnlo…Ts_log_pctchg(Inv(El…Arc_tan(Regression_…Ts_kurt(Ts_skew(Cur…Ts_product(Regressi…Ts_max_to_min(Ts_…Div($lntwapret,$cret)Sub_add_div($lnret,$…Ts_kurt(Power3(Ts_r…Inv(Ts_sum($l2c8,5))Ts_fxumr_50(Ts_hhi(…Ts_max_to_min($lnto,5)

Ts_sum(Maxminnorm…Ts_umr_ewm($rvol,$…Min3(Ts_med($l2c9,4…Fraction($adjtwap)Ts_rank_amean($arp…Mul(Rank_amean(Ra…Softmax(Poly_regres…Ts_var(Rank_gmean…Ts_max_to_min($rsk…Poly_regression(Mul(…Ts_coskew(Zscore(T…Leakyrelu(Mean2(Ts_…Div(Mean2($l2c11,$a…&wind資訊32&wind資訊321000maxabscorr

Rank_div(Umr(Ts_co…Ortho($apb,$l2c12)Ts_pctchg_abs(Rank…Ts_product(Hhi($fyro…Ts_umr_ewm($rvol,$…|DFQ28300股票池:因子相關系數(shù)絕對值的最大值分布maxabscorr&wind資訊30|DFQ28300股票池:因子相關系數(shù)絕對值的最大值分布maxabscorr&wind資訊30500股票池:因子相關系數(shù)絕對值的最大值分布maxabscorrDiv($adjopen,Ts_fxu…Ts_coskew($l2c9,$cf…Umr(Ts_mon(Ts_min…Ts_pctchg_abs(Ts_c…Ts_to_mean(Ts_ske…Ts_pctchg($l2c12,5)Ts_pctchg_abs(Ts_to…Ts_var(Ts_to_mean(…Ts_triple_corr(Tanh(T…Inv(Ts_min_max_cps…Ts_to_wmean(Ts_fxc…2323rankic8.00%6.00%4.00%2.00%0.00%-2.00%-4.00%-6.00%-8.00%-10.00%&wind資訊rankic10.00%8.00%6.00%4.00%2.00%0.00%-2.00%-4.00%-6.00%-8.00%&wind資訊rankic15.00%10.00%5.00%0.00%-5.00%-10.00%-15.00%rankic8.00%6.00%4.00%2.00%0.00%-2.00%-4.00%-6.00%-8.00%-10.00%&wind資訊rankic10.00%8.00%6.00%4.00%2.00%0.00%-2.00%-4.00%-6.00%-8.00%&wind資訊rankic15.00%10.00%5.00%0.00%-5.00%-10.00%-15.00%&wind資訊24Ts_med($arpp,10)Ts_pctchg_abs($arpp,10)Ts_cov(Arc_tan($apb),…Ts_cov(Poly_regressio…Ts_pctchg_abs($l2c20,…Ts_skew(Log(Ts_rank_…Div($lnopenret,Cut(Fra…Pow(Ts_rank_amean(L…Inv($rjump)Ts_to_wmean(Ts_fxcut…Ts_fxcut_75(Cut(Ts_co…Ts_fxcut_75(Sub(Cut($…Ts_pctchg($l2c15,10)Softmax($l2c16)Ts_coskew(Umr($epfy,…Ts_min(Hhi($l2c15),10)Ts_pctchg($l2c12,5)Zscore(Multiply3($adjv…Ts_var(Ts_sum($sqrsk…If_then_else(Softmax_o…Ts_ir($l2c4,40)Ts_to_mean(Ts_hhi(Ts…Multiply3($l2c4,$lnlowr…Ts_rankcorr(Ts_med($l…Div($apb,$cfp)Elu(Ts_hhi($lncoret,40))Ts_min(Multiply3(Ts_m…Fraction(Cut($citic3inde…Ts_to_wmean(Ts_log_…Div($lnopenret,Cut(Fra…Pow(Ts_rank_amean(L…Ts_pctchg_abs(Multiply…Inv($rjump)Ts_pctchg_abs(Ts_to_…Div($lnhighret,$apb)Ts_var(Ts_to_mean($f…Ortho(Sign(Multiply3($t…Ts_to_mean($cret,5)Ts_product($rkurt,10)Ts_fxumr_75($l2c11,In…Ts_pctchg($l2c11,40)Div($tper,Zscore($rkurt))Ts_min(Hhi($l2c15),10)Ts_sum($cret,5)Ts_min_max_cps(Ts_p…Rank(Ts_skew(Regres…Ts_mean(Regression_…Ts_mean($apb,20)Ts_corr($rjump,$citic1i…Ts_ref($cfp,60)Ts_max_to_min($rske…Min4($sp,$ex_lnopenre…S_log_1p(Regression_…Rank_gmean_amean_…Ts_partial_corr(Rank_g…Ts_skew(Ts_fxcut_50(…Ts_to_max(Signed_po…Rank_gmean_amean_…Regression_neut(Min4(…Inv(Ts_to_wmean($sqr…Ts_to_ewm($l2c11,20)Ts_pctchg(Ts_partial_c…Inv(Ts_wma(Ts_pctchg…Sigmoid(Ts_pctchg_ab…Ts_ir($tper,40)s_pctchg_abs($vhhi,10)Umr($l2c13,Ts_ir(Ts_p…Signed_power($rskew,…Ts_kurt($lnopenret,10)Ts_delta($cvpct,60)Ts_fxumr_50(Sign(Ts_…Rank_gmean($peg,Lea…Hhi(Ts_fxumr_50(Rank…Ts_var(Quantile(Ts_me…Ts_umr_ewm($rvol,$ex…Ts_max(Ts_to_mean(P…Ts_min_max_cps($ep2…Ts_var(Rank_gmean_a…Mul(Rank_amean(Rank…Ts_mean($apb,20)Min3(Ts_med($l2c9,40)…s_corr($lnhlret,$ep2,20)Ts_med($arpp,10)Ts_pctchg_abs($arpp,10)Ts_cov(Arc_tan($apb),…Ts_cov(Poly_regressio…Ts_pctchg_abs($l2c20,…Ts_skew(Log(Ts_rank_…Div($lnopenret,Cut(Fra…Pow(Ts_rank_amean(L…Inv($rjump)Ts_to_wmean(Ts_fxcut…Ts_fxcut_75(Cut(Ts_co…Ts_fxcut_75(Sub(Cut($…Ts_pctchg($l2c15,10)Softmax($l2c16)Ts_coskew(Umr($epfy,…Ts_min(Hhi($l2c15),10)Ts_pctchg($l2c12,5)Zscore(Multiply3($adjv…Ts_var(Ts_sum($sqrsk…If_then_else(Softmax_o…Ts_ir($l2c4,40)Ts_to_mean(Ts_hhi(Ts…Multiply3($l2c4,$lnlowr…Ts_rankcorr(Ts_med($l…Div($apb,$cfp)Elu(Ts_hhi($lncoret,40))Ts_min(Multiply3(Ts_m…Fraction(Cut($citic3inde…Ts_to_wmean(Ts_log_…Div($lnopenret,Cut(Fra…Pow(Ts_rank_amean(L…Ts_pctchg_abs(Multiply…Inv($rjump)Ts_pctchg_abs(Ts_to_…Div($lnhighret,$apb)Ts_var(Ts_to_mean($f…Ortho(Sign(Multiply3($t…Ts_to_mean($cret,5)Ts_product($rkurt,10)Ts_fxumr_75($l2c11,In…Ts_pctchg($l2c11,40)Div($tper,Zscore($rkurt))Ts_min(Hhi($l2c15),10)Ts_sum($cret,5)Ts_min_max_cps(Ts_p…Rank(Ts_skew(Regres…Ts_mean(Regression_…Ts_mean($apb,20)Ts_corr($rjump,$citic1i…Ts_ref($cfp,60)Ts_max_to_min($rske…Min4($sp,$ex_lnopenre…S_log_1p(Regression_…Rank_gmean_amean_…Ts_partial_corr(Rank_g…Ts_skew(Ts_fxcut_50(…Ts_to_max(Signed_po…Rank_gmean_amean_…Regression_neut(Min4(…Inv(Ts_to_wmean($sqr…Ts_to_ewm($l2c11,20)Ts_pctchg(Ts_partial_c…Inv(Ts_wma(Ts_pctchg…Sigmoid(Ts_pctchg_ab…Ts_ir($tper,40)s_pctchg_abs($vhhi,10)Umr($l2c13,Ts_ir(Ts_p…Signed_power($rskew,…Ts_kurt($lnopenret,10)Ts_delta($cvpct,60)Ts_fxumr_50(Sign(Ts_…Rank_gmean($peg,Lea…Hhi(Ts_fxumr_50(Rank…Ts_var(Quantile(Ts_me…Ts_umr_ewm($rvol,$ex…Ts_max(Ts_to_mean(P…Ts_min_max_cps($ep2…Ts_var(Rank_gmean_a…Mul(Rank_amean(Rank…Ts_mean($apb,20)Min3(Ts_med($l2c9,40)…s_corr($lnhlret,$ep2,20)Ts_max_to_min($rske…Ts_med(Rank_mul($fyr…Ts_ref($l2c11,10)Ts_ref($arpp,5)Ts_hhi($l2c9,60)Tanh(Ts_min_max_diff(…Ts_skew(Ts_skew(Reg…Fraction(Ts_to_wmean(…Ts_cokurt($citic1index_…Ts_to_ewm($apb,10)Regression_neut(Min4(…Rank_div($cret,Ts_corr…Ts_pctchg(Min2(Rank_…Ts_pctchg(Ts_partial_c…Ortho(Ts_coskew(Ts_h…Ts_to_mean(Ts_min_m…Mean2(Poly_regression…Fraction($adjtwap)Softmax(Poly_regressi…Quantile(Fraction($adjv…Ts_umr_ewm($tr,$ex_l…Ts_skew($adjlow,10)Softmax(Ts_cov(S_log…Rank_by_side(Rank_g…Sub_add_div($swing,…Ts_log_pctchg($ep2,20)Ts_rank_amean($l2c…Max4($cret,Rank_gm…Ortho($l2c4,Fraction(…Ts_sum(S_log_1p(Ts…Ts_corr($l2c13,Ts_m…Ts_triple_corr(Ts_var…Ts_min_max_diff(Ma…Ts_ref(Ts_std(Inv($rj…S_log_1p(Sub_add_d…Ts_product(Regressi…Ts_kurt(Ts_skew(Cur…Sub_add_div($vvol,$…Ts_var(Ts_max_to_m…Max2($l2c10,Ts_hhi(…Ts_kurt($ep2,10)Signed_power(Ts_su…Sub_add_div(Ts_hhi(…Div(Ts_std($fyroe_re…Ts_umr_ewm($lnto,$…Ts_kurt($adjhigh,40)Rank_div($adjpreclos…Ts_log_pctchg(Ts_st…Rank_amean(Ts_fxu…Min3(S_log_1p(Ts_w…Div(Div(Ts_sum($am…Ts_fxcut_75($adjclos…|DFQ接下來我們展示三個股票池中,最終得到的因子組合中200個單因子在訓練集中的RANKIC、RANKIC_IR(未年化)分布。均隨機選取一個種子,并在訓練集上計算單因子取值。可以看到:單因子間的績效表現(xiàn)差異較大。這主要是由于我們在挖掘因子的過程中,僅關注合成因子的IC,IC下限。測試顯示,不加限制,可以在相同步數(shù)的情況下得到更優(yōu)的合成因子組合。33300RANKIC分布圖34:滬深300股票池:單因子訓練集RANKIC_IR(未年化)分布rankic_ir1.0

溫馨提示

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

評論

0/150

提交評論