通达信公式 小鱼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));
小底背离:=REF(CLOSE,AX2+1) CLOSE AND REF(DIF3_6.5F,AX2+1) DIF3_6.5F;
{画白柱线}
VA1:=HHVBARS(MACD,BARSLAST(MACD 0)+1);
VA2:=CROSS(BACKSET(CROSS(0,MACD),REF(VA1,1)+2),0.5);
QG:=CROSS(BACKSET(CROSS(0,MACD) OR (ISLASTBAR AND MACD 0),REF(VA1,1)+2),0.5);
前高:=DRAWLINE(VA2,MACD,REF(VA2,1),REF(MACD,1),1),COLORMAGENTA;
VA3:=LLVBARS(MACD,BARSLAST(MACD 0)+1);
VA4:=CROSS(BACKSET(CROSS(MACD,0),REF(VA3,1)+2),0.5);
前低:=DRAWLINE(VA4,MACD,REF(VA4,1),REF(MACD,1),1);
BD:=BARSLAST(FILTERX(CROSS(0,MACD),BARSCOUNT(C)));
BDTJ:=IF(MACD 0,FILTERX(MACD=LLV(MACD,BARSLAST(MACD 0)),
BARSCOUNT(C)),DRAWNULL);
TSBDTJ:=BARSLAST(BDTJ);
BDZH:=FILTERX(MACD CONST(LLV(MACD,BD+1)),BARSCOUNT(C));
BDTS:=BARSLAST(BDZH);
本低:=IF(BD+1 =1,CONST(LLV(MACD,BD+1)),DRAWNULL);
BDCL:=CROSS(COUNT(CROSS(MACD 本低/2 AND MACD 0,0.5),TSBDTJ)=1,0.5) AND TSBDTJ
终点:=IF(ISLASTBAR AND MACD 0 AND MACD=HHV(MACD,BARSLAST(MACD 0)),1,
IF(FILTERX(QG,BARSCOUNT(C)),2,DRAWNULL));
UU:=(终点=1 OR 终点=2) AND MACD
ZZ:=FILTERX(UU,BARSCOUNT(C));
本高:=DRAWLINE(ZZ,MACD,REF(ZZ,1),REF(MACD,1),1),COLORWHITE;
WQG:=CROSS(COUNT(CROSS(MACD 本高/2 AND MACD 0,0.5),ZZ)=1,0.5) AND ZZ
STICKLINE(MACD 前高,MACD,前高,0,0),COLORFFFFFF;
STICKLINE(MACD 0 AND MACD 前低 AND 前低 0,MACD,前低,0,0),COLORFFFFFF;
DRAWICON(CROSS(DIF,DEA),DEA,1);
DRAWICON(CROSS(DEA,DIF),DEA,2);
底:ABS((CROSS( MACD.DIF , MACD.DEA ) MACD.DEA =-0.07)* MACD.DIF )*1.50,COLORLIMAGENTA;
DRAWTEXT(ABS(底) 0,底*1.20,'底'),COLORYELLOW;