【量化】均值回歸入門
本文由JoinQuant量化課堂推出,請關注官號:https://zhuanlan.zhihu.com/p/21390521
本文的難度屬於入門
均值回歸
均值回歸,又稱Mean Reversion,是在價格震蕩中博取反彈的交易思路,它是基於Poterba和Summers(1987)首先提出的一種現象,如果要用一句話總結,那就是「跌下去的遲早要漲上來」。想理解均值回歸,我們要先講一下價格的波動性。
nnnn看過K線圖的話,我們都知道股票的價格從來都不會平滑地上漲或下跌,而總是在移動的過程中上下波動,畫出一些波浪。
如果市場滿足Fama提出的市場有效性假說,那麼這種波動現象應該是不存在的,然而現實中的市場並不是完全有效的。有許多研究嘗試解釋價格波動的現象,專家們普遍認為是諸如投資熱點、對新聞的過度反應以及投資者的投機心態等非有效因素致使價格偏離了合理定價,從而造成了價格的波動。
均值回歸的理論基於以下觀測:價格的波動一般會以它的均線為中心。也就是說,當標的價格由於波動而偏離移動均線時,它將調整並重新歸於均線。那麼如果我們如果能捕捉偏離股價的回歸,就可以從此獲利。
nnnn舉例來說,下圖是一支股票的日線圖,其中紫色曲線是20日均線,藍色箭頭為在股價大幅度偏離時買入股票可以獲得的收益。
一個最簡單最簡單的策略
根據均值回歸的思路,我們認為一支股票的價格低於其均線越多的時候,它回歸的可能性就越大。因此,我們可以以一支股票的價格與其均線的偏離程度作為評估標準,並選擇買入該偏離度最高的股票。nn
那麼偏離度該如何計算呢?如果用n n n n n n n n n n n n n n n n n nn n代表現在的股價,用n n代表均線的價格,那麼這個度量是
好了,你也許有兩個問題:
1. n為什麼是均線減價格?
因為我們認為價格低於均線越多越值得買,因此用均線減去價格算出的差率越高我們認為越值得買。
2. n為什麼要除以均線?
因為價格和均線的差的單位是元,需要除以均線才可以在股票之間相互對比。比如股票A的價格是1,均線是2,股票B的價格是99,均線是100;它們的均線和價格差都是1,但很明顯按照我們的思路,股票A更值得買,這要除以均線才能體現出來。
那麼策略如下:
先決定好參數:選定股票池,以n n日移動均線作為比價基準,按每n n天為周期調換倉位,以及倉內持有的股票數量n n。
·在每個調倉日進行以下操作:
- 計算池內股票的N日移動均線;
- 計算池內所有股票價格與均線的偏離度;
- 選取偏離度最高的num_stocks支股票並進行調倉。
回測結果
以下回測都是以滬深300為股票池進行的,每次調倉選擇20支股票。
nn首先是均線長度50天,持倉50天的回測。收益和指數不相上下,並且回撤巨大。可以看出在暴跌環境中,大家一起往死里跌,均值回歸什麼的都無所謂了。
然後是均線長度20天,持倉5天。
哇,這真是,收益低不說回撤還這麼嚇人。
最後是均線長度50天,持倉20天。
算是一個可以接受的回測喲~~
策略的難點
從上面的回測可以看出,以均值回歸的思路做出的簡單策略雖然收益可觀,但實則回撤猛烈,很不穩定。通過分析不難看出,主要的問題就是,買在半山腰了。nn
既然是博取反彈,那麼難免會買在半山腰,比如在下圖K線的情況中。假設我們在那根大陰棒的底部判斷「哦,這個價格與均線偏差夠大了」,然後買了進去,那就會接著吃跌。最後價格雖然又觸碰到均線,但其實是價格在低位停留太久把均線拉了下來,實際上沒有給我們什麼收益。
所以,本策略的改進方向:一是通過定量統計分析的方法,判斷更合理的入場時機,二是在買在半山腰後的止損判定。
文中回測代碼請參見:https://www.joinquant.com/post/1608
可以克隆下來自己改哦
本文由JoinQuant量化課堂推出,版權歸JoinQuant所有,商業轉載請聯繫我們獲得授權,非商業轉載請註明出處。nn
推薦閱讀:
※成長股的奧秘,PEG選股策略研究丨礦友必讀
※BAW定價模型研究-美式期權定價模型簡介
※給Python小白看的10個使用案例,入門Python就在這裡
※【數學課堂】為什麼學線性代數
※量化策略系列教程:06技術指標MA策略