大智慧漂亮的MACD指标公式

long:=26;

short:=12;

m:=9;

obv:=MA(SUM(IF(CLOSE>REF(CLOSE,1),vol,IF(CLOSE<REF(CLOSE,1),-VOL,0)),0)/25000,1);

DIFF:EMA(obv,SHORT) - EMA(obv,LONG);

bbdIFF:DIFF-ref(DIFF,1);

DEA : EMA(DIFF,M);

bbDEA:DEA-ref(DEA,1);

macd : 2*(DIFF-DEA), COLORstICK;

柱: 2*(DIFF-DEA);

BB柱:柱-ref(柱,1);

stickLINE(bbDIFF>0,DIFF,DEA,6,0),colorcc00ff,LINETHICK2;

STICKLINE(bbDIFF<=0,DIFF,DEA,6,0),colorff9999,LINETHICK2;

STICKLINE(bbDEA>0,DIFF,DEA,6,0),color0066ff,LINETHICK2;

STICKLINE(bbDEA<=0,DIFF,DEA,6,0),color00ff33,LINETHICK2;

STICKLINE(BB柱>0,柱,BB柱,6,0),colorcc00ff,LINETHICK1;

STICKLINE(BB柱<=0,柱,BB柱,6,0),colorff9999,LINETHICK1;

A1:=BArslAST(ref(cross("macd.diff"(12,26,9),"macd.dea"(12,26,9)),1));

B1:=ref(c,A1+1)>c and ref("macd.diff"(12,26,9),A1+1)<"macd.diff"(12,26,9) and cross("macd.diff"(12,26,9),"macd.dea"(12,26,9));

A2:=BARSLAST(ref(cross("kdj.k"(9,3,3),"kdj.d"(9,3,3)),1));

B2:=ref(c,A2+1)>c and ref("kdj.k"(9,3,3),A2+1)<"kdj.k"(9,3,3) and cross("kdj.k"(9,3,3),"kdj.d"(9,3,3));

A3:=BARSLAST(ref(cross("rsi.RSI1"(6,12,24),"RSI.RSI2"(6,12,24)),1));

B3:=ref(c,A3+1)>c and ref("RSI.RSI1"(6,12,24),A3+1)<"RSI.RSI1"(6,12,24) and cross("RSI.RSI1"(6,12,24),"RSI.RSI2"(6,12,24));

C1:=BARSLAST(ref(cross("macd.dea"(12,26,9),"macd.diff"(12,26,9)),1));

D1:=ref(c,C1+1)<c and ref("macd.diff"(12,26,9),C1+1)>"macd.diff"(12,26,9) and cross("macd.dea"(12,26,9),"macd.diff"(12,26,9));

C2:=BARSLAST(ref(cross("kdj.d"(9,3,3),"kdj.k"(9,3,3)),1));

D2:=ref(c,C2+1)<c and ref("kdj.k"(9,3,3),C2+1)>"kdj.k"(9,3,3) and cross("kdj.d"(9,3,3),"kdj.k"(9,3,3));

C3:=BARSLAST(ref(cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24)),1));

D3:=ref(c,C3+1)<c and ref("RSI.RSI1"(6,12,24),C3+1)>"RSI.RSI1"(6,12,24) and cross("RSI.RSI2"(6,12,24),"RSI.RSI1"(6,12,24));

TR := SUM(MAX(MAX(HIGH-LOW,Abs(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),14);

HD := HIGH-REF(HIGH,1);

LD := REF(LOW,1)-LOW;

PDM:= SUM(IF(HD>0 AND HD>LD,HD,0),14);

MDM:= SUM(IF(LD>0 AND LD>HD,LD,0),14);

pdi:= PDM*100/TR;

mdi:= MDM*100/TR;

C4:=BARSLAST(ref(cross(mdi,pdi),1));

D4:=ref(c,C+1)<c and ref(mdi,C4+1)>mdi and cross(mdi,pdi);

A4:=BARSLAST(ref(cross(PDI,MDI),1));

B4:=ref(c,A4+1)>c and ref(pdi,A4+1)<pdi and cross(pdi,mdi);

dmi底背:IF(B4>0,-0.1,0),COLOR0099FF,POINTDOT;

MACD底背:if(B1>0,-0.1,0),colorred,pointdot;

KDJ底背:if(B2>0,-0.1,0),colorff00ff,pointdot;

RSI底背:if(B3>0,-0.1,0),coloryellow,pointdot;

DMI顶背:IF(D4>0,0.1,0),COLORBLUE,POINTDOT;

MACD顶背:if(D1>0,0.1,0),color00ff00,pointdot;

KDJ顶背:if(D2>0,0.1,0),colorffcc66,pointdot;

RSI顶背:if(D3>0,0.1,0),colorgray,pointdot;

DRAWTEXT(B1>0,BBDIFF,'MACD底背'),colorred;

DRAWTEXT(B2>0,BBDIFF,'KDJ底背'),colorff00ff;

DRAWTEXT(B3>0,BBDIFF,'RSI底背'),coloryellow;

DRAWTEXT(d1>0,DIFF,'MACD顶背'),color00ff00;

DRAWTEXT(d2>0,DIFF,'KDJ顶背'),colorffcc66;

DRAWTEXT(d3>0,DIFF,'RSI顶背'),colorwhite;

DRAWTEXT(B4>0,BBDIFF,'DMI顶背'),color0099ff;

DRAWTEXT(D4>0,BBDIFF,'DMI顶背'),colorblue;