乐于分享
好东西不私藏

多空通道和钝化结构源码

多空通道和钝化结构源码

感谢一位读者朋友(LIXUQI)的打赏,因为是他提醒了我把指标代码提出来,就算是他给大家的福利。这里既是分享,也欢迎交流。

多空通道:

XA_1:=MA((IF(CLOSE>OPEN,HIGH-CLOSE,HIGH-OPEN)+IF(CLOSE>OPEN,OPEN-LOW,CLOSE-LOW))/2,60)*1.5;

短上轨:IF(Z=0,EMA(HIGH,T),WMA(HIGH,T)),COLORRED;

短下轨:IF(Z=0,EMA(LOW,T),WMA(LOW,T)),COLORGREEN;

NOTEXT短下轨0:IF(CLOSE>短下轨,短下轨,DRAWNULL),COLORRED;

NOTEXT短下轨1:IF(CLOSE<短下轨,短下轨,DRAWNULL),COLORGREEN;

NOTEXT短上轨0:IF(CLOSE>短上轨,短上轨,DRAWNULL),COLORRED;

NOTEXT短上轨1:IF(CLOSE<短上轨,短上轨,DRAWNULL),COLORGREEN;

STICKLINE(CLOSE>短上轨,短上轨,短下轨,0,0),COLORRED;

STICKLINE(CLOSE<短下轨,短上轨,短下轨,0,0),COLORGREEN;

长上轨:IF(Z=0,EMA(HIGH,TT),WMA(HIGH,TT)),COLORMAGENTA;

长下轨:IF(Z=0,EMA(LOW,TT),WMA(LOW,TT)),COLORBLUE;

NOTEXT长下轨0:IF(CLOSE>长下轨,长下轨,DRAWNULL),COLORMAGENTA;

NOTEXT长下轨1:IF(CLOSE<长下轨,长下轨,DRAWNULL),COLORBLUE;

NOTEXT长上轨0:IF(CLOSE>长上轨,长上轨,DRAWNULL),COLORMAGENTA;

NOTEXT长上轨1:IF(CLOSE<长上轨,长上轨,DRAWNULL),COLORBLUE;

STICKLINE(CLOSE>长上轨,长上轨,长下轨,0,0),COLORMAGENTA;

STICKLINE(CLOSE<长下轨,长上轨,长下轨,0,0),COLORBLUE;

DRAWKLINE(HIGH,OPEN,LOW,CLOSE);

XA_2:=CROSS(CLOSE,短上轨);

XA_3:=CROSS(短下轨,CLOSE);

XA_4:=BARSLAST(XA_2)+1;

XA_5:=BARSLAST(XA_3)+1;

XA_6:=CROSS(SUM(XA_2,XA_5),0.5);

XA_7:=CROSS(SUM(XA_3,XA_4),0.5);

XA_8:=CROSS(CLOSE,长上轨);

XA_9:=CROSS(长下轨,CLOSE);

XA_10:=BARSLAST(XA_8)+1;

XA_11:=BARSLAST(XA_9)+1;

XA_12:=CROSS(SUM(XA_8,XA_11),0.5);

XA_13:=CROSS(SUM(XA_9,XA_10),0.5);

XA_14:=IF(XA_13 AND XA_7,0,IF(XA_13,0,IF(XA_7,6,1)));

DRAWNUMBER(XA_14=6 AND 短下轨>长下轨,HIGH+XA_1*3,6),COLORMAGENTA;

DRAWNUMBER(XA_14=0 AND 短下轨>长下轨,HIGH+XA_1*3,0),COLORMAGENTA;

DRAWNUMBER(XA_6 AND 短下轨>长下轨,LOW-XA_1*3,10),COLORMAGENTA;

XA_15:=IF(XA_12 AND XA_6,10,IF(XA_12,10,IF(XA_6,4,1)));

DRAWNUMBER(XA_15=4 AND 短上轨<长上轨,LOW-XA_1*3,4),COLORMAGENTA;

DRAWNUMBER(XA_15=10 AND 短上轨<长上轨,LOW-XA_1*3,10),COLORMAGENTA;

