【量化課堂】羊駝交易系統
聽說我們的神獸草泥馬,哦不,羊駝,能選股?
美國「舊金山紀事報」曾做過大猩猩選股實驗,讓大猩猩隨機挑選出5隻股票。發現這個股票組合比《華爾街日報》8位知名分析師精心計算分析挑選的5隻股票組合表現還好!2014年甘肅衛視的《馬上知道》欄目中,節目組讓羊駝隨機選擇一堆股票進行持倉,然後每天賣掉持有的股票中收益率最差的一隻,再買入羊駝隨機選擇的一隻。結果也得到了很可觀的收益率!是不是很神奇!
稍加思考,我們可以發現其實這是一個將動量因子和遺傳演算法(這是啥?)相結合的策略。聽上去很高深的樣子,別急,我們先來看看什麼是遺傳演算法。
物競天擇,適者生存
達爾文進化論認為,生物之間存在著生存爭鬥,適應者生存下來,不適者則被淘汰,這就是自然的選擇。而股票市場中也存在這樣一種選擇,投資者就是大自然。投資者偏好高收益股票,厭惡低收益股票。於是,高收益股票生存下來,低收益股票被淘汰。羊駝演算法,就是在一輪輪的競爭中,剔除表現最差的股票,保留表現優異的股票,讓優良的基因得以傳承。這個表現呢,就用過去一段時間的收益率(動量因子)來刻畫。
羊駝嘛,就羊駝嘛
繞了這麼大一個圈子,終於到了我們的主題。
羊駝策略,簡單來說就是無腦選股,周期性調倉——每次剔除收益率最差的n支股票,買入隨機選擇的n支。為了讓我們的策略是可復現的,我們選擇用歷史收益率最低的股票來代替隨機選股,邏輯嘛:根據均值回歸的思路,我們買入前期跌幅最大的股票並期待它們的走勢會反轉。在一個調倉周期之後,當期反轉力度最強的股票會被留下,讓它繼續升值;而反轉力度最差的會被賣掉,換成股票池裡跌幅最大的。當然,如果持有的股票不僅是持倉內跌幅最大的,並且還是全股票池跌幅最大的,那還是拿著不動吧。
所以這是一個結合動量和反轉的策略,好像有點不倫不類的樣子吧,但是它有收益呀有收益!為什麼不用動量的方法選股呢你問。我們試了,哈哈哈哈… 在反覆調參之後勉強可以跑平大盤!
策略實現
1.設置參數,包括股票池,調倉周期 holdingPeriod (代碼中為tc),收益率計算周期 holdingPeriod (代碼中為N),每次持倉股票數目為 num_stocks ,每次換倉換股數量 change_No等。
2.計算股票池和持倉中所有股票的上一周期的收益率:
3.將可行股票池內的股票按照上一周期(returnPeriod)收益率排序。將目前持倉股票按照上一周期(holdingPeriod)收益率排序。
4.賣出當前持倉中收益率最低的 change_No 支股票,賣出股票得到的現金和原來庫存現金等金額買入回測期收益排名最差的 change_No 支股票。如果持倉中的某支股票在持倉中排在收益率最差 change_No 中,同時又在所有可行股票池最差收益率排名 change_No 中,則僅調倉不換股。
5.每 holdingPeriod 天進行 Rebalance ,調整持倉中股票到手中所有股票市值/ num_stocks 。
對應參數選擇為持股20支,每次換取2隻,回測期60天,調倉期60天,從2008年10月開始。股票池是滬深300。這個策略還是有比較穩定的超額收益的。
回測結果與改進空間:
1、 以回測期內收益最低購買是均值回歸的思想,但是我們還可以結合各股其他指標判斷來更精準地選擇股票。
2、 本策略中收益走勢與大盤較為一致,可以結合大盤走勢分析進行擇時,避免熊市帶來的虧損;當然也可以賣空股指期貨進行對沖。函數和變數說明書:
函數說明書
變數說明書
到JoinQuant查看策略並與作者交流討論:【量化課堂】羊駝交易系統
推薦閱讀:
※1.拓撲的引入
※TED最近的"愛情數學"中提到的 最優停止論 的37%是如何計算的?
※蘇聯數學體系、歐洲數學體系、美國數學體系它們之間的異同點是什麼呢?