超级MACD经典公式
原码
input: P(19,15,100), S(7,5,140), M(9,2,80);
{-----------------------☆功能开关------------------------}
{资金}
ZJ1:=DMA((H+L+C*2)/4,0.9); ZJ2:=V/((H-L)*2-ABS(C-O));
ZJ3:=IF(C>O,ZJ2*(H-L),IF(C<O,ZJ2*(H-O+(C-L)),V/2))+IF(C>O,0-ZJ2*(H-C+(O-L)),IF(C<O,0-ZJ2*(H-L),0-V/2));
ZJ4:=ZJ3/20/1.15; ZJ5:=ZJ4*0.55+REF(ZJ4,1)*0.33+REF(ZJ4,2)*0.22; ZJ6:=EMA(ZJ5,3);
{macd}
MJ_1 := EMA(CLOSE,S) - EMA(CLOSE,P);
MJ_2 := EMA(MJ_1,M);
MJ_3 := 2*(MJ_1-MJ_2);
MJ_4:=REVERSE(MJ_3)+2*WMA(WMA(MJ_3,1),5);
MJ_5:=3*MJ_4-2*SMA(MJ_4,2,1);
{形态}
低金:=CROSS(MJ_1,MJ_2) AND MJ_1<-0.1;{低金}
SA0:=COUNT(CROSS(MJ_1,MJ_2) AND MJ_2<0,21)=3;
零下二次金叉:=CROSS(MJ_3,0) and SA0;{零下二次金叉}
SA1:=COUNT(CROSS(MJ_1,MJ_2),BARSLAST(MJ_2>=0));
二金:=(CROSS(MJ_1,MJ_2) AND MJ_2<0 AND COUNT(SA1=2,21)=1)*2;{二次金叉}
SA2:=BARSLAST(REF(CROSS(MJ_1,MJ_2),1));
底背:=(REF(C,SA2+1)>C AND MJ_1>REF(MJ_1,SA2+1) AND CROSS(MJ_1,MJ_2))*3;{底背}
三全:=低金 AND 二金 AND 底背;
SA3:=BARSLAST(REF(CROSS(MJ_2,MJ_1),1));
顶背:=REF(C,SA3+1)<C AND REF(MJ_1,SA3+1)>MJ_1 AND CROSS(MJ_2,MJ_1);{顶背}
{信号}
M_C1:=EMA(C,5)/EMA(EMA(C,9),16)<=0.85 and c/ref(c,1)<1.05 and c/ref(c,1)>0.905 and V/CAPITAL*100<5;
M_C2:=MIN(ref(C,2)*0.865,ref(c,13)*0.772); M_C3:=(C-M_C2)/C<0.03; 满仓:=M_C1 and M_C3;
{估测转折股价--未来}
X:=BarsLast(Backset(ISLASTBAR,1)=1)+1;
Z_1:=REF(MJ_2,1)+((M+1)/(2*(M-1)))*REF(MJ_3,1);
Z_2:=((P-1)*(S+1)*REF(EMA(C,P),1)-(P+1)*(S-1)*REF(EMA(C,S),1)+(S+1)*(P+1)*REF(MJ_1,1))/(2*P-2*S);
Z_3:=((P-1)*(S+1)*REF(EMA(C,P),1)-(P+1)*(S-1)*REF(EMA(C,S),1)+(S+1)*(P+1)*REF(MJ_2,1))/(2*P-2*S);
Z_4:=((P-1)*(S+1)*REF(EMA(C,P),1)-(P+1)*(S-1)*REF(EMA(C,S),1)+(S+1)*(P+1)*Z_1)/(2*P-2*S);
Y_1:=(MJ_2*X+((M+1)/(2*(M-1)))*MJ_3*X);
Y_2:=((P-1)*(S+1)*EMA(C,P)*X-(P+1)*(S-1)*EMA(C,S)*X+(S+1)*(P+1)*MJ_1*X)/(2*P-2*S);
Y_3:=((P-1)*(S+1)*EMA(C,P)*X-(P+1)*(S-1)*EMA(C,S)*X+(S+1)*(P+1)*MJ_2*X)/(2*P-2*S);
Y_4:=((P-1)*(S+1)*EMA(C,P)*X-(P+1)*(S-1)*EMA(C,S)*X+(S+1)*(P+1)*Y_1)/(2*P-2*S);
{-----------------【图解模板】---------------------}
DRAWGBK(C,COLORRGB(36,68,36),COLORRGB(100,100,100),1);
{MACD}
FILLRGN(MJ_1>=MJ_2,MJ_1,MJ_2),Color689AFF;
FILLRGN(MJ_1<MJ_2,MJ_2,MJ_1),ColorFFC000;
FILLRGN(MJ_3>MJ_5,MJ_5,MJ_3),ColorFFB7FF;
FILLRGN(MJ_3<MJ_5,MJ_5,MJ_3),Color003E00;
STICKLINE(MJ_3<ref(MJ_3,1) and MJ_3<0,0,MJ_3,0,0),ColorFFCF78;{蓝}
STICKLINE(MJ_3<ref(MJ_3,1) and MJ_3>0,0,MJ_3,0,0),COLORYELLOW;{黄}
STICKLINE(MJ_3>ref(MJ_3,1) and MJ_3<0,0,MJ_3,0,0),ColorAF00AF;{紫}
STICKLINE(MJ_3>ref(MJ_3,1) and MJ_3>0,0,MJ_3,0,0),COLORRED;{红}
DIFF: MJ_1,PRECISION2,COLORWHITE;
DEA: MJ_2,PRECISION2,COLORYELLOW;
加速:2.8*(MJ_2-MJ_1),LINETHICK,PRECISION2,COLORGREEN;
PARTLINE(RANGE(BARPOS,SYSPARAM(3)-34,SYSPARAM(3)+1),加速),LINEDOT,COLORGREEN;
多头: MJ_3,LINETHICK2,PRECISION2,COLORRED;
预警:MJ_5,PRECISION2,ColorFF8900,ColorFFB500;
PARTLINE(MJ_1>=REF(MJ_1,1) AND MJ_2<REF(MJ_2,1),MJ_1),LINETHICK2,COLORMAGENTA;//粉
PARTLINE(MJ_1<REF(MJ_1,1) AND MJ_2>REF(MJ_2,1),MJ_1),LINETHICK2,COLORBLUE;//蓝
{资金}
PARTLINE(1,0),LINETHICK2,COLORWHITE;//负
PARTLINE(ZJ6>=0,0),LINETHICK2,COLORRED;//正
{形态}
DRAWTEXT(低金,DEA*0.98,'▲'),PXDN8,Color00C300;
DRAWTEXT(零下二次金叉,DEA*0.98,'▲ \n▲'),PXDN8,Color00C300;
DRAWTEXT(二金,DEA*0.98,'▲ \n▲'),PXDN8,Color00C300;
DRAWTEXT(底背,DEA*0.98,' \n \n↑'),PXDN8,COLORMAGENTA;
DRAWTEXT(三全,DEA*0.98,'▲ \n▲ \n▲'),PXDN8,COLORRED;
DRAWTEXT(顶背,DEA,'▼ \n▼'),PXUP60,ColorFF5B00;
{信号}
VERTLINE(满仓),LINEDOT,COLORGRAY;
DRAWTEXT(满仓,加速,' 第 \n 二 \n 天 \n 买 \n'),ALIGN,COLORYELLOW;
DRAWICON(满仓,MJ_1*0.96,1),ALIGN,PXDN10;//多空差:34.47 成功率:83.08%
{估测转折股价--未来}
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,2,'今日DIFF转折: '+NUMTOSTR(Z_2,2)),COLORGREEN;
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,20,'今日DEA转折: '+NUMTOSTR(Z_3,2)),COLORGREEN;
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,38,'今日MACD转折:'+NUMTOSTR(Z_4,2)),COLORGREEN;
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,94,'明日DIFF转折: '+NUMTOSTR(Y_2,2)),COLORYELLOW;
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,112,'明日DEA转折: '+NUMTOSTR(Y_3,2)),COLORYELLOW;
DRAWTEXTEX(sysparam(3)=BARPOS,0,6,130,'明日MACD转折: '+NUMTOSTR(Y_4,2)),COLORYELLOW;
换手:if(capital=0,v/sum(v,100)*100,v/FINANCE(7)),PRECISION2,LINETHICK,COLORGRAY;
涨跌幅:(C-REF(C,1))/REF(C,1)*100,PRECISION2,LINETHICK,COLORGRAY;
{取参数}
GDT2:=FINANCE(0);//报表最新日期
XXx:=STRTONUM(STRRIGHT(NUMTOSTR(FINANCE(0),0),2));//取右两位数
Nn:=IF(XXx>11 OR XXx<3,1,IF(BETWEEN(XXx,2.9,6),4,IF(BETWEEN(XXx,5.9,9),2,4/3))),LINETHICK;
市赢率:C/(FINANCE(33)*Nn),PRECISION2,LINETHICK,COLORGRAY;
市净率:C/FINANCE(34),PRECISION2,LINETHICK,COLORGRAY;