田大偉:我眼中的A股量化二十年
A股市場有量化公募基金到現在也就是20年,我覺得這20年間已經經歷了三個階段,初期的量化投資是基於規則的投資,中期是系統化投資,現在是算法交易和機器學習。
早期的量化投資,其實就是基於規則的投資,期待成功的經驗在未來市場能夠復現。量化投資會通過編程對大量歷史數據做更完備的檢驗。
舉例來說,量化投資會在每月初把所有股票按PB高低分組,月末看低PB組合的收益是否大於高PB組合。如果過去十年每個月都這樣做,低PB組合能夠持續穩定地戰勝高PB組合,那麼在實踐中就可以購買低PB組合來獲取超越市場平均水平的收益。
在實際操作中,我們會盡可能地細分到合適的組數,並在不同的板塊、不同的指數、不同的時間等儘可能多的維度對因子進行測試。好的量化因子會在各個組別裡都呈現出規律性,這樣的量化因子稱之爲阿爾法因子。
估值這個因子,確實有它的優勢。市場跌的時候,可能會跌得少些,但還是會虧錢的。
一般單因子很難表現出色,所以量化投資也引入了因子組合的概念。如PB低於1,ROE大於10%組合,將低PB和高ROE進行組合。在組合方法上,早期的量化投資將各因子進行線性組合,等權買入,或者把高低因子組合收益差作爲權重構建組合。
沒有經驗來自於未來,所以在回測時不能使用未來數據。同樣,也有很多方法來規範回測流程。例如,假設現在是N年,我們可以用N-10年到N-3年的數據來確定各因子組合的權重等參數,用N-2和N-1年的數據來檢驗這些參數是否仍然有效,如果檢驗和驗證時間段的結果比較一致,那麼模型參數是穩健的,用到第N年的投資就會更加放心。
多年實踐下來,我覺得因子只是一棵“樹”,量化投資需要的是一片“森林”。成功的量化投資策略需要具有強大的自生力,可以不斷繁衍。
這個“森林”就是量化體系。在這個量化體系中,因子開發所用的原始數據需要統一,因子計算通用函數需要統一,因子回測模塊需要統一,但因子的組合可以千變萬化。有了這樣的量化體系,可以在很短的時間內對新的因子做一次全場景的回測,而不用擔心是否使用了錯誤數據和方法,回測結果是否可比等問題。
有了這個量化體系後,很多流程都模塊化、標準化了,量化投研人員就可以站在“巨人”的肩膀上,集中精力進行新因子核心邏輯的研發,就可以騰出時間來做更加精細的研究,來獲得更好的投資效果。
還是以PB因子爲例,PB低的組合除了PB低之外,還會有其他特徵,例如銀行股佔比高等等,而我們需要的是低PB本身能帶來收益,因此需要構建純PB因子組合。純因子組合是通過數學優化方法,最大化暴露於某一特定因子,同時最小化其他因子的影響。在實際的因子研發流程中,就會有一個模塊,對因子進行行業、市值等其他因子的中性化處理,儘可能剔除其他影響因素。純因子之間進行組合時,才能形成1+1>2的效果。
純因子組合的研究思路就是量化投資獲取超額收益的方法。
以中證500指數增強量化基金爲例。中證500指數是一個由500只股票組合的股票組合。中證500指數增強策略要構建一個新的股票組合來戰勝指數成分股組成的股票組合。這個新的組合就是相對中證500成分股的純阿爾法因子組合,新組合在阿爾法因子上的得分要跟中證500指數的成分股拉開差距,其他特徵一致。如果我們的阿爾法因子越強越穩定,那麼我們構建的新組合相對指數的超額收益就會越多越穩定。
另外,如果你選擇增強的基準比較強,疊加上阿爾法收益,產品也會具有絕對收益的特徵。同時,市場上也有量化產品可以不針對任何基準,只是最大化阿爾法因子得分。
所以對於量化投資來說,第一步就是尋找好的阿爾法因子,第二步是構建各種策略組合。在實踐中,量化系統可以同時研究和跟蹤非常多的因子,各類因子與各類基準進行組合生成不同的產品策略。此時的量化投資就進入了系統化投資階段。不斷豐富量化因子武器庫和策略庫,投資機構可以應對不斷變化的市場,滿足客戶的需要。
目前我們的量化系統定期跟蹤1000多個因子,逐日跟蹤500多個因子,用於構造超額收益策略的基準有30多個。在我們的系統中,每個阿爾法因子和每個基準都會組合產生一個超額收益策略。換句話說,每個基準都有上百個超額收益策略每日計算和跟蹤。
因爲每家量化投資機構因子入庫的標準不同。有些機器挖出的因子我們是不作爲阿爾法因子看待的,效果不好的因子我們也不會跟蹤。所以相對於因子的數量,我更建議關注因子的質量和評價體系,例如如何將一個差因子一步一步研發成好因子,並把這個過程流程化,用於其他因子研發。
爲了維護產品超額收益的穩定性,也爲了應對產品規模的增長,會根據實際情況選擇不同的策略進行交易。策略多了,交易的股票也就多了。所以量化產品調倉時通常都會同時買賣上百隻股票,這時就需要算法交易來幫助我們了。
隨着量化產品規模的增加,算法交易的重要性更加明顯。在算法交易和嵌入算法交易的交易系統的加持下,量化投資才能釋放出更大的能力,這也是現階段量化投資的一個重要特徵。
而且,除了精準和節約,算法交易還可以進一步利用“逐筆成交數據”來進一步挖掘因子。我們普通投資者每天接觸的,大多是日頻數據,也就是每天的情況。但下單的數據是逐筆委託數據,但單子可能會被不同的對手盤單子吃掉,每次撮合成交的數據就是逐筆成交數據。這種數據交易所也是最近幾年才完整提供的,稱之爲L2數據。
L2數據可以說包含了大量詳實的量價信息。如果市場上5000多隻股票每天的逐筆成交和逐筆委託等L2數據都獲得並存放成CSV文件,那麼每天有幾十G的量,這些數據是量化投資尋找阿爾法因子的寶庫。
有了L2數據,我們可以構建每天特定時間段的因子,例如收盤前30分鐘的因子,也可以從L2數據中篩選出“大額”資金成交或者委託的信息,或者是主動買入、賣出等信息等,這樣構建的因子信息是非常豐富的。
算法交易、機器學習,感覺現在的量化投資方法越來越複雜,財務數據之外,量化方法還會使用很多其他數據。數據多但與股票漲跌無關也是無用的,方法越複雜也越難以有效把控。
財務數據、事件數據、一致預期數據、簡單的日頻量價數據都是量化研究的重點,機器學習等方法我們也在不斷學習,融入到整個量化體系當中,以提高我們因子庫的質量,提高策略業績和產品業績的穩定性。量化投資就是團隊成員彼此分工構建和迭代生產策略的流水線。
未來的量化投資方法已經在孕育中了,只是目前還沒有特別好的成果。例如強化學習方法就像在虛擬的市場環境中進行“交易”,根據交易結果的好壞得到“獎勵”或者“懲罰”來修正交易過程,直接給出“最優”的買賣信號。那時可能就步入了人工智能和金融工業化階段。
總體而言,股票市場是個複雜市場,量化投資還很年輕,主動量化產品的總規模和單個產品規模都相對較小,量化產品的業績波動也很大,需要更長時間的檢驗。