程式交易在基金投資上的應用之12 BBand

By | 2017-08-11

BBand這個指標蠻多人愛用,我試著拿來用在基金波段操作上,效果也不錯。

首先還是跟大家介紹BBand的算法,請先看以下的程式碼

Input: price(numericseries), length(numericsimple), _band(numericsimple);

BollingerBand = Average(price, length) + _band * StandardDev(price, length, 1);

從這兩行code可以了解,bband就是一段區間的移動平均線加上同區間的N個標準差。

接下來就跟大家介紹我寫的波段操作腳本

input:length(20);
variable:up1(0),down1(0),mid1(0),bbandwidth(0);
up1 = bollingerband(Close, Length, 1);
down1 = bollingerband(Close, Length, -1 );
mid1 = (up1 + down1) / 2;

bbandwidth = 100 * (up1 - down1) / mid1;

if bbandwidth crosses above 1 
and GetSymbolField("tse.tw","收盤價","W")
>average(GetSymbolField("tse.tw","收盤價","W"),13)
then ret=1;

這個腳本的概念是在多頭市場當上下Band縮到極致開始放大時,就是波段的進場點。以下圖為例,台灣50在今年四月就出現過這樣的進場訊號。

081001

 

我拿這個腳本去回測我挑出來的32個單一國家及全球型單一產業的ETF,出場點設為進場後20天,回測報告如下

081002

從2010年到現在,共出現103個交易的機會,其中有64次可以獲利出場,最大連續虧損是一成左右,還在可以接受的範圍。

以最近出現訊號的印度為例

081003

BBandwith從底部回升的概念就是在尋找upband與downband之間的差距縮到極致之後的回昇。這種情沿通常是出現在區間修正或盤整結束的時候。

這個交易策略如果能夠輔以更敏銳的出場訊號,應該可以成為更好的交易策略。