【量化交易策略研究】均值回歸入門
均值回歸
均值回歸,是在價格震蕩中博取反彈的交易思路,它是基于Poterba和Summers(1987)首先提出的一種現象,如果要用一句話總結,那就是“跌下去的遲早要漲上來”。想理解均值回歸,我們要先講一下價格的波動性。
看過K線圖的話,我們都知道股票的價格從來都不會平滑地上漲或下跌,而總是在移動的過程中上下波動,畫出一些波浪。
如果市場滿足Fama提出的市場有效性假說,那么這種波動現象應該是不存在的,然而現實中的市場并不是完全有效的。有許多研究嘗試解釋價格波動的現象,專家們普遍認為是諸如投資熱點、對新聞的過度反應以及投資者的投機心態等非有效因素致使價格偏離了合理定價,從而造成了價格的波動。
均值回歸的理論基于以下觀測:價格的波動一般會以它的均線為中心。也就是說,當標的價格由于波動而偏離移動均線時,它將調整并重新歸于均線。那么如果我們如果能捕捉偏離股價的回歸,就可以從此獲利。
舉例來說,下圖是一支股票的日線圖,其中紫色曲線是20日均線,黃色箭頭為在股價大幅度偏離時買入股票可以獲得的收益。
根據均值回歸的思路,我們認為一支股票的價格低于其均線越多的時候,它回歸的可能性就越大。因此,我們可以以一支股票的價格與其均線的偏離程度作為評估標準,并選擇買入該偏離度最高的股票。
那么偏離度該如何計算呢?如果用P代表現在的股價,用MA代表均線的價格,那么這個度量是 (MA-P)/MA。
好了,你也許有兩個問題:
1. 為什么是均線減價格?
因為我們認為價格低于均線越多越值得買,因此用均線減去價格算出的差率越高我們認為越值得買。
2. 為什么要除以均線?
因為價格和均線的差的單位是元,需要除以均線才可以在股票之間相互對比。比如股票A的價格是1,均線是2,股票B的價格是99,均線是100;它們的均線和價格差都是1,但很明顯按照我們的思路,股票A更值得買,這要除以均線才能體現出來。
那么策略如下:
· 先決定好參數:選定股票池,以N日移動均線作為比價基準,按每B天為周期調換倉位,以及倉內持有的股票數S。
· 在每個調倉日進行以下操作:
1. 計算池內所有股票價格與均線的偏離度;
自定義指標:(20日復權均價-后復權收盤價)/20日復權均價
2. 選取偏離度最高的S支股票并進行調倉;
按股票池為滬深a股(排除ST股),取20日均線,1日調倉,持股數為10只,回測時間從(07年1月7日-至今)回測結果如下圖
按股票池為滬深a股(排除ST股),取20日均線,5日調倉,持股數為10只,回測時間從(07年1月7日-至今),回測結果如下圖
我們發現只調整調倉周期,其他設置不變的情況下,1日調倉比5日調倉的收益表現更好,但總體都是能跑贏滬深300。
策略的難點
從上面的回測可以看出,以均值回歸的思路做出的簡單策略雖然收益可觀,但實則回撤猛烈,很不穩定。通過分析不難看出,主要的問題就是,買在半山腰了。(如下圖所示)
既然是博取反彈,那么難免會買在半山腰,比如在下圖K線的情況中。假設我們在那根大陰棒的底部判斷“哦,這個價格與均線偏差夠大了”,然后買了進去,那就會接著吃跌。最后價格雖然又觸碰到均線,但其實是價格在低位停留太久把均線拉了下來,實際上沒有給我們什么收益。
在這里探討的主要是給大家一個思路,有興趣的同學,可以在這個基礎上進一步的去研究。