電子信箱 service [at] bituzi.com
幣圖誌首頁 facebook粉絲團 google plus google plus


程式交易策略庫-波動叢聚進場法


一般來說,當我們在做波動突破策略時,都會先入為主地給一個前提假設,那就是大波動通常是在一些小波動後會發生,然後會一直這樣重覆發生。但是事實上,大波動可能都是伴隨著發生,並不會如我們所想的有這麼好的重覆性發生。當我們在研究波動的時候,並不是在想說市場到底在往哪個方向走,其實波動率是一個用來衡量市場移動程度的函數,並不是衡量往哪走的函數。這邊提供兩種方式來尋找大波動,然我們繼續看下去。

尋找波動的方式








尋找波動的方式有兩種-
一個方式是看這根K棒的長度跟過去K棒平均的長度相比是否有顯著的增加。
另一個方式是看連續兩根K棒的收盤價的價差跟平均值是否有顯著的增加。
因為要尋找的是波動的增加,所以這邊只看比平均值大兩倍標準差以上的數值。
看到這邊是不是有點一頭霧水,獵人你到底在說什麼呀!
獵人直接用程式碼跟大家解釋可能比較容易了解。

CloseToClose=AbsValue(Close-Close[1]) ;

CTCStdDev=Average(CloseToClose,Length) +
StdDev(CloseToClose,Length)*Stdev ;

RangeStdv= Average(Range,Length)+StdDev(Range,Length)*Stdev ;

BigVolatility=CloseToClose > CTCStdDev[1] or Range > RangeStdv[1] ;

CloseToClose這個變數是要去計算連續兩根K棒收盤價的價差,
CTCStdDev這個變數是去計算CloseToClose的平均值再加上標準差的某個倍數,
是要用來當作衡量大波動的基準值。
RangeStdv這個變數是去計算K棒長度(Range)的平均值再加上標準差的某個倍數,也是要用來當作衡量大波動的基準值之一。
而Stdev是可以讓你自行設定倍數大小的參數。
最後BigVolatility就是用來判斷是否有大波動出現的變數,
當CloseToClose > CTCStdDev[1]或是Range > RangeStdv[1],就表示大波動要出現。

進場規則


從上面可以得知該如何找到大波動出現的時候,那麼進場點的選擇呢?
這邊提供原始進場策略的進場點方法給大家參考。
基本上,當大波動出現後,我們設定收盤價格加上前三根K棒長度的平均值當作作多進場點。同理,設定收盤價格減去前三根K棒長度的平均值當作作空進場點。
寫法如下:
Buy next bar at close + Average(Range,3)[1] stop ;
SellShort next bar at close - Average(Range,3)[1] stop ; 

至於出場方式的話,原始的交易策略只有設定停利出場,這部分大家就可以自由發揮了。
基本上這原來是使用在日K上的策略,這邊提供給大家參考。這個波動叢聚進場法的衡量波動方式,對許多人來說可能是很不同的概念,最後獵人把這個策略套在台指期日K上,來看看是否有賺錢的潛力。

回測結果










從上面三張績效表可以發現,這單純的策略套在台指期上還是有獲利的潛力的, 不過要說明一下,獵人套上去的策略只有單純的進場跟停利而已,所以也沒有結算出場跟停損。所以最大虧損當然就很大,大到都超過50萬了。
不過勝率倒是蠻高的,接近7成,只是進場次數有點少,平均一個多月才進場一次,可能會讓人按耐不住。如果拿來當作長線指標,可能會是不錯的參考指標。 當然這是用很簡單的原始策略測出來的結果,大家可以按自己的喜好去修改,應該可以寫出比上面績效還要好很多的程式出來。希望這星期介紹給大家的策略,可以帶給大家不同的想法,也希望大家繼續支持獵人!


有時候一個策略回測出來不一定可以直接拿來使用,但如果可以拿來當作參考的指標也是不錯的選擇。


星期二、愛用Google+的幣圖誌朋友,立刻追蹤財經知識

0 意見: