在兩根相鄰的K線間,若出現空白的缺口,代表行情是以跳空方式開出第二根K線,且跳空後並沒有回測缺口,如下圖為一個向下跳空缺口。
突破缺口的定義:當盤整形態確立後,從K線表示股價以一個大小不一的缺口跳空上升或下降遠離形態,突破盤局,此缺口就是表示真正的突破已經形成,行情將順著股價趨勢行進下去(註一)。因此在策略設計上,首先要能定義出盤局,再搭配一個跳空過高或破低的K線,完成進場格局。
定義盤局有很多方式,比較簡單的是趨勢技術指標ADX低於某個值一段時間,我們用均線糾結來定義(請參考本篇:PowerLanguage如何表達均線糾結),
缺口的PowerLanguage語法很簡單,由於有向上跳空跟向下跳空,要區隔處理一下,語法如下:
向上跳空:Gap_up=Iff(low>high[1],low-high[1],0);
向下跳空:Gap_down=iff(high< low[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(high< low[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. 最後簡單搭一個移動停損出場。
結論:
由於台指夜盤上限或者是海期多是近乎全天候交易,其實缺口已經很少,缺口策略放到個股上或許可以得到更好的效果。
If countif (sideway[1]
回覆刪除gap_size*AvgTrueRange(10) )有誤
請問有python跳空程式碼嗎
回覆刪除