来函数检测结果如下:
该公式没有未来函数
SHORT:=12;
LONG:=26;
MID:=9;
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID);
MACD:(DIF-DEA)*2,COLORSTICK;
IF(DIF>DEA,DIF,DRAWNULL)COLOR0099FF;
{0,COLORWHITE,DOTLINE;}
A1:=BARSLAST(REF(CROSS("MACD.DIF","MACD.DEA"),1));
B1:=REF(C,A1+1)>C AND REF("MACD.DIF",A1+1)<"MACD.DIF" AND CROSS("MACD.DIF","MACD.DEA");
DRAWICON(B1>0,LLV(DIF,60)*0.84,1);
DRAWTEXT(B1>0,LLV(DIF,60)*0.85,'..MACD'),COLOR9900FF;{MACD底背离}
C1:=BARSLAST(REF(CROSS("MACD.DEA","MACD.DIF"),1));
D1:=REF(C,C1+1)<C AND REF("MACD.DIF",C1+1)>"MACD.DIF" AND CROSS("MACD.DEA","MACD.DIF");
DRAWICON(D1>0,HHV(DIF,60)*0.84,2);
DRAWTEXT(D1>0,HHV(DIF,60)*0.85,'..MACD'),COLORFFCC00;{MACD顶背离}
A2:=BARSLAST(REF(CROSS("KDJ.K","KDJ.D"),1));
B2:=REF(C,A2+1)> C AND REF("KDJ.K",A2+1)<"KDJ.K" AND CROSS("KDJ.K","KDJ.D") {AND "KDJ.J"<30};
DRAWICON(B2>0,LLV(DIF,60)*0.59,1);
DRAWTEXT(B2>0,LLV(DIF,60)*0.60,'..KDJ'),COLORFF33FF;{KDJ底背离}
C2:=BARSLAST(REF(CROSS("KDJ.D","KDJ.K"),1));
D2:=REF(C,C2+1)<C AND REF("KDJ.K",C2+1)> "KDJ.K" AND CROSS("KDJ.D","KDJ.K") {AND "KDJ.J">70};
DRAWICON(D2>0,HHV(DIF,60)*0.59,2);
DRAWTEXT(D2>0,HHV(DIF,60)*0.60,'..KDJ'),COLORFFFF99;{KDJ顶背离}
A3:=BARSLAST(REF(CROSS("RSI.RSI1","RSI.RSI2"),1));
B3:=REF(C,A3+1)> C AND REF("RSI.RSI1",A3+1)<"RSI.RSI1" AND CROSS("RSI.RSI1","RSI.RSI2") {AND "RSI.RSI1"<40};
DRAWICON(B3>0,LLV(DIF,60)*0.34,1);
DRAWTEXT(B3>0,LLV(DIF,60)*0.35,'..RSI'),COLOR6699FF;{RSI底背离}
C3:=BARSLAST(REF(CROSS("RSI.RSI2","RSI.RSI1"),1));
D3:=REF(C,C3+1)<C AND REF("RSI.RSI1",C3+1)> "RSI.RSI1" AND CROSS("RSI.RSI2","RSI.RSI1") {AND "RSI.RSI1">60};
DRAWICON(D3>0,HHV(DIF,60)*0.34,2);
DRAWTEXT(D3>0,HHV(DIF,60)*0.35,'..RSI'),COLORFFCC99;{RSI顶背离}
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);
DRAWICON(底背驰,LLV(DIF,60)*0.1,1);
DRAWTEXT(底背驰,LLV(DIF,60)*0.1,'..柱'),COLOR00CCFF;{柱底背离}
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);
DRAWICON(顶背驰,HHV(DIF,60)*0.1,2);
DRAWTEXT(顶背驰,HHV(DIF,60)*0.1,'..柱'),COLORFFCCCC;{柱顶背离}
{ 以下是可能出现的变盘点,关注 }
STICKLINE(COUNT(DIF>DEA,BARSLAST(CROSS(DIF,DEA))+1)= 7,0,MACD,0.5,0),COLORFF6666;
STICKLINE(COUNT(DIF>DEA,BARSLAST(CROSS(DIF,DEA))+1)=15,0,MACD,0.5,0),COLORFF6666;
STICKLINE(COUNT(DIF>DEA,BARSLAST(CROSS(DIF,DEA))+1)=28,0,MACD,0.5,0),COLORFF6666;
STICKLINE(COUNT(DIF>DEA,BARSLAST(CROSS(DIF,DEA))+1)=36,0,MACD,0.5,0),COLORFF6666;
STICKLINE(COUNT(DIF>DEA,BARSLAST(CROSS(DIF,DEA))+1)=48,0,MACD,0.5,0),COLORFF6666;
STICKLINE(COUNT(DIF<DEA,BARSLAST(CROSS(DIF,DEA))+1)= 7,0,MACD,0.5,0),COLOR006699;
STICKLINE(COUNT(DIF<DEA,BARSLAST(CROSS(DIF,DEA))+1)=15,0,MACD,0.5,0),COLOR006699;
STICKLINE(COUNT(DIF<DEA,BARSLAST(CROSS(DIF,DEA))+1)=28,0,MACD,0.5,0),COLOR006699;
STICKLINE(COUNT(DIF<DEA,BARSLAST(CROSS(DIF,DEA))+1)=36,0,MACD,0.5,0),COLOR006699;
STICKLINE(COUNT(DIF<DEA,BARSLAST(CROSS(DIF,DEA))+1)=48,0,MACD,0.5,0),COLOR006699;
原理解析:
SHORT赋值:12
LONG赋值:26
MID赋值:9
输出
DIF:收盘价的SHORT日指数移动平均-收盘价的LONG日指数移动平均
输出
DEA:DIF的MID日指数移动平均
输出
MACD:(DIF-DEA)*2,COLORSTICK
如果D>DEA返回DIF否则返回DRAWNULL
{0,画白色,DOTLINE
}
A1赋值:上次1日前的"MACD.DIF"上穿"MACD.DEA"距今天数
B1赋值:A1+1日前的C>C AND A1+1日前的"MACD.DIF"<"MACD.DIF" AND "MACD.DIF"上穿"MACD.DEA"
DRAWICON(B1>0,60日内DIF最低值*0.84,1)
DRAWTEXT(B1>0,60日内DIF最低值*0.85,'..MACD'),COLOR9900FF
{MACD底背离}
C1赋值:上次1日前的"MACD.DEA"上穿"MACD.DIF"距今天数
D1赋值:C1+1日前的C
DRAWICON(D1>0,60日内DIF最高值*0.84,2)
DRAWTEXT(D1>0,60日内DIF最高值*0.85,'..MACD'),COLORFFCC00
{MACD顶背离}
A2赋值:上次1日前的"KDJ.K"上穿"KDJ.D"距今天数
B2赋值:A2+1日前的C> C AND A2+1日前的"KDJ.K"<"KDJ.K" AND "KDJ.K"上穿"KDJ.D" {AND "KDJ.J"<30}
DRAWICON(B2>0,60日内DIF最低值*0.59,1)
DRAWTEXT(B2>0,60日内DIF最低值*0.60,'..KDJ'),COLORFF33FF
{KDJ底背离}
C2赋值:上次1日前的"KDJ.D"上穿"KDJ.K"距今天数
D2赋值:C2+1日前的C
DRAWICON(D2>0,60日内DIF最高值*0.59,2)
DRAWTEXT(D2>0,60日内DIF最高值*0.60,'..KDJ'),COLORFFFF99
{KDJ顶背离}
A3赋值:上次1日前的"RSI.RSI1"上穿"RSI.RSI2"距今天数
B3赋值:A3+1日前的C> C AND A3+1日前的"RSI.RSI1"<"RSI.RSI1" AND "RSI.RSI1"上穿"RSI.RSI2" {AND "RSI.RSI1"<40}
DRAWICON(B3>0,60日内DIF最低值*0.34,1)
DRAWTEXT(B3>0,60日内DIF最低值*0.35,'..RSI'),COLOR6699FF
{RSI底背离}
C3赋值:上次1日前的"RSI.RSI2"上穿"RSI.RSI1"距今天数
D3赋值:C3+1日前的C
DRAWICON(D3>0,60日内DIF最高值*0.34,2)
DRAWTEXT(D3>0,60日内DIF最高值*0.35,'..RSI'),COLORFFCC99
{RSI顶背离}
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 绿柱的绝对值
AND 本次最低价<前次最低价),1,0)
RS1赋值: MACD<0 AND 1日前的MACD<0 AND C<前次最低价
AND 绿柱的绝对值
底背驰赋值:IF (DIF上穿DEA,1日前的Y1,0)
DRAWICON(底背驰,60日内DIF最低值*0.1,1)
DRAWTEXT(底背驰,60日内DIF最低值*0.1,'..柱'),COLOR00CCFF
{柱底背离}
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)
DRAWICON(顶背驰,60日内DIF最高值*0.1,2)
DRAWTEXT(顶背驰,60日内DIF最高值*0.1,'..柱'),COLORFFCCCC
{柱顶背离}
{ 以下是可能出现的变盘点,关注 }
STICKLINE(COUNT(DIF>DEA,上次DIF上穿DEA距今天数+1)= 7,0,MACD,0.5,0),COLORFF6666
STICKLINE(COUNT(DIF>DEA,上次DIF上穿DEA距今天数+1)=15,0,MACD,0.5,0),COLORFF6666
STICKLINE(COUNT(DIF>DEA,上次DIF上穿DEA距今天数+1)=28,0,MACD,0.5,0),COLORFF6666
STICKLINE(COUNT(DIF>DEA,上次DIF上穿DEA距今天数+1)=36,0,MACD,0.5,0),COLORFF6666
STICKLINE(COUNT(DIF>DEA,上次DIF上穿DEA距今天数+1)=48,0,MACD,0.5,0),COLORFF6666
STICKLINE(COUNT(DIF
STICKLINE(COUNT(DIF
STICKLINE(COUNT(DIF
STICKLINE(COUNT(DIF
STICKLINE(COUNT(DIF