指标构成与核心信号:
1. 基础MACD:
`DIF`:短期(12日)与长期(26日)指数移动平均线的差值。
`DEA`:`DIF`的9日指数移动平均线(信号线)。
`MACD`:`(DIF-DEA)2`,以彩色柱状线显示。
2. DIF线着色:
当`DIF`线运行在`DEA`线上方时,`DIF`线显示为红色。
当`DIF`线运行在`DEA`线下方时,`DIF`线显示为白色。
3. 背离信号:
MACD底背:当价格创新低但`DIF`线未创新低,且随后`DIF`上穿`DEA`时,在零轴下方约-0.1位置标记红色小箭头。
MACD顶背:当价格创新高但`DIF`线未创新高,且随后`DIF`下穿`DEA`时,在零轴上方约0.1位置标记绿色小箭头。
DIF底背/顶背:在`DIF`线上用黄色/绿色粗线连接背离的起点和确认点,并标注文字。
4. 支撑与压力线:
压力线/支撑线:基于`DIF`的局部高点和低点,绘制长期的压力线(黄色点线)和支撑线(蓝色点线)。
短压线/短撑线:基于更短周期计算的短期压力线(绿色点线)和支撑线(深蓝点线)。
底抬高线:当支撑线出现向上抬高的趋势时,用黄色点线连接。
5. 形态与金叉信号:
W底:在`DIF`线上标注“W底”形态。
MACD金叉:在`MACD`柱状线由负转正并上穿`DIF`线时标注。
二次金叉:在零轴下方,`DIF`第二次上穿`DEA`时标注。
低位金叉:在`DIF`值低于-0.1时发生金叉,系统会标注(通过图标和“底”字提示)。
6. 小周期背离:
使用一个自定义的短周期(3,6,7)MACD计算`DIF3_65F`和`DEA3_65F`,并识别其顶背离和底背离,在`DIF`线附近标注“小顶背离”或显示图标。
7. 柱状线增强:
彩色柱状线:`MACD`柱状线本身已着色。
白柱线:在两种特定情况下绘制白色柱状线覆盖原有彩色柱:
当`MACD`柱状线值高于其前方的“前高”连线时。
当`MACD`柱状线值低于零轴,且同时低于其前方的“前低”连线时。
柱状线颜色渐变:
当`MACD`>0但正在缩短时,柱状线为淡绿色。
当`MACD`<0但正在伸长时,柱状线为深蓝色。
8. 辅助标记:
金叉/死叉图标:在`DEA`线位置,当`DIF`上穿`DEA`时标记“金叉”图标,下穿时标记“死叉”图标。
止跌:结合多种超卖条件,在`DIF`线极低位置标注“止跌”文字。
使用要点:
该指标在传统MACD基础上,叠加了多周期、多类型的背离检测(价格与DIF、价格与小周期DIF、MACD柱状线与价格)。
提供了多层级的动态支撑与压力线,用于观察趋势通道。
识别并标注了多种经典买入形态(如W底、二次金叉、低位金叉)。
通过柱状线的颜色变化和白柱覆盖,更细致地描绘了动能强度的转换。
信号密集,需结合价格走势和主要趋势进行综合判断,避免单一信号误导。
DIF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIF,9),COLOR888888;
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_65F:=(EMA(CLOSE,3)-(EMA(CLOSE,6)+EMA(CLOSE,7))/2);
DEA3_65F:=(EMA(DIF3_65F,3)+EMA(DIF3_65F,2));
AA:=REF(DIF3_65F,N)=HHV(DIF3_65F,2*N+1);
CC:=FILTER(BB,N) AND DIF3_65F=HHV(DIF3_65F,N+1);
AX1:=BARSLAST(REF(CC,1));
小顶背离:=REF(CLOSE,AX1+1)<CLOSE AND REF(DIF3_65F,AX1+1)>DIF3_65F AND CC;
DRAWTEXT(小顶背离,DIF3_65F*1.2,'-小顶背离'),COLORGREEN;
DRAWICON(小顶背离>0,DIF3_65F*1.2,2);
AAA2:=REF(DIF3_65F,N)=LLV(DIF3_65F,2*N+1);
BBB2:=BACKSET(AAA2,N+1);
CCC2:=FILTER(BBB2,N) AND DIF3_65F=LLV(DIF3_65F,N+1);
AX2:=BARSLAST(REF(CCC2,1));
小底背离:=REF(CLOSE,AX2+1)>CLOSE AND REF(DIF3_65F,AX2+1)<DIF3_65F;
{画白柱线}
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>=0;
终点:=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>0;
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>=0;
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;