1. 程式人生 > >京東量化手把手教你寫“法瑪三因子”策略

京東量化手把手教你寫“法瑪三因子”策略



閱讀原文:京東量化平臺(quant.jd.com)-全方位量化策略開發平臺。量化交易、量化投資、雲端線上程式設計、策略歷史回測、實盤模擬、量化社群

京東金融量化交流群:417082141

[入門教程],大神輕拍!

“法瑪三因子”是個什麼鬼?

尤金-法瑪、彼得-漢森和羅伯特-希勒這三位學者因對資產定價領域的相關貢獻得獎是2013年的諾貝爾經濟學獎一個非常熱門的話題。

就是上面這個老頭他提出的“三因子模型”是廣受華爾街歡迎的法寶。

這三個因子一個叫貝塔,一個叫市值,一個叫估值——更簡單地說,小盤股和低市淨率的價值股會給你帶來更好的回報。

所謂貝塔,有點類似於大家所說的“股性”,比如大盤漲1%,這個股票一般要漲1.5%,股民就會說這個股票“股性活”,而學術界則會說這個股票的Beta值是1.5(1.5÷1=1.5)。三因子模型之前的CAPM理論認為一份風險一份收穫,一個股票的Beta越大那麼預期收益就該越大。

  所謂市值,是指上市公司的規模大小。

  所謂估值,是指市盈率或其他可衡量的估值指標。

  法瑪三因子模型橫空出世之後,引發了全球投資界的強烈關注。很多人在不同的市場做了很多實證檢驗。

這樣看起來,法瑪三因子模型的確看上去很美,用上去很行。不過,先別急著鼓掌,我們再來看一個巴菲特的例子。

  對衝基金 AQR CAPITAL MANAGEMENT 曾對巴菲特的40多年的股票投資過程做了非常仔細的研究,得出了一個重要的結論——巴菲特之所以能靠股票投資成為首富,是因為他買的股票都是波動率比較低的(Low beta),而且是當穩定的大公司股票打折的時候買進的。但是為了提高收益率,巴菲特通過發行債券和控股保險公司等方法使用了低利息的融資(Leverage),研究報告算出來巴菲特使用了大約1.6倍的融資槓桿。

  所以他們認為,巴菲特成功的祕訣就是:低貝塔 + 大盤股打折 + 適度槓桿。

  如果我們把以上巴菲特的三個祕訣稱為首富三因子的話,你有沒有發現——首富三因子中低貝塔,大盤股,這兩個要素與法瑪三因子模型中的兩個因子相矛盾。

好吧,現在問題來了,一個世界首富,一個諾貝爾經濟學得獎,你信誰?

我的答案是我信京東量化平臺,好吧,我們整理一下思路,寫程式碼吧!

法瑪三因子:小市值+小市淨率

看起來,並不難寫對不對,get_fundamentals可以得到上面兩個財務因子,可是問題來了,我們怎麼給兩個財務因子加權排序呢?在數學上,一般來說我要對兩個以上變數進行排序可以用乘法,這樣不會破壞變數的關係,可是這裡是市值,再乘以市淨率,你能保證你的電腦有足夠大的記憶體來儲存這個數?我們來看看這個bug.


看到上圖那個 market_cap_2 那裡沒,因為數值太大無法完整顯示了。你能保證再乘以一個數而不會出錯嗎?

沒關係,有辦法,在計量經濟學中這種乘法的排序變成加法的排序只需要求變數的對數就行了。

和=np.log(市值)+np.log(市淨率) 就這麼簡單,然後對 和 排序就行了。

下面是選股函式的核心程式碼,其它程式碼自己加就行了

那麼最後,我回沒2011年至2013年一斷時間,發現這個策略還是比較靠譜,請看圖,沒有怎麼優化。