未来函数检测结果如下:
该公式包含未来函数:#MONTH
该公式包含未来函数:#WEEK


N:=3;

M:=9;

M1:=3;

 

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;

 


原理解析:
N赋值:3
M赋值:9
M1:=3
 
输出DIF:收盘价的N日指数移动平均-收盘价的M日指数移动平均,NODRAW
输出DEA:DIF的M1日指数移动平均,NODRAW
MACD:(DIF-DEA)*2,COLORSTICK
输出{多周期统计}
当红:IF(上次MACD<0距今天数,上次MACD<0距今天数,0),NODRAW,画红色
输出当绿:IF(上次MACD>0距今天数,上次MACD>0距今天数,0),NODRAW,COLORGREEN
{MACD周值}
周DIF赋值:"MACD.DIF#WEEK"
 
周DEA赋值:"MACD.DEA#WEEK"
 
周MACD:=(周DIF-周DEA)*2
输出周红:IF(周MACD>0,上次周MACD上穿0距今天数,DRAWNULL)+1,画黄色,NODRAW
输出周绿:IF(周MACD<0,上次0上穿周MACD距今天数,DRAWNULL)+1,COLORCYAN,NODRAW
{MACD月值}
月DIF赋值:"MACD.DIF#MONTH"
 
月DEA赋值:"MACD.DEA#MONTH"
 
月MACD:=(月DIF-月DEA)*2
输出月红:IF(月MACD>0,上次月MACD上穿0距今天数,DRAWNULL)+1,画红色,NODRAW
输出月绿:IF(月MACD<0,上次0上穿月MACD距今天数,DRAWNULL)+1,COLORGREEN,NODRAW
STICKLINE(MACD>1日前的MACD AND MACD>0,0,MACD,1,0),画红色
STICKLINE(MACD<1日前的MACD AND MACD>0,0,MACD,1,-1),画红色
STICKLINE(MACD>1日前的MACD AND MACD<0,0,MACD,1,0),COLORGREEN
STICKLINE(MACD<1日前的MACD AND MACD<0,0,MACD,1,-1),COLORGREEN
ZM赋值:REF(MACD,上次周红=1距今天数)
当满足条件MACD>ZM AND ZM>0时,在ZM和ZM之间画柱状线
DRAWBAND(DEA,RGB(250,250,0),DEA,RGB(0,0,0))
如果D>DEA返回DIF否则返回DRAWNULL
如果周红<1返回DEA否则返回DRAWNULL
当满足条件周红=1时,在0和'周'位置书写文字
低位金叉赋值:DIF上穿DEA AND DIF<-0.1
 
JCCOUNT:=COUNT(DIF上穿DEA,上次DEA>=0距今天数)
 
二次金叉赋值:DIF上穿DEA AND DEA<0 AND 统计21日满足JC=2的天数=1
当满足条件二次金叉时,在DEA*0.2和'二金'位置书写文字
三次金叉赋值:DIF上穿DEA AND DEA<0 AND 统计60日满足JC=3的天数=1
当满足条件三次金叉时,在DEA*0.2和'三金'位置书写文字
四次金叉赋值:DIF上穿DEA AND DEA<0 AND 统计90日满足JC=4的天数=1
当满足条件四次金叉时,在DEA*0.2和'四金'位置书写文字
五次金叉赋值:DIF上穿DEA AND DEA<0 AND 统计120日满足JC=5的天数=1
当满足条件五次金叉时,在DEA*0.2和'五金'位置书写文字
六次金叉赋值:DIF上穿DEA AND DEA<0 AND 统计150日满足JC=6的天数=1
当满足条件六次金叉时,在DEA*0.2和'六金'位置书写文字
{MACD日线底背离}
A1:=上次1日前的DIF上穿DEA距今天数
底背离赋值:A1+1日前的收盘价>收盘价 AND DIF>A1+1日前的DIF AND DIF上穿DEA
当满足条件底背离时,在DIF*0.5和'底背'位置书写文字
输出{日底背画线:DRAWLINE(A1=0,DEA,底背离,DEA,0),画红色,DOTLINE
}
{MACD日线顶背离}
A2:=上次1日前的DEA上穿DIF距今天数
顶背离赋值:A2+1日前的收盘价<收盘价 AND A2+1日前的DIF>DIF AND DEA上穿DIF
当满足条件顶背离时,在DIF*1.12和'顶背'位置书写文字
输出{日顶背画线:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,DOTLINE
}
{MACD积背离}
JC:= DEA-DIF
绿柱面积赋值:IF(MACD<0,SUM(MACD,上次JC<0距今天数),0)
红柱面积赋值:IF(MACD>0,SUM(MACD,上次JC>0距今天数),0)
本次最低价赋值:LLV(L,上次JC<0距今天数)
本次最高价赋值:HHV(H,上次JC>0距今天数)
X1赋值:IF (MACD<0,上次DIF上穿DEA距今天数,0)
前次绿柱面积赋值:X1+1日前的绿柱面积
前次最低价赋值:X1+1日前的本次最低价
Y1赋值:IF((绿柱面积<0 AND 绿柱面积的绝对值 RS1赋值: MACD<0 AND 1日前的MACD<0 AND C<前次最低价 AND 绿柱面积的绝对值 底背驰赋值: IF (DIF上穿DEA,1日前的Y1,0)
当满足条件底背驰时,在DEA*0.8和'积底背'位置书写文字
X2赋值:IF (MACD>0,上次DEA上穿DIF距今天数,0)
前次红柱面积赋值:X2+1日前的红柱面积
前次最高价赋值:X2+1日前的本次最高价
Y2赋值:IF((红柱面积>0 AND 红柱面积<前次红柱面积 AND 本次最高价>前次最高价 ),1,0)
RS2赋值: MACD>0 AND 1日前的MACD>0 AND C>前次最高价 AND 红柱面积的绝对值 顶背驰赋值: IF (DEA上穿DIF,1日前的Y2,0)
当满足条件顶背驰时,在DEA*0.8和'积顶背'位置书写文字
周K赋值:"KDJ.K#WEEK"
周D赋值:"KDJ.D#WEEK"
DRAWTEXT(周K上穿周D,0,'KDJ周'),画黄色
当满足条件1时,在横轴0.02纵轴0.06位置书写文字
 

声明:本站所有资源,均为用户自主上传,仅作为学习交流之用,其版权归原作者或原出版社所有,本站不对所涉及的版权问题负法律责任。如有侵权,请联系我们删除!