回复 110楼 的帖子
谢谢老师MACD经典源码!!!
通达信简化:由于软件输出限制只作线性表达,请老师指教!
{★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*MEMA(MEMA(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;
STICKLINE(MJ_3>REF(MJ_3,1) AND MJ_3>0,0,MJ_3,0,0),COLORRED;{红}
STICKLINE(MJ_3>REF(MJ_3,1) AND MJ_3<0,0,MJ_3,0,0),COLORAF00AF;{紫}
DIFF:MJ_1,COLORWHITE;
DEA:MJ_2,COLORYELLOW;
加速:2.8*(MJ_2-MJ_1),LINETHICK1,COLORGREEN;
多头: MJ_3,LINETHICK2,COLORRED;
预警:MJ_5,COLORFF8900,COLORFFB500;
{形态}
DRAWTEXT(低金,DEA*0.98,'低金'),COLOR00C300;
DRAWTEXT(零下二次金叉,DEA*0.98,'零下二次金叉'),COLOR00C300;
DRAWTEXT(二金,DEA*0.98,'二金'),COLOR00C300;
DRAWTEXT(底背,DEA*0.98,'底背↑'),COLORMAGENTA;
DRAWTEXT(三全,DEA*0.90,'三全'),COLORRED;
DRAWTEXT(顶背,DEA,'顶背'),COLORWHITE;
{资金}
{IF(1,0,DRAWNULL),LINETHICK2,COLORWHITE;负}
IF(ZJ6>=0,0,DRAWNULL),LINETHICK3,COLORRED;{正};
{信号}
DRAWTEXT(满仓,加速,' 明天买'),COLORYELLOW;
STICKLINE(满仓,加速,MJ_1*0.96,2,0),COLORMAGENTA;