雪球雲蒙銀行股搬磚策略的實現(v1.0版本)
本篇文章由JoinQuant官方推出,將會被JoinQuant量化課堂收錄。
本文已經思路提供者雲蒙授權。
與官號同步發布,哦不!小編我懶了一下下,落後官號了。歡迎關注官號:雪球雲蒙銀行股搬磚策略的實現 - JoinQuant的文章 - 知乎專欄
本文為入門級,手把手的那種哦
作為一個想在金融市場發展的有(du)志(bo)青年,練級打怪的初期想法不多怎麼辦啊?尤其是空有一身編程的武藝,想找個策略切磋一下都無從下手。這當如何是好?!解決辦法之一就是:可以借鑒大V!
什麼意思呢?大威嘛,威起來的前提條件就是發了好多乾貨,分享了好多投資理念,思路,文章!
這些文章呢,有的適合你,有的不適合你;有的很犀利,有的有糟點;有的簡明清晰,咔嚓咔嚓兩下就寫成代碼。有的雲里霧裡,好像不容易把規則抽象出來。不過站穩不慌,有條件可以回測,沒條件找小編,小編還是可以開開腦洞,創造條件強行回測的呦。
而且你會發現在這個過程中,你對金融市場越來越熟悉,能力槽也開始飆升,藍槽max!是不是很high。
今天我們就來舉一個例子,把雪球上雲蒙mm的思路寫成代碼。不懂編程的朋友也甭怕,我們已經把代碼改好了,如果你願意,只需要稍微調整就可以實現不同參數的回測。
如果你實在看代碼頭大,我們還把雲蒙銀行打分所涉及的銀行數據都清洗了一遍,並且弄成excel表格提供給大家。這個價值也是不小的[大笑]。
納尼?把第二章劇透了。怒丟一張流程圖掩蓋下:
雲蒙嘛,就是雲蒙嘛:
雲蒙者,雪球大V也。神采飛揚,以善於投資銀行股著稱,搬磚運動的倡導者和發揚者。
我們先來看一下雲蒙在她的原文咋說的,核心觀點見下文,原文請參見鏈接https://xueqiu.com/3037882447/68184966總結一下,思路就是通過對盈利性指標(加權平均凈資產收益率)、資本約束及穩健指標(核心資產充足率)、以及資本回撥係數來對一個公司進行評判,得出一個財務打分。
小編理解,這個財務打分相當於公司的價值。然後將PB看做股票的價格,那麼買的時候就是撿便宜的買啦(價值/價格最高者),所謂得分最高的,也就是比價最高的。所謂搬磚捏,也就是在比價發生變化的時候,重新調整持倉。
我覺得雲蒙的精髓呢,就是將撥備壞賬與利潤掛鉤的這麼一個處理過程。還有比較全面的評估體系。
為了更好的理解雲蒙的流程,我們做了一張圖(目前逾期貸款的數據暫時不全,所以只用了不良和撥備):看起來也不複雜對不對,公式都擺明了,也就是計算出3個指標相乘。而這3個指標,總共需要6個財務欄位。
But!如果我們僅僅回測A股:那麼近似來看,總共需要回測16隻銀行股。假設我們從10年開始回測,那麼粗略估計,需要的數據量為6*4*16接近600個季報數據。這個工作量其實不小,扣一家銀行一個季報的數據算3分鐘好了,也就是1800分鐘,30個小時的工作量,耽誤點時間一周就過去了。
而這些工作量,我們已經幫你省了。(網盤鏈接:http://pan.baidu.com/s/1eRZL7WY 密碼:g9y9)。有兩個excel表格,一個文件(雲蒙財務指標梳理.xlsx)包含詳細的原始數據,以及一步一步的打分過程。另外一個文件(bankshares.csv),按照一定格式記錄的回測結果,我們在平台上回測的時候需要把這個文件導入(具體怎麼導入請參見後文)
前者的大概長這個樣子:
後者大概長這個樣子:
別看錯了哦。
但有了打分就可以直接回測了嘛?na?ve啊!
回測規則不難:
每天開盤前檢查一下,看看財報打分有沒有變動,並且參考昨收價的PB進行打分,把打分排序。
始終保持選擇評級最高的num=4隻股票加入投資組合(num可自己設置)。要注意,我們只有分數變動k>=5%時才會進行調倉(k可自己設置)。假設原先的前4名是A,B,C,D。現在的前四名是A,B,C,E。為了不頻繁調倉,減少摩擦成本,只有當E的打分比D高5%以上時,我們才會進行調倉。
對於這num=4隻股票,我們會為它們分配一個權重,初始權重按照評分從高到低為4:3:2:1。即假設一共有100萬的資產,則如果當前的四隻股票比例為4:3:2:1,則第一隻股票買100*4/(1+2+3+4)萬元。如果num=5,那麼持倉股票的比例為5:4:3:2:1。但注意,同樣的,內部調倉也需要滿足k>=5%的條件。
但是稍微操作一下的時候,你考慮周全了嗎?這裡有兩個大坑等著你踩:
第一個坑指的是回測方面的坑:
1. 財務指標公布的時間可不是嚴格按照季末那個時間點更新的哦,而是陸續的披露出來。你的回測也得考慮這個情況,否則提前幾天知道了數據會有未來函數。
2. 手續費考慮了嗎?分紅考慮了嗎?停牌考慮了嗎?漲停買不上,跌停賣不出去考慮了嗎?滑點設置不設置?那些股票在回測期間都上市了嗎?
3. 以上我們的回測引擎和代碼全考慮了。
第二個坑指的是搬磚規則的坑:
搬磚的原則聽起來不難,打分從大到小排序,排排坐,赤裸裸,哦不!吃果果!按照比例分配就好啦。唯一要注意的是為了減少摩擦成本,只有打分變動5%以上時,才進行調倉。
嘿嘿,不妨稍微考慮幾種情況,感受一下這個規則。
下面的圖中,豎條的長短表示上一期的持倉數量(4:3:2:1),你看到不是按照從左到右依次遞減,說明打分變動,要調倉啦
第一種,最簡單的,ABCD變成了ABDC,如果D的打分比C高5%,搬磚!搬一塊磚即可。
第二種,ABCD變成了ADCB,這時就麻煩啦,你得智能的找出原來是B和D之間分差起了作用,所以如果D比B的分數高5%,直接從D搬到B兩塊磚
再增加點難度,ABCD變成了DACB,這時候你得綜合考慮,新的打分出來以後,第4位的磚是不是要挪到第一位上?那麼第二位的磚要不要挪到第一位上?
還沒完,以上的都算形狀規整的,但是下面這種捏?
什麼?你說這種情況怎麼可能產生?當然可能產生了,你要注意到不到5%的時候是不搬磚的嘛,那麼七挪八挪,啥形狀都有可能。
再何況,如果是5隻股票的持倉呢?如果還要考慮其他沒有入池的十幾隻股票呢?(這些可以看成是權重為0的倉位)
綜上。窮舉法就是死路一條。在每日更新打分的情況下,人工幾乎做不到。
好了,以上這些都是鋪墊,我真正想說的是,我們研究了一個小演算法,專門針對這個搬磚,得到了一個通解。直接拿來用就行。有興趣的朋友可以研究代碼,也歡迎大家交流。貼個回測結果小結一下:
我們選取了打分最高的5隻銀行股持倉,並且每次分數差必須超過5%。藍線是我們的持倉收益率,紅線是滬深300。從10年回測至16年一季度。
可以看到:
1. 在2012年那波銀行股引領的反彈之前,這個策略與滬深300的表現不相上下。
2. 12年銀行股開始翻身,搬磚策略穩定的跑贏大盤。
3. 回撤大,是因為一直滿倉,相當於從10年之後的陰跌全部吃進去。
4. 總之搬磚是有alpha的,每年大概5%左右(憑感覺,沒有細究)。從12年之後,銀行股表現的也與滬深300有一戰之力。最終導致銀行搬磚策略未定的超越了大盤。
總之,這個策略整體還是蠻穩定的,不好的時候與滬深300打平,好的時候穩穩跑贏滬深300,如果進一步挖掘,可以嘗試往對沖策略方向發展。
如果大家有興趣,留言中回復,我們可以進行大規模的回測,遍歷一下參數。
未來進步的空間
不論主觀交易者,還是量化交易者,假設你現在做出了這個策略,你會怎麼想?
如果你就滿足了,是沒法進步的。
我們這個策略只是alpha版本,很多細節有待提高,我們還可以在以下幾個方面改進:
銀行股自07年集體高潮以後一路向南,12年末雄起了一把,以為獨領風騷引領大牛市,結果被13年錢荒教育了一把,告訴你誰才是老大。一幫資金潰不成軍,去調戲中小創,你看自此小盤股一路女上位。
但是!重要的話說三遍,我大A股的尿性就是同漲同跌啊,搬磚能搬出什麼花來?如果加上我大zi本主義橋頭堡,三年中兩年不鳥A股的HK市場,那搬起來虎虎生風,說不定戰局就逆轉了啊。如果善用加槓桿,與創創也有一戰之力了啊。
所以,
第一,也是最重要的,把港股加入我們搬磚體系。我相信會大幅提高我們的搬磚alpha。
第二,作為一個投機取巧的人,不一定滿倉啊!擇時也是我們要研究的一個方向。
第三,如果你不是堅定的銀粉,其實可以找點類似的高息,業績穩定的股票,也參與到搬磚里來啊,構成我們「大搬磚」的體系。
然而
。。。
。。。你以為這就完了?並沒有。這裡還有一個附錄,也就是手把手教你怎麼回測啦。
沒有編程基礎的朋友也可以試一試,更改參數可以得到不同的回測結果。有興趣的朋友可以研究下代碼。
回測前需要上傳文件:
文件名bankshares.csv,記錄了09年之後的財報打分情況,先將這個文件導入我們平台
首先進入研究模塊:
點擊upload,選擇相應文件:
上傳文件後,戳這裡(雲蒙——銀行股策略回測),點一鍵克隆,然後你就可以看到這個頁面。點擊回測即可:
更改紅圈處的參數,可以調整入池數量,以及每次搬磚必須保證的分數差,0.05表示5%
然後你就可以方便的回測啦!Ok,拋磚引玉,我寫完了,好累。期待Beta版的搬磚策略吧。
推薦閱讀:
※出現了!出現了!你們要的【公開薦股】出現了!
※如何復盤?
※7.21 午評
※作為一個真正的投資者應該怎樣調整自己的心態和做法?
※定向發行,公開發行,非公開發行,定向增發的區別?