DRAWNUMBER(XA_7 AND 短上轨<长上轨,HIGH+XA_1*3,0),COLORMAGENTA;

DRAWKLINE(HIGH,OPEN,LOW,CLOSE);

XA_16:=CLOSE>REF(CLOSE,4);

XA_17:=BARSLASTCOUNT(XA_16);

XA_18:=XA_17=9;

XA_19:=ISLASTBAR AND BETWEEN(XA_17,1,8);

XA_20:=(BACKSET(XA_18>0,9) OR BACKSET(XA_19>0,XA_17))*XA_17;

DRAWNUMBER(XA_20>0,HIGH+XA_1*2,XA_20),COLOR0080FF;

DRAWNUMBER(XA_17=9 AND HIGH>REF(HIGH,2),HIGH+XA_1*2,9),COLORGREEN;

DRAWNUMBER(XA_17=18,HIGH+XA_1*2,18),COLORYELLOW;

TD支撑线:IF(Z=1,DRAWLINE(XA_17=1,LOW,XA_17=9,REF(LOW,8),(-1)),DRAWNULL),DOTLINE,COLORMAGENTA;

XA_21:=CLOSE<REF(CLOSE,4);

XA_22:=BARSLASTCOUNT(XA_21);

XA_23:=XA_22=9;

XA_24:=ISLASTBAR AND BETWEEN(XA_22,1,8);

XA_25:=(BACKSET(XA_23>0,9) OR BACKSET(XA_24>0,XA_22))*XA_22;

DRAWNUMBER(XA_25>0,LOW-XA_1*2,XA_25),COLOR0080FF;

DRAWNUMBER(XA_22=9 AND LOW<REF(LOW,2),LOW-XA_1*2,9),COLORGREEN;

{DRAWNUMBER(XA_22=18,LOW-XA_1*2,18),COLORYELLOW;}

TD阻力线:IF(Z=1,DRAWLINE(XA_22=1,HIGH,XA_22=9,REF(HIGH,8),(-1)),DRAWNULL),DOTLINE,COLORGREEN;

DRAWICON(XA_17=9 AND (HIGH<REF(HHV(HIGH,8),1) OR CLOSE<OPEN),HIGH+XA_1*4,8);

STICKLINE(C/REF(C,1)>=1.0985   AND PERIOD==5,C,O,2,0),COLORRED;

STICKLINE(REF(CLOSE,1)/CLOSE>=1.0985  AND PERIOD==5,C,O,2,0),COLORLICYAN;

钝化结构:

DIF:100*(EMA(CLOSE,12)-EMA(CLOSE,26));

DEA:EMA(DIF,9);

MACD:(DIF-DEA)*2,COLORSTICK;

{底部结构预警}

死叉:=CROSS(DEA,DIF);

N1:=BARSLAST(死叉);{最近一次死叉的位置}

N2:=REF(BARSLAST(死叉),N1+1);{倒数第二次死叉与倒数第一次死叉的区间}

N3:=REF(BARSLAST(死叉),N2+N1+2);{倒数第三次死叉与倒数第二次死叉的区间}

CL1:=LLV(C,N1+1);{最近一次死叉后,最低收盘价}

DIFL1:=LLV(DIF,N1+1);

CL2:=REF(CL1,N1+1);{倒数第二次死叉与倒数第一次死叉之间的最低收盘价}

DIFL2:=REF(DIFL1,N1+1);

CL3:=REF(CL2,N1+1);{倒数第三次死叉与倒数第二次死叉之间的最低收盘价}

DIFL3:=REF(DIFL2,N1+1);

PDIFL2:=IF(DIFL2>0,INTPART(LOG(DIFL2))-1,INTPART(LOG(-DIFL2))-1);

MDIFL2:=INTPART(DIFL2/POW(10,PDIFL2));

PDIFL3:=IF(DIFL3>0,INTPART(LOG(DIFL3))-1,INTPART(LOG(-DIFL3))-1);

MDIFL3:=INTPART(DIFL3/POW(10,PDIFL3));

MDIFB2:=INTPART(DIF/POW(10,PDIFL2));

MDIFB3:=INTPART(DIF/POW(10,PDIFL3));

