1. 程式人生 > >量化策略構建:均值迴歸模型

量化策略構建:均值迴歸模型

“ 現在已然衰朽者,將來可能重放異彩。現在備受青睞者,將來卻可能黯然失色。” 當事物發展嚴重偏離其均值時,均值會像萬有引力一樣令其迴歸。如果時間足夠長,萬物都終將回歸於其均值。正所謂:盛極必衰,否極泰來。

 

在金融學中,均值迴歸是價格偏離均價或價值一定程度後向其靠攏的規律。本質上,均值迴歸就是哲學思想中所說的『物極必反』。用大白話可以簡單地概括為 “ 漲多必跌,跌多必漲 ” 。

 

在商品期貨交易中,對於均值迴歸模型的應用場景,選擇跨期價差是非常理想的交易標的。即對不同交割期的合約同時進入低買高賣,當合約間價差過高或過低時,相應的賣出或買入價差,等價差迴歸均衡價差後,再平倉從而獲利。

 

均值迴歸模型

如上圖所示:均值迴歸模型的基礎是跨期價差的迴歸和震盪特徵。理論上,在期貨定價和期現套利的作用下,跨期合約間存在穩定的、可量化的價差關係。

 

當兩個合約的價差偏離均衡價差一定程度後,會有向均衡價差回覆的走勢,那麼,我們可以據此構造均值迴歸模型。

 

FG1809合約 - FG1805合約價差走勢圖

合約價差走勢圖

資料來源:quant.la

 

MA1809合約 - MA1805合約價差走勢圖

合約價差走勢圖

資料來源:quant.la

如上圖所示,價差通常會以其均值為中心上下波動。也就是說,當價差由於波動而偏離均值時,它將調整並重新歸於均值。那麼如果我們如果能捕捉偏離價差的迴歸,就可以從此獲利。值得注意的是:合約到期月份相差越多,跨期價差波動空間越大。

 

但如果考慮到資金的時間成本,等待價差迴歸,也是很不划算的。那麼就需要對價差均值進行重新定義,以簡單均線或自適應均線來代替均值,找到短週期的一種獲利方法。

 

在這之前,就需要引入標準差(standard deviation)的概念,通常用小寫希臘字母。σ(sigma,讀 “ 西格瑪 ”)。

 

通俗地講,一組資料的標準差就是這組資料離均值的普遍差距。標準差的計算公式為:

標準差

如果這組資料的波動較大,那麼 σ 相應也會較大;相反的,如果這組資料波動小,那麼 σ 會更接近零。

 

具體的,用滯後一段時間的價差均線作為均衡價差,以均線加上若干倍的標準差作為開倉標準和止損標準,當價差偏離超過若干個標準差後策略開倉,而偏離更多時則止損。

 

此外,由於真實套利過程中,不管是人工下單還是量化交易,套利交易無法對價差瞬時的噪聲性的偏離即時反應,所以只能捕捉一定市場內持續的偏離。

套利策略

根據如上模型原理,在判斷套利開平倉條件時,把移動均值 μ 均衡價差,k 為止損係數,μ + a * σ 與 μ - a * σ 為套利上下界構造跨期套利策略:

 

1、當 μ1 > μ + a * σ 時,價差突破套利區間上限,此時認為價差偏大,則以最近 1 分鐘價格做空價差,即熊市套利策略。

2、當 μ1 > μ + a * σ * k 時,價差突破套利區間上限至更多,此時認為價差可能會更大,則止損,熊市套利策略結束。

3、當 μ1 < μ - b * σ 時,價差突破套利區間下限,此時認為價差偏小,則以最近 1 分鐘價格做多價差,即牛市套利策略。

4、當 μ1 < μ - b * σ * k 時,價差突破套利區間下限至更多,此時認為價差可能會更小,則止損,牛市套利策略結束。

 

需要提醒的是,在不同市場環境下跨期套利價差的分佈特點不同,使用的跨期套利上下閾值也不同,a 與 b 越大,價差波動區間越大,開倉條件越苛刻,套利次數減小,但是單次套利的獲利空間增加。

 

價差成交次數分佈圖

策略圖表

資料來源:quant.la

反之 a 與 b 越小,雖然增加了套利實施的次數,但交易成本也隨之增加,單次套利收益空間縮小。

 

接下來,我們利用 BotVS 量化交易平臺進一步操作,來實現一個均值迴歸模型的例項,從而驗證我的們理論,是否能發現賺錢的機會。

 

資料準備:

我們直接使用發明者量化資料庫資料,程式碼如下:

發明者量化資料庫資料

第一行:呼叫 K 線陣列;

第二行:過濾 K 線陣列長度;

第六行:呼叫 talib 庫 BOLL 指標;

第七行:定義套利區間上限;

第八行:定義均值;

第九行:定義套利區間下限;

十行以下:計算實時價差,及其他方便後續的資料處理。

 

策略邏輯程式碼:

策略邏輯程式碼

 

利用交易訊號資料,進行模擬測試。我們設定交易引數和規則:

  • 本金:1 萬

  • 合約:MA

  • K 線週期:1 分鐘

  • 時間跨度:3 個月

  • 手續費為 5 元

  • 資料型別:模擬級 Tick

 

績效如下:

策略圖表

策略圖表

基於上述的均值迴歸模型,我們還可以分別從開平倉方式兩個角度,通過均值斜率條件,來動態的調整套利上限、下限閾值。

 

迴歸模型

如上圖,以熊市套利為例,我們通過計算下降中的均值斜率:

z = ( y2 - y1 ) / ( x2 - x1 )

 

調整後的套利上限、下限:

μ + a * σ * ( z + 1 ]()

μ - a * σ * ( z + 1 )

 

相比之前的模型的開平倉方式,調整後的策略模型,可以在套利上、下閾值上更具有靈活性。

開平倉方式

 

在不同的市場條件下,通過均值斜率動態的調整套利上限、下限閾值,可以是模型更加適應當前的市場狀態。降低因價差大幅波動,造成的止損。並且單次增加跨期套利的獲利空間。

 

策略領取在【寬客線上