動態多因子+輪動擇時
傳統多因子模型忽視了個股之間的基本面情況差異和選股因子在不同風格股票池裡的適用性。在市場風格快速切換的大環境下,傳統多因子加上市值對沖跑出來的收益已然加入了餘額寶梯隊,所以有些賣方就提出了動態多因子的思路。本文參考了國信《45數量化投資技術系列之四十五:基於A股市場選股因子邊際效用和有效分散的動態區分度動量策略》結合輪動擇時,提供了做多因子一個新的思路。
文章中因子貢獻度的含義如下:
1.首先將股票池中的股票按因子進行排名,分別選出排名靠前的20%和排名靠後的20%股票構成兩個組合;
2.我們將兩個組合的平均收益差和股票池中所有股票前後20%股票的平均收益差相除,得到的比值即為因子貢獻度;
3.兩個組合的收益率相差越大,則說明該時點此因子對股票的區分度越大;對於正的貢獻度,因子值越大,平均收益率越小;對於負的貢獻度,因子值越大,平均收益率越大。n因子貢獻度的概念如下圖所示:
本文對於通過因子貢獻的選股的策略如下:
1.首先計算股票池中各個因子的數值(標準化,中性化,去極值);
2.然後計算各個因子的貢獻度;
3.通過因子的大小對於股票進行排序,序號大的股票理論上上漲的可能性越大;
4.如果因子貢獻度小於門限menTH則捨棄該因子;
5.通過以下公式計算股票池中股票的得分:
其中stockpoin、 、 分別代表第i支股票的得分,第i支股票第j個因子的排名,第j個因子的貢獻度;6.選取得分最高的stocknum支股票;
代碼實現部分
下面對策略進行總體的實現,為了減少回撤,這裡引入二八大小盤輪動策略,具體如下:
1.計算滬深300和創業板的20天收益率;
2.1如果滬深300和創業板的20天收益率小於0,則清盤;
2.2如果滬深300的20天收益率大於創業板的20天收益,則在滬深300中得到動態多因子打分的股票num支,如果打分所得的股票與持有的股票有60%的不同則換倉;
2.3如果滬深300的20天收益率小於創業板的20天收益,則在創業板中得到動態多因子打分的股票num支,如果打分所得的股票與持有的股票有60%的不同則換倉;
其中每3個工作日判斷大小盤風格輪動的狀況,創業板每6個工作日進行一次換倉判斷,滬深300每9個工作日進行一次換倉判斷。 策略回測效果如下:
由回測的情況可知在2011-04-01到2017-03-27的時間段中本策略取得了51.30%的年化收益率,Alpha為48.70%,夏普比例為1.91,收益波動為24.9%,最大回撤18.3%!可以看到策略的性能還不錯。n同時對於2011-04-01到2012-12-31這段股市下跌時期,本策略取得了8.2%的年化收益率(高出基準21.5%),收益波動為17.60%,最大回撤15.5%! 該策略在長期熊市下也不錯!感興趣的朋友可以進一步探索。
原文鏈接: 國信動態多因子演算法的實現 作者:圓石滾滾
其他文章推薦:
情景分層因子初探
動態情景多因子模型
多因子擇時_part_one
多因子擇時_part_two
推薦閱讀:
※PonderRNN對HS300指數預測
※已有python基礎想學習量化。要配新電腦了,請問該用什麼配置?
※淺析至強RNN可微分神經計算機(DNC)
※Smart Beta 投資方法
※【聚寬投資】求賢季