恆溫器 Thermostat 擇時策略研究

步入量化學習艾莉絲發表於2019-01-08

一個會換擋的交易策略

恆溫器 Thermostat 擇時策略研究

前言

趨勢行情不會永遠持續下去,事實上市場大部分時間都處於震盪行情,所以才會有人希望能得到一種交易策略,既可以用在趨勢行情,也可以用在震盪行情。

潮汐指數

恆溫器 Thermostat 擇時策略研究

恆溫器 Thermostat 交易策略,就是這種設計理念,在趨勢行情中採用趨勢策略,在震盪行情中採用震盪策略。這有點像汽車換擋,而決定換擋時機的因素,則是以潮汐指數(Choppy Market Index,簡稱CMI)為評判標準。

CMI 計算公式為:收盤價減去29日前的收盤價的絕對值,然後,除以30日內的最高價減去30日內的最低價。

// CMI 指標:CMI:=ABS(C-REF(C,29))/(HHV(H,30)-LLV(L,30))*100;
複製程式碼

策略架構

恆溫器 Thermostat 擇時策略研究

一般來說 CMI 的值在0~100區間,值越大,趨勢越強。當 CMI 的值小於20時,策略認為市場處於震盪模式;當 CMI 的值大於等於20時,策略認為市場處於趨勢模式。

整個策略架構,可以簡化的寫成下面這樣:

  • 如果 CMI <
    20,執行震盪策略;

  • 如果 CMI ≥ 20,執行趨勢策略;

架構就是這麼簡單,剩下的就是把震盪策略的內容和趨勢策略的內容,填充到這個框架裡面。

震盪策略內容

震盪策略

在震盪市場中,通常存在一種現象:如果今天價格上漲的話,那麼明天的價格下跌的概率更大。而今天價格如果下跌的話,那麼明天的價格上漲的概率更大,而這也正是震盪市場的特性。

// 關鍵價格:KOD:=(H+L+C)/3;
複製程式碼

所以這裡首先定義一個關鍵價格(最高價+最低價+收盤價的平均值)。如果當前價格大於關鍵價格,那麼明天應該震盪看空。相反的,如果當前價格小於關鍵價格,那麼明天應該震盪看多。

BE:=IFELSE(C>
KOD,1,0);
SE:=IFELSE(C<
=KOD,1,0);
複製程式碼

在震盪行情中看多,只代表價格上漲的概率更大一些,並不是指價格一定就會上漲。所以把做多的閾值設定的比較低一點,把做空的閾值設定的比較高一點。

震盪看多進場:

  • 做多:最新價>
    max(開盤價+0.5*10日ATR,3日平均低價)

  • 做空:最新價≤min(開盤價-0.75*10日ATR,3日平均高價)

在震盪行情中看空,只代表價格下跌的概率更大一些,並不是指價格一定就會下跌。所以把做空的閾值設定的比較低一點,把做多的閾值設定的比較高一點。

震盪看空進場:

  • 做多:最新價>
    max(開盤價+0.75*10日ATR,3日最低價)

  • 做空:最新價≤min(開盤價-0.5*10日ATR,3日最高價)

// 定義10日ATR指標TR:=MAX(MAX((HIGH-LOW),ABS(REF(CLOSE,1)-HIGH)),ABS(REF(CLOSE,1)-LOW));
ATR10:=MA(TR,10);
複製程式碼

另外為了防止假突破,導致策略來回止損,因此加入了一個最高價與最低價3日均線濾網來避免這種情形。

// 定義最高價與最低價3日均線AVG3HI:=MA(H,3);
AVG3LO:=MA(L,3);
複製程式碼

最後計算出震盪市的進場價格:

LEP:=IFELSE(C>
KOD,O+ATR10*0.5,O+ATR10*0.75);
SEP:=IFELSE(C>
KOD,O-ATR10*0.75,O-ATR10*0.5);
LEP1:=MAX(LEP,AVG3LO);
SEP1:=MIN(SEP,AVG3HI);
複製程式碼

震盪行情平倉條件:

  • 當最新價大於最高價的3日均線時,平多;

  • 當最新價小於最低價的3日均線時,平空;

趨勢策略內容

趨勢策略

當 CMI 值大於等於20,即市場處於趨勢模式,該策略系統在趨勢模式下運用布林通道策略。首先定義布林通道:

  • 布林中軌為50日收盤價均線

  • 上軌是中軌+2倍的50日收盤價標準差

  • 下軌是中軌-2倍的 50日收盤價標準差

MA50:=MA(C,50);
UPBAND:=MA(C,50)+STD(C,50)*2;
DNBAND:=MA(C,50)-STD(C,50)*2;
複製程式碼

趨勢策略中的開倉邏輯:

  • 做多:最新價突破布林上軌

  • 做空:最新價跌破布林下軌

需要注意的是,因為震盪模式的出場是以3日高低均價為準。但是把這個標準放在趨勢模式下就不合時宜了。因此,此時的平倉方式是以當前價格與布林中軌的位置關係來判斷。

趨勢行情平倉條件:

  • 平多:當最新價小於布林中軌

  • 平空:當最新價大於布林中軌

策略原始碼

策略原始碼

附上策略原始碼連結,開啟連結直接執行:www.fmz.com/strategy/12…

回測

策略回測
策略回測

為了將回測結果儘量接近實盤交易,這裡把手續費設定為交易所的2倍,開倉和平倉各加2跳的滑點,回測的資料品種為螺紋鋼指數,交易品種為螺紋鋼主力連續。固定1手開倉。以下是在1小時級別的初步回測績效報告。

策略回測

結尾

從資金曲線和資料來看,該策略表現良好,在螺紋鋼品種回測中,除了2017年下半年有較大回撤外,整體資金曲線是穩步向上的。綜上,恆溫器策略的自動調節交易方式,為大家應對震盪行情提供了一定的思路。感興趣的讀者,可以根據自己的理解適當修改,做進一步的深入研究。

相關推薦:

[ 策略下載 ] 震盪與趨勢混合策略恆溫器策略

來源:https://juejin.im/post/5c3464efe51d4552122c8c4f

相關文章