通达信MACD指标(指标 副图贴图)
此指标也是借用他人的,论坛有朋友要,所以我就发出来给需要的朋友们使用。
指标具有滞后性,如有下载此指标进行操作的朋友,需要谨慎操作,指标信号不能作为实盘买卖的依据,仅供参考,盈亏自负。
{MACD副图源码:}
SHORT:=12;
LONG:=26;
MID:=9;
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID),COLOR888888;
{NOTEXT1:IF(DIF>-0.4, DIF,DRAWNULL),COLORRED;
NOTEXT2:IF(DIF>0 AND DIF<REF(DIF,1), DIF,DRAWNULL),COLORGREEN;
NOTEXT3:IF(DIF<0 AND DIF>REF(DIF,1), DIF,DRAWNULL),COLORFF00FF;
NOTEXT4:IF(DIF<0 AND DIF<REF(DIF,1), DIF,DRAWNULL),COLORWHITE;}
NOTEXT5:IF(DIF>=DEA, DIF,DRAWNULL),COLORRED;
NOTEXT6:IF(DIF<DEA, DIF,DRAWNULL),COLORWHITE;
AT1:=BARSLAST(REF(CROSS(DIF,DEA),1));
BT1:=REF(C,AT1+1)>C AND REF(DIF,AT1+1)<DIF AND CROSS(DIF,DEA);
AT2:=BARSLAST(REF(CROSS("KDJ.K"(9,3,3),"KDJ.D"(9,3,3)),1));
CT1:=BARSLAST(REF(CROSS(DEA,DIF),1));
DT1:=REF(C,CT1+1)<C AND REF(DIF,CT1+1)>DIF AND CROSS(DEA,DIF);
MACD底背:IF(BT1>0,-0.1,0),COLORRED;
MACD顶背:IF(DT1>0,0.1,0),COLOR00FF00;
STICKLINE(BT1>0,0.5*DIF,0,2,0),COLORRED;
STICKLINE(DT1>0,0.5*DIF,0,2,0),COLOR00FF00;
MACD:(DIF-DEA)*2,COLORSTICK;
STICKLINE(MACD<REF(MACD,1) AND MACD>0, 0,MACD,0,0),COLOR44FF00;
STICKLINE(MACD>REF(MACD,1) AND MACD<0, 0,MACD,0,0),COLOR0066FF;
M1:=13;
M2:=13;
A1:=REF(DIF,M1)=HHV(DIF,2*M1+1);
B1:=FILTER(A1,M1);
C1:=BACKSET(B1,M1+1);
D1:=FILTER(C1,M1);
E1:=BACKSET(ISLASTBAR,BARSLAST(D1)+1);
F1:=E1>REF(E1,1);
A2:=REF(DIF,M2)=LLV(DIF,2*M2+1);
B2:=FILTER(A2,M2);
C2:=BACKSET(B2,M2+1);
D2:=FILTER(C2,M2);
E2:=BACKSET(ISLASTBAR,BARSLAST(D2)+1);
F2:=E2>REF(E2,1);
压力线:=DRAWLINE(D1,DIF,F1,DIF,0),COLORFFFF00,DOTLINE;
支撑线:=DRAWLINE(D2,DIF,F2,DIF,0),COLOR00AAFF,DOTLINE;
G3:=FILTERX(支撑线>REF(支撑线,1) && DIF>支撑线 && REF(支撑线,1)=REF(DIF,1),2);
底抬高:=DRAWLINE(D2,DIF,G3,支撑线,0),COLORYELLOW,DOTLINE;
{画趋势线}
M:=INTPART(3*10/5);
A12:=REF(DIF,M)=HHV(DIF,2*M+1);
B12:=FILTER(A12,M);
C12:=BACKSET(B12,M+1);
D12:=FILTER(C12,M);
R112:=BACKSET(ISLASTBAR,BARSLAST(D12)+1);
S112:=R112>REF(R112,1);
AL12:=REF(DIF,M)=LLV(DIF,2*M+1);
BL12:=FILTER(AL12,M);
CL12:=BACKSET(BL12,M+1);
DL12:=FILTER(CL12,M);
RL112:=BACKSET(ISLASTBAR,BARSLAST(DL12)+1);
SL112:=RL112>REF(RL112,1);
短压线:=DRAWLINE(D12,DIF,S112,DIF,0),COLOR99FF00,DOTLINE;
短撑线:=DRAWLINE(DL12,DIF,SL112,DIF,0),COLOR0055FF,DOTLINE;
VARX2:=LLV(DEA,43);
VARX3:=DEA-(DIF-DEA);
低点线:=IF(DIF<VARX2 AND DEA=VARX2,MIN(HHV(VARX2,10),VARX3),VARX2);
VL:=REF(LOW,1);
VAR12:=(SMA(ABS(LOW-VL),13,1))/(SMA(MAX(LOW-VL,0),13,1))*100;
VAR14:=MA(VAR12,13);
VAR15:=LLV(LOW,34);
VAR18:=EMA(IF(LOW<=VAR15,VAR14,0),3);
VAR110:=SMA(SMA((CLOSE-LLV(LOW,55))/(HHV(HIGH,55)-LLV(LOW,55))*100,7,1),5,1);
VAR111:=SMA((CLOSE-LLV(LOW,55))/(HHV(HIGH,55)-LLV(LOW,55))*100,8,1)*15-VAR110*10.38;
T:=FILTER(IF(VAR111<=VAR110 AND VAR18>0,VAR18*8,0),5);
止跌:DRAWTEXT(T AND DIF<低点线,DIF*1.01,'止跌'),COLORYELLOW;
{形态}
A:=IF(CROSS(0,DEA),1,0);
A11:=IF(DIF<0 AND CROSS(DIF,DEA),1,0);
SS:=IF(A,SUM(A11,0),0);
SSB:=HHV(SS,0);
SSS:=SUM(A11,0);
W底:=SSS-SSB=2 AND SSS>REF(SSS,1);
DRAWTEXT(W底,DIF,'↖W底'),COLOR0080FF;
MACD金叉:=CROSS(MACD,DIF) AND MACD>=(0-0.05) AND MACD<=0.02;
DRAWTEXT(MACD金叉,MACD,'-MACD金叉'),COLOR00FFFF;
低位金叉:=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(二次金叉,0.01,'二次金叉'),COLOR5500FF;
AA11:=BARSLAST(REF(CROSS(DIF,DEA),1));
底背离:=REF(CLOSE,AA11+1)>CLOSE AND DIF>REF(DIF,AA11+1) AND CROSS(DIF,DEA);
底背:DRAWLINE(AA11=0,DIF,底背离,DIF,0),COLORYELLOW,LINETHICK2;
AA22:=BARSLAST(REF(CROSS(DEA,DIF),1));
顶背离:=REF(CLOSE,AA22+1)<CLOSE AND REF(DIF,AA22+1)>DIF AND CROSS(DEA,DIF);
顶背:DRAWLINE(AA22=0,DIF,顶背离,DIF,0),COLORGREEN,LINETHICK2;
DRAWTEXT(底背离,DIF*0.5,'-DIF底背'),COLOR0055FF;
DRAWTEXT(顶背离,DIF*0.5,'-DIF顶背'),COLOR99FF00;
{小周期}
{N:=3;
DIF3_6.5F:=(EMA(CLOSE,3)-(EMA(CLOSE,6)+EMA(CLOSE,7))/2);
DEA3_6.5F:=(EMA(DIF3_6.5F,3)+EMA(DIF3_6.5,2));
AA:=REF(DIF3_6.5F,N)=HHV(DIF3_6.5F,2*N+1);
CC:=FILTER(BB,N) AND DIF3_6.5F=HHV(DIF3_6.5F,N+1);
AX1:=BARSLAST(REF(CC,1));
小顶背离:=REF(CLOSE,AX1+1)<CLOSE AND REF(DIF3_6.5F,AX1+1)>DIF3_6.5F AND CC;
DRAWTEXT(小顶背离,DIF3_6.5F*1.2,'-小顶背离'),COLORGREEN;
DRAWICON(小顶背离>0,DIF3_6.5F*1.2,2);
AAA2:=REF(DIF3_6.5F,N)=LLV(DIF3_6.5F,2*N+1);
BBB2:=BACKSET(AAA2,N+1);
CCC2:=FILTER(BBB2,N) AND DIF3_6.5F=LLV(DIF3_6.5F,N+1);
AX2:=BARSLAST(REF(CCC2,1));