N:=12;
M:=26;
M1:=9;
DIF:EMA(CLOSE,N)-EMA(CLOSE,M),NODRAW;
DEA:EMA(DIF,M1),NODRAW;
macd:(DIF-DEA)*2,COLORSTICK;
{多周期统计}
当红:IF(BArslAST(MacD<0),BARSLAST(MACD<0),0),NODRAW,COLORRED;
当绿:IF(BARSLAST(MACD>0),BARSLAST(MACD>0),0),NODRAW,COLORGREEN;
{MACD周值}
周DIF:="MACD.DIF#WEEK";
周DEA:="MACD.DEA#WEEK";
周MACD:=(周DIF-周DEA)*2;
周红:IF(周MACD>0,BARSLAST(crOSS(周MACD,0)),DRAWNULL)+1,COLORYELLOW,NODRAW;
周绿:IF(周MACD<0,BARSLAST(CROSS(0,周MACD)),DRAWNULL)+1,COLORCYAN,NODRAW;
{MACD月值}
月DIF:="MACD.DIF#MONTH";
月DEA:="MACD.DEA#MONTH";
月MACD:=(月DIF-月DEA)*2;
月红:IF(月MACD>0,BARSLAST(CROSS(月MACD,0)),DRAWNULL)+1,COLORRED,NODRAW;
月绿:IF(月MACD<0,BARSLAST(CROSS(0,月MACD)),DRAWNULL)+1,COLORGREEN,NODRAW;
STICKLINE(MACD>REF(MACD,1) AND MACD>0,0,MACD,1,0),COLORRED;
STICKLINE(MACD<REF(MACD,1) AND MACD>0,0,MACD,1,-1),COLORRED;
STICKLINE(MACD>REF(MACD,1) AND MACD<0,0,MACD,1,0),COLORGREEN;
STICKLINE(MACD<REF(MACD,1) AND MACD<0,0,MACD,1,-1),COLORGREEN;
ZM:=REF(MACD,BARSLAST(周红=1));
STICKLINE(MACD>ZM AND ZM>0,ZM,ZM,1,0),COLORWHITE;
DRAWBAND(DEA,RGB(250,250,0),DEA,RGB(0,0,0));
DRAWBAND(IF(DIF>DEA,DIF,DRAWNULL),RGB(250,0,0),DIF,RGB(0,0,0));
DRAWBAND(IF(周红<1,DEA,DRAWNULL),RGB(0,250,0),DEA,RGB(0,0,0));
DRAWTEXT(周红=1,0,'周'),COLORYELLOW,DRAWAbovE;
低位金叉:=CROSS(DIF,DEA) AND DIF<-0.1;
JCCOUNT:=COUNT(CROSS(DIF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=2,21)=1;
DRAWTEXT(二次金叉,DEA*0.2,'二金'),COLORWHITE;
三次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=3,60)=1;
DRAWTEXT(三次金叉,DEA*0.2,'三金'),COLORLIMAGENTA;
四次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=4,90)=1;
DRAWTEXT(四次金叉,DEA*0.2,'四金'),COLORYELLOW;
五次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=5,120)=1;
DRAWTEXT(五次金叉,DEA*0.2,'五金'),COLORBROWN;
六次金叉:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(JCCOUNT=6,150)=1;
DRAWTEXT(六次金叉,DEA*0.2,'六金'),COLORBLUE;
{MACD日线底背离}
A1:=BARSLAST(REF(CROSS(DIF,DEA),1));
底背离:=REF(CLOSE,A1+1)>CLOSE AND DIF>REF(DIF,A1+1) AND CROSS(DIF,DEA);
DRAWTEXT(底背离,DIF*0.5,'底背'),COLORRED;
{日底背画线:DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORRED,DOTLINE;}
{MACD日线顶背离}
A2:=BARSLAST(REF(CROSS(DEA,DIF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIF,A2+1)>DIF AND CROSS(DEA,DIF);
DRAWTEXT(顶背离,DIF*1.12,'顶背'),COLORGREEN;
{日顶背画线:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,DOTLINE;}
{MACD积背离}
JC:= DEA-DIF;
绿柱面积:=IF(MACD<0,SUM(MACD,BARSLAST(JC<0)),0);
红柱面积:=IF(MACD>0,SUM(MACD,BARSLAST(JC>0)),0);
本次最低价:=LLV(L,BARSLAST(JC<0));
本次最高价:=HHV(H,BARSLAST(JC>0));
X1:=IF (MACD<0,BARSLAST(CROSS(DIF,DEA)),0);
前次绿柱面积:=REF(绿柱面积,X1+1);
前次最低价:=REF(本次最低价,X1+1);
Y1:=IF((绿柱面积<0 AND Abs(绿柱面积)<ABS(前次绿柱面积) AND 本次最低价<前次最低价 ),1,0);
RS1:= MACD<0 AND REF(MACD,1)<0 AND C<前次最低价
AND ABS(绿柱面积)<ABS(前次绿柱面积) AND ABS(MACD)<ABS(REF(MACD,1));
底背驰:= IF (CROSS(DIF,DEA),REF(Y1,1),0);
DRAWTEXT(底背驰,DEA*0.8,'积底背'),COLORFF80FF;
X2:=IF (MACD>0,BARSLAST(CROSS(DEA,DIF)),0);
前次红柱面积:=REF(红柱面积,X2+1);
前次最高价:=REF(本次最高价,X2+1);
Y2:=IF((红柱面积>0 AND 红柱面积<前次红柱面积 AND 本次最高价>前次最高价 ),1,0);
RS2:= MACD>0 AND REF(MACD,1)>0 AND C>前次最高价 AND ABS(红柱面积)<ABS(前次红柱面积) AND ABS(MACD)<ABS(REF(MACD,1));
顶背驰:= IF (CROSS(DEA,DIF),REF(Y2,1),0);
DRAWTEXT(顶背驰,DEA*0.8,'积顶背'),COLORCYAN;
周K:="kdj.K#WEEK";周D:="kdJ.D#WEEK";
DRAWTEXT(CROSS(周K,周D),0,'KDJ周'),COLORYELLOW;
DRAWTEXT_FIX(1,0.02,0.06,0,'周线金叉出现在周一,周五收盘后才能确定信号是否成立'),COLORLIGRAY;