2019年2月11日

【MultiCharts】突破缺口進場策略 (附程式碼)

在兩根相鄰的K線間,若出現空白的缺口,代表行情是以跳空方式開出第二根K線,且跳空後並沒有回測缺口,如下圖為一個向下跳空缺口。


缺口是技術分析重要一環,缺口分四種:普通缺口、突破缺口、逃逸缺口以及竭盡缺口,有關缺口理論完整論述有興趣的讀者可以自行上網查詢,本文針對較容易辨識並開發成交易策略的「突破缺口」進行介紹。

突破缺口的定義:當盤整形態確立後,從K線表示股價以一個大小不一的缺口跳空上升或下降遠離形態,突破盤局,此缺口就是表示真正的突破已經形成,行情將順著股價趨勢行進下去(註一)。因此在策略設計上,首先要能定義出盤局,再搭配一個跳空過高或破低的K線,完成進場格局。

定義盤局有很多方式,比較簡單的是趨勢技術指標ADX低於某個值一段時間,我們用均線糾結來定義(請參考本篇:PowerLanguage如何表達均線糾結),

缺口的PowerLanguage語法很簡單,由於有向上跳空跟向下跳空,要區隔處理一下,語法如下:

向上跳空:Gap_up=Iff(low>high[1],low-high[1],0);
向下跳空:Gap_down=iff(highlow[1],low[1]-high,0);

整合起來我們的突破缺口策略腳本如下:

=======================================
inputs:len1(5),Len2(10),len3(20), sidewayP(0.5),SidewayBar(5),gap_size(0.5);
vars:ma1(0),ma2(0),ma3(0),MA_H(0),MA_L(0),Sideway(0), Gap_up(0), Gap_down(0);
ma1=average(close,len1);
ma2=average(close,Len2);
ma3=average(close,len3);
MA_H=maxlist(ma1,ma2,ma3);
MA_L=minlist(ma1,ma2,ma3);
Sideway=100*(MA_H-MA_L)/ MA_L;
Gap_up=Iff(low>high[1],low-high[1],0);
Gap_down=iff(highlow[1],low[1]-high,0);

If countif (sideway[1]gap_size*AvgTrueRange(10) 
and close> MA_H and marketposition<>1 then buy next bar at market;
If countif (sideway[1]gap_size*AvgTrueRange(10) 
and close< MA_L and marketposition<>-1 then sellshort next bar at market;

if marketposition=1 then sell next bar at lowest(low,5) stop;
if marketposition=-1 then buytocover next bar at highest(high,5) stop;
=======================================

程式碼說明:
1. 均線糾結就看前文介紹。
2. 進場條件另限定缺口大小不要小於0.2倍近20根ATR,跳空的那根K棒要過前面盤整區的廂頂或廂底。
3. 最後簡單搭一個移動停損出場。

結論:
由於台指夜盤上限或者是海期多是近乎全天候交易,其實缺口已經很少,缺口策略放到個股上或許可以得到更好的效果。

※範例程式碼pla檔下載




歡迎加入LINE@
加入好友
(點擊上方圖示)


2 則留言:

  1. If countif (sideway[1]
    gap_size*AvgTrueRange(10) )有誤

    回覆刪除
  2. 請問有python跳空程式碼嗎

    回覆刪除

歡迎留言討論!