引言:
邢不行的系列帖子“量化小講堂”,通過實際案例教初學者使用python進行量化投資,了解行業研究方向,希望能對大家有幫助,

前言:
巴蛇吞象,揚州跨鶴,人性之貪婪,逝者如此,來者亦然,
王朝興衰,人生起落,周期之更替,順之則昌,逆之則亡,
金融市場變化萬千,唯獨人性與周期,始終如一,
智者善以不變應萬變,量化策略亦是如此,從不變的人性和周期入手構建策略,就能經得起市場考驗,
本文就從周期角度介紹一個簡單有效、拓展性強的量化策略,

策略結果
01
股災性牛市
如果你最近(2021年1月末)有關注股市,一定會知道這個奇怪現象:

上證指數從2019年1月的2440點至今已經漲到3500點左右,漲幅高達43%,
但是很多個股反而跌破了指數在2440點時的價格:

這段時間內,雖然大部分個股在下跌,但少部分大市值藍籌股在上漲,它們在指數中權重較大,所以帶動指數一起上漲,
大盤漲得飛起,個股卻跌得要死,大家稱之為股災性牛市,

1
小市值策略
不過別看最近大市值的股票漲得好,就以為大市值股票一直很好,A股前十幾年可是小市值股票的天下,
我在2016年寫過一篇文章:《10年翻400倍的策略》(內含代碼),
該策略收益夸張,但卻不含任何水分,原理也非常簡單:每周選取市值最小的30只股票,持有一周,如此每周回圈,

如果從2007年起按照該策略交易,在2020年最高能翻600多倍,雖然最近回撤不少,但凈值依舊有400多,
有的同學覺得最近回撤那么多以及注冊制的出臺,策略已經失效了,
但是市場沒有永遠的優和差,有的只是不斷往復的周期,看看幾百年歷史的美國市場就知道了,
2
“漂亮50”慘案
從美股百年的歷史來看,小市值股票一直是漲得更多的,在學術界也有理論解釋,
但市場風格總會輪動
,在1960年末到1970年初的十年間,整個美國股市只有市值最大的50只股票在上漲,歷史上稱為“漂亮50”行情,
當時大家都在抱團買入大市值的藍籌股,比如:可口可樂、迪士尼、麥當勞、運通等,這和A股當前的狀況很像,只不過美國人買的是可樂,我們換成了茅臺,
“漂亮50”會一直獨領風騷嗎?世事無常,在1972年至1974年間,這些大型藍籌股開始集體下跌,

“漂亮50”從高點下跌百分比
其中迪士尼跌幅高達80%,跌幅最小的麥當勞也有67%,而同期標普500只跌了37%,
所以大家千萬不要覺得基金抱團的大市值藍籌股,有“護城河”就會只漲不跌,
天下大勢,分久必合合久必分,股票市場也一樣,一個風格漲久必跌,跌久必漲,都是周期而已,
作為投資者,我們不能一根筋只買大市值或小市值,更好的方法是學會如何在它們之間輪動,不論周期如何波動,只要我們一直風口潮頭就行,
下面就和大家分享一個在大小盤之間輪動的量化策略,
02
大小盤風格輪動
為了方便研究和理解,本文將用大盤指數來代表大市值股票,小盤指數來代表小市值股票,
本文以滬深300作為大盤指數,它由A股市值最大的300只股票組成,占總市值的55.9%,妥妥的大市值核心資產,
小盤指數我們選擇創業板指數,它由創業板中的100只股票組成,占總市值的9.5%,
1
策略來自市場經驗
當你長期泡在市場中,總能覺得自己發現一些了規律,比如我自己就注意到,市場走勢存在延續性,

舉例來說,上圖中2010年9月28日至30日期間,大盤前一個月漲幅優于小盤,次日依舊優于小盤,延續了之前的表現,

同理,2010年11月17日至19日期間,小盤前一個月漲幅優于大盤,次日依舊優于大盤,也延續了之前的表現,
也就是說市場存在慣性,前期漲得多的指數,后期也大概率會漲得多,
當然這只是我肉眼觀察到的現象,不一定普適,但不妨礙我嘗試著基于此構建一個量化策略,
其實很多量化策略就來自這些實盤經驗,把這些經驗數量化、規則化形成一套嚴謹的買賣邏輯,就能構建一個完整的量化策略,
2
風格輪動策略
根據市場慣性經驗,我們構建如下量化策略:
1. 交易物件:滬深300、創業板指數的ETF,前者代表大市值,后者代表小市值,
2. 篩選條件:用最近N日的漲跌幅,作為篩選條件(默認N=20,即大約為最近一個月),
3. 風格輪動:每日根據條件,選擇漲幅大的指數持有,
來舉個例子講解策略細節,

2010年9月28日開始運行策略,收盤后發現滬深300最近20天漲幅為1.08%,優于創業板,那就在次日開盤時買入滬深300的ETF,
指數無法直接交易,用ETF代替,我在之前的文章《一念之差,少賺一百萬》中介紹過幾種投資指數的方法,

