基於AI排序演算法的指數增強策略【附原始碼】

寬邦科技發表於2019-01-24

摘要:本文基於AI排序演算法實現一個指數增強策略樣例,並在文末附上實現程式碼,為大家提供一個參考,大家可以直接點選文末連結,前往BigQuant人工智慧量化投資平臺直接進行實現。

在介紹AI排序演算法之前我們先介紹另外一個術語:特徵工程

特徵工程是使用專業背景知識和技巧來處理資料,使得特徵能在機器學習演算法上發揮更好作用的工程實踐。這樣解釋可能並不直觀。舉例說明,當我們選擇用指標來評估一個人身體健康程度時,我們一般聯想到的是身高和體重指標,這是兩個不同的維度對資料進行記錄,如果我們用身高除以體重這個衍生計算出來的比值來評估一個人身體健康狀況,可能預測準確率比單單以身高或者體重進行預測效果好,這就是特徵工程中如何構建特徵的具體運用。

股票市場上機構最常見的量化選股策略為:多因子選股策略,其基本假設是:相似的資產會有相似的回報, 由於某些特定的原因(特徵,也稱為因子),資產會表現的十分類似,例如價量變化、行業、規模或者利率變化。因此通過股票的因子就能預測股票未來收益率,一些常年有效的因子包括:動量因子、反轉因子、成長因子、財務質量因子、盈利能力因子、股東因子、波動率因子等等。多因子選股策略從本質上來說也是機器學習特徵工程的運用,通過構建衍生因子來對股票未來收益率進行預測。

網際網路領域由於資料量大,天生就是機器學習的主戰場,本文要介紹的排序學習演算法在網際網路領域已經有著廣泛而成熟的運用。排序學習是一種廣泛使用的監督學習方法 (Supervised Learning),比如推薦系統的候選產品、使用者排序,搜尋引擎的文件排序,機器翻譯中的候選結果排序等等,該演算法可以很好地將排序和選股結合起來。

策略設計

指數增強

指數增強類產品近兩年比較火,一般指買入某個指數成分股,並通過擇時、倉位動態調整等方式獲得超越指數收益的策略。本文的策略有所差異,不是買入所有指數成分,而是以某一指數確定股票池,然後通過演算法對指數成分股票進行排序,買入排序靠前的股票來實現獲得超越指數收益的目的。

股票池
以上證50指數成分股為股票池。同理,也可以以滬深300、中證800或者某一行業的股票為股票池。

訓練集和測試集確定
本文以2011-01-01至2016-01-01期間的資料作為訓練集,以2016-01-01至2018-01-22期間的資料作為測試集。因此本文的策略回測區間為2016年以來。

資料標註
將股票未來5日的收益率進行離散化,對映到1至20共20個分類,標註高表示收益率高,這裡離散化採取的是等寬離散化。

特徵抽取
本文抽取的特徵需要特別介紹的是個股相對於上證50指數(000016)的超額收益率資料,該特徵的抽取採取的是方法是:使用者自定義表示式函式抽取衍生特徵,該方法能夠非常自由靈活地抽取特徵,比如可以抽取A股票相對於B股票的漲幅這類的特徵,將大大豐富機器學習策略所需用到的因子體系,推進機器學習量化策略的開發提升到新的高度。

資金管理
多因子選股策略一般是按月調倉,但是本文的策略並不是按月調倉,而是每日調整部分持倉,這樣做最大的好處就是能夠及時更新選股結果,適應市場狀況,尤其是採用了一些短期變化劇烈的價量因子的時候。我們也嘗試過按固定週期全部倉位調倉,效果確實差一些。在買入股票的時候,本文策略也並不是多因子策略的等權重買入股票的思想,因為AI排序演算法本身是對股票是否值得買入的一個綜合排序,等權重思想與之不太切合,排序在前的股票買入權重越大、排序靠後的股票買入權重越小的思想更為適合,因此每隻股票的買入權重可能差異很大。

回測交易
當AI排序演算法在預測集上進行預測以後,我們可以通過一些機器學習的指標(比如NDCG)來檢驗預測的準確性,但對於策略思想檢驗而言,這並不直觀,最直觀的方式就是按照預測結果指導投資交易行為,採取收益率曲線來檢驗演算法預測的準確性。本文策略回測區間為測試集時間跨度,策略基準為上證50指數。

策略效果
策略總收益為52.07%,年化收益為23.37%,夏普比率為0.95,最大回撤為16.04%。由於基準總收益率為29.31%,策略總收益為52.07%,因此該策略確實達到了指數上的增強效果。

image

接著看了一下該策略的風險暴露,發現基本上是集中在價值因子和規模因子上,這很好解釋,因為上證50的股票本身規模很大,從公司價值本身來看都很不錯。完整程式碼 在文末附件,對量化感興趣的朋友可以接著開發優化。

image

附件

程式碼地址:基於AI排序演算法的指數增強策略

本文由BigQuant人工智慧量化投資平臺原創推出,版權歸BigQuant所有,轉載請註明出處。 

相關文章