EasyTrader ArtNo 202
首先我們要尋找通道寬度向價格趨近(壓縮)的時機,在布林通道壓縮噴出策略這篇曾經介紹了利用布林通道壓縮後的持續時間作為進場的參考,這裡我會使用一個 BullBeater 的指標來表示,它是將布林通道的寬度用直條圖劃出來,再搭配最近四根K棒振幅平均值的 1.5倍作參考線,當參考線大於通道寬度時就可以定義目前市場是低波動或是橫盤的時期
{ BullBeater 指標 }
Input: Length(9), SDev(2), Fct(1.5);
Vars: TBB(0), BBB(0);
TBB = BollingerBand(C,Length, SDev);
BBB = BollingerBand(C, Length, -SDev);
Plot1( TBB - BBB, "BBand Diff" );
Plot2( Average( Range, 4) * Fct, "Min" );
此外當市場進入盤整期時,我們可以利用 RSI的值來觀察目前市場是超買或超賣狀態,如果此刻 RSI值超過 55 ,那麼可以考慮市場價格有下跌的傾向,可以先在通道上緣放一多單,相反的如果RSI值低於 45 ,那麼可以考慮市場價格有上漲的傾向,可以先在通道下緣放一空單。
系統參數與變數宣告
Input: Length(9), SDev(2), OSold(45), OBought(55);
Vars: TBB(0), BBB(0), StopPrice(0), TradeTime(false), OS(false), OB(false);
進場準備
TBB = BollingerBand(Close,Length, SDev);
BBB = BollingerBand(Close, Length, -SDev);
Condition1 = (TBB-BBB) < 1.5*Average(Range,4)
OB = RSI(Close,4) > OBought;
OS = RSI(Close,4) < OSold;
作多進場邏輯
if Condition1 and OS then Buy next bar at TBB stop ;
作空進場邏輯
if Condition1 and OB then Sell next bar at BBB stop ;
進場規則已經有了,那麼出場規則呢 ?
當手中建立多單部位後,先以進場當根K棒低點減去最近四根K棒振幅平均值作為出場點初始值,然後持倉每過一根K棒,我們會將當根K棒的低點與前一個出場點差值的1/3 ,加上出場價位,成為新的出場點。
{ 多單出場 }
if MP = 1 and MP[1] <> 1 then StopPrice = Low - Average(range,4);
If MP = 1 then begin
exitlong next bar at stopprice stop;
stopprice = stopprice + (low-stopprice)/3;
end;
反之,當手中建立空單部位後,先以進場當根K棒高點加上最近四根K棒振幅平均值作為出場點初始值,然後持倉每過一根K棒,我們會將出場價位減去當根K棒的高點與前一個出場點差值的1/3 ,成為新的出場點。
{ 空單出場 }
if MP = -1 and MP[1] <> -1 then
StopPrice = High + Average(range,4);
If MP = -1 then begin
exitshort ("parashort") next bar at stopprice stop;
stopprice = stopprice - (stopprice-high)/3;
end;
以下測試為加上結算日與利用隨機參數方式對變數與進場價格作了修正,可以看出在幾個不同週期的 MDD 表現都還不錯
台指期 日K 多空留倉 交易週期 2004/8/31~ 2014/8/29 交易成本 1200
沒有留言:
張貼留言