直接底背离:=(CL1<CL2 ) AND (MDIFB2>MDIFL2) AND (MACD<0 AND REF(MACD,1)<0) AND MDIFB2<=REF(MDIFB2,1);

隔峰底背离:=(CL1<CL3 AND CL3<CL2 ) AND (MDIFB3>MDIFL3) AND (MACD<0 AND REF(MACD,1)<0) AND MDIFB3<=REF(MDIFB3,1);

B:直接底背离 OR 隔峰底背离,LINETHICK0;

BG:((MDIFB2>REF(MDIFB2,1))*REF(直接底背离,1)) OR ((MDIFB3>REF(MDIFB3,1))*REF(隔峰底背离,1)),LINETHICK0;

底背离消失:=(REF(直接底背离,1) AND DIFL1<=DIFL2 ) OR (REF(隔峰底背离,1) AND DIFL1<=DIFL3);

DRAWTEXT(FILTER(B,9),(DIF+MACD),'钝化'),COLORRED;

STICKLINE(B OR BG,DIF,DEA,1,0),COLORRED;

DRAWTEXT(FILTER(底背离消失,B),(DIF+MACD),'消失'),COLORYELLOW;

DRAWTEXT(FILTER(BG,MACD>0),DIF*1.1,'结构形成'),COLORMAGENTA;

{顶部结构预警}

金叉:=CROSS(DIF,DEA);

M1:=BARSLAST(金叉);{最近一次金叉的位置}

M2:=REF(BARSLAST(金叉),M1+1);{倒数第二次金叉与倒数第一次金叉的区间}

M3:=REF(BARSLAST(金叉),M2+M1+2);{倒数第三次金叉与倒数第二次金叉的区间}

CH1:=HHV(C,M1+1);{最近一次金叉后,最高收盘价}

DIFH1:=HHV(DIF,M1+1);

CH2:=REF(CH1,M1+1);{倒数第二次金叉与倒数第一次金叉之间的最高收盘价}

DIFH2:=REF(DIFH1,M1+1);

CH3:=REF(CH2,M1+1);{倒数第三次金叉与倒数第二次金叉之间的最高收盘价}

DIFH3:=REF(DIFH2,M1+1);

PDIFH2:=IF(DIFH2>0,INTPART(LOG(DIFH2))-1,INTPART(LOG(-DIFH2))-1);

MDIFH2:=INTPART(DIFH2/POW(10,PDIFH2));

PDIFH3:=IF(DIFH3>0,INTPART(LOG(DIFH3))-1,INTPART(LOG(-DIFH3))-1);

MDIFH3:=INTPART(DIFH3/POW(10,PDIFH3));

MDIFT2:=INTPART(DIF/POW(10,PDIFH2));

MDIFT3:=INTPART(DIF/POW(10,PDIFH3));

直接顶背离:=(CH1>CH2 ) AND (MDIFT2<MDIFH2) AND (MACD>0 AND REF(MACD,1)>0) AND MDIFT2>=REF(MDIFT2,1);

隔峰顶背离:=(CH1>CH3 AND CH3>CH2 ) AND (MDIFT3<MDIFH3) AND (MACD>0 AND REF(MACD,1)>0) AND MDIFT3>=REF(MDIFT3,1);

T:直接顶背离 OR 隔峰顶背离,LINETHICK0;

TG:((MDIFT2<REF(MDIFT2,1))*REF(直接顶背离,1)) OR ((MDIFT3<REF(MDIFT3,1))*REF(隔峰顶背离,1)),LINETHICK0;

顶背离消失:=(REF(直接顶背离,1) AND DIFH1>=DIFH2 ) OR (REF(隔峰顶背离,1) AND DIFH1>=DIFH3);

DRAWTEXT(FILTER(T,9),(DIF+MACD),'钝化'),COLORGREEN;

DRAWTEXT(FILTER(顶背离消失,T),(DIF+MACD),'消失'),COLORYELLOW;

STICKLINE(T OR TG,DIF,DEA,1,0),COLORGREEN;

DRAWTEXT(FILTER(TG,MACD<0),DIF*1.02,'结构形成'),COLORGREEN;