次日(9月29日)收盤前,發現滬深300的漲幅依舊占優勢,那就維持滬深300的倉位不變,

時間來到11月9日,收盤前發現創業板前月的表現首次超過滬深300,我們就在當日收盤時賣掉之前持有的滬深300ETF,然后在次日開盤時買入創業板ETF,
之后都按照這樣的方法,每天收盤前計算大小盤指數前20天的漲跌幅,并在下日持有表現好的,

這樣我們就把之前關于市場的經驗轉換成了一個明確買點、賣點,可無腦執行的量化策略,
3
策略回測
那這個策略能賺錢嗎?
很多時候經驗是不可靠的,人腦不夠精確,又會帶上主觀偏差,只看想看到的東西,
想要知道這個根據經驗總結出來的策略是否有效,最好的方法,就是用歷史資料和Python代碼來驗證這個策略,看看在歷史上這個策略的表現,

運行代碼后得到結果:

回測時間從創業板指數誕生的2010年開始,至2021年1月,在扣除手續費后,策略翻了8.48倍,年化收益22.42%,遠超同期大盤(2.15倍)和小盤(3.67倍)的表現,
但美中不足的是,該策略的最大回撤高達48.33%,很多人在實盤中無法接受這么大的回撤,所以需要進行優化,
03
策略優化
1
策略分析
目前策略在收益上的表現已經不錯了,所以我們主要針對最大回撤進行優化,
想要降低回撤,最好的辦法就是回到最大回撤發生的時間,2015年6月3日至8月26日,看看當時的市場發生了什么,

當時恰逢15年股災,滬深300和創業板指數都處于下跌狀態,市場整體處于深度熊市,
我們在這段時間內挑了幾天比較典型的持倉:

6月26日小盤相對跌的少,持有大盤,5日后虧損5.26%
7月28日小盤相對跌的少,持有小盤,5日后虧損1.42%
不難發現,在市場整體下跌時,策略只是在大小盤之間選擇跌得少的買入,即使兩者中選對了,也仍然是跌,
當市場處于明顯熊市,再傻傻的按照策略操作,最多只能讓我們少虧,這明顯是不對的,
2
策略優化
據此,我們嘗試對策略做優化,
當兩個指數近20天都下跌時,我們認為市場處于熊市,所以第二天直接空倉,

新的策略能否達到預期?光憑腦子yy和嘴說是沒用的,還是要利用Python和資料進行驗證,代碼如下:

只需新增三行代碼就能達到想要的效果,新策略的結果如下:

藍線:滬深300 橙線:創業板指數 灰線:風格輪動
不僅最大回撤按照預期的從48.33%下降到29.13%,凈值也從8.48提升到了11.71,
最大回撤的時間段從2015年變為了2018年,如果你想繼續優化策略,可以去看看當時發生了什么,能不能總結出原因?
總的來說,這次優化還是很成功的,改進后的策略在風險和收益上的表現都有所提升,
3
進一步優化
此外再給大家提供一些優化思路 -- 修改策略的變數,
之前的策略用滬深300、創業板指數,但代表大盤的指數還有上證50、上證綜指等等,小盤指數也可選擇中證500或者中證1000,
與此同時,20日漲跌幅這個篩選條件,可以變成其他日漲跌幅,比如10日、30日、40日等,
這些改變在代碼中只要改幾個變數就能實作,這里我們僅將大盤指數從滬深300變為上證50,其余不變,看看策略表現如何,

藍線:滬深300 橙線:創業板指數 灰線:風格輪動
策略的年化收益率從26.21%提升到了27.61%,最大回撤也下降了2%,收益進一步提升,風險也進一步下降,

04
其他方法
本文介紹了在兩個指數之間進行輪動的量化策略,
如果我們的思路再開闊一點,其實可以將輪動的物件從指數變為其他東西,
比如在兩個自己喜歡的股票之間輪動,在白酒和券商之間輪動,在位元幣和以太坊輪動...
我可以提前透露一下,這個策略在BTC和ETH之間輪動的收益非常爆炸,本文點擊“在看”超過100,我就公布策略結果,
其實思路還可以進一步放開,我們甚至可以跳出輪動這個框架,嘗試更專業的玩法 -- 構建股指期貨多空,
關于什么是股指期貨,大家可以看我之前的文章《一念之差,少賺100萬》,運用股指期貨我們可以做多優勢指數,做空劣勢指數,

股指期貨多空組合
這樣我們的收益就完全取決于兩個指數之間的差異,整體的資金曲線也會和大盤都是無關,由于策略比較復雜,本期篇幅有限就不展開了,
關于本文如果還有其它不明白的地方,可以加我微信xbx3642溝通,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/262980.html
標籤:區塊鏈
上一篇:常見的六種哈希建構式
下一篇:我的第一個Go程式
