通达信KDJ顶底+9转指标公式源码
发布日期: 2025-07-15 | 阅读量:8
{MACD背离}
DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA), COLORSTICK,DRAWABOVE;
MACD金叉:=BARSLAST(REF(CROSS(DIFF,DEA),1));
MACD死叉:=BARSLAST(REF(CROSS(DEA,DIFF),1));
MACD上次金叉:=SUMBARS(REF(CROSS(DIFF,DEA),1),2);
MACD上次死叉:=SUMBARS(REF(CROSS(DEA,DIFF),1),2);
{MACD底背离}
MACD次低点:=LLV(DIFF,MACD金叉);
MACD最低点:=LLV(DIFF,MACD上次死叉);
MACD底背离:=REF(CLOSE,MACD金叉+1)>CLOSE AND MACD次低点>MACD最低点 AND CROSS(DIFF,DEA);
DRAWLINE(MACD金叉=0,DEA,MACD底背离,DEA,0),COLORRED,LINETHICK2;
{MACD顶背离}
MACD次高点:=HHV(DIFF,MACD金叉);
MACD最高点:=HHV(DIFF,MACD上次金叉);
MACD顶背离:=REF(CLOSE,MACD死叉+1)<CLOSE AND MACD次高点<MACD最高点 AND CROSS(DEA,DIFF);
DRAWLINE(MACD死叉=0,DEA,MACD顶背离,DEA,0),COLORGREEN,LINETHICK2;
红面积:SUM(MACD,BARSLAST(MACD<0))*(MACD>0),COLOR0000FF,NODRAW;
绿面积:SUM(MACD,BARSLAST(MACD>0))*(MACD<0),COLORFFFF00,NODRAW;
AA:=ROUND(REF(绿面积,1)*100);BB:=ROUND(REF(红面积,1)*100);
DRAWNUMBER(CROSS(0,MACD),0.04,ABS(BB)),COLORMAGENTA;
DRAWNUMBER(CROSS(MACD,0),-0.01,ABS(AA)),COLORGREEN;
{CCI}
TYP:=(HIGH+LOW+CLOSE)/3;
CCI:=(TYP-MA(TYP,14))/(0.015*AVEDEV(TYP,14));
{BOLL}
BOLL:=MA(CLOSE,20);
UB:=BOLL+2*STD(CLOSE,20);
LB:=BOLL-2*STD(CLOSE,20);
{KDJ}
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
PP:=CCI<-160 AND CLOSE<LB AND J<20;
QQ:=CCI>160 AND J>100;
DRAWICON(QQ,0,2);
DRAWICON(PP,0,1);
KDJ金叉:=BARSLAST(REF(CROSS(J,D),1));
KDJ死叉:=BARSLAST(REF(CROSS(D,J),1));
KDJ上次金叉:=SUMBARS(REF(CROSS(J,D),1),2);
KDJ上次死叉:=SUMBARS(REF(CROSS(D,J),1),2);
{KDJ底背离}
AAA1:=BARSLAST(REF(CROSS(J,D),1));
KDJ次低点:=LLV(J,AAA1);
KDJ最低点:=LLV(J,KDJ上次死叉);
KDJ底背离:=REF(CLOSE,AAA1+1)>CLOSE AND KDJ次低点>KDJ最低点 AND CROSS(J,D);
DRAWTEXT(KDJ底背离,MACD,'KDJ底'),COLORRED;
STICKLINE(KDJ底背离,MACD,0,2,0),COLORRED;
{KDJ顶背离}
BBB1:=BARSLAST(REF(CROSS(D,J),1));
KDJ次高点:=HHV(J,AAA1);
KDJ最高点:=HHV(J,KDJ上次金叉);
KDJ顶背离:=REF(CLOSE,BBB1+1)<CLOSE AND KDJ次高点<KDJ最高点 AND CROSS(D,J);
DRAWTEXT(KDJ顶背离,MACD,'KDJ顶'),COLORGREEN;
STICKLINE(KDJ顶背离,MACD,0,2,0),COLORGREEN;
{九转}
A1:=C>=REF(C,4);
A2:=C<REF(C,4);
A3:=C<REF(C,4) AND REF(A1,1);
T:=BARSLAST(A3),NODRAW;
M0:=(T=0 AND REFX(T=1 AND NOT(A2),1)) OR (REFX(T=2 AND NOT(A2),2)) OR (REFX(T=3 AND NOT(A2),3)) OR (REFX(T=4 AND NOT(A2),4)) OR (REFX(T=5 AND NOT(A2),5)) OR (REFX(T=6 AND NOT(A2),6)) OR (REFX(T=7 AND NOT(A2),7)) OR (REFX(T=8 AND NOT(A2),8));
M1:=T=1 AND REFX(T=2 AND NOT(A2),1) OR (REFX(T=3 AND NOT(A2),2)) OR (REFX(T=4 AND NOT(A2),3)) OR (REFX(T=5 AND NOT(A2),4)) OR (REFX(T=6 AND NOT(A2),5)) OR (REFX(T=7 AND NOT(A2),6)) OR (REFX(T=8 AND NOT(A2),7));
M2:=T=2 AND REFX(T=3 AND NOT(A2),1) OR (REFX(T=4 AND NOT(A2),2)) OR (REFX(T=5 AND NOT(A2),3)) OR (REFX(T=6 AND NOT(A2),4)) OR (REFX(T=7 AND NOT(A2),5)) OR (REFX(T=8 AND NOT(A2),6));
M3:=T=3 AND REFX(T=4 AND NOT(A2),1)OR (REFX(T=5 AND NOT(A2),2)) OR (REFX(T=6 AND NOT(A2),3)) OR (REFX(T=7 AND NOT(A2),4)) OR (REFX(T=8 AND NOT(A2),5));
M4:=T=4 AND REFX(T=5 AND NOT(A2),1) OR (REFX(T=6 AND NOT(A2),2)) OR (REFX(T=7 AND NOT(A2),3)) OR (REFX(T=8 AND NOT(A2),4));
M5:=T=5 AND REFX(T=6 AND NOT(A2),1) OR (REFX(T=7 AND NOT(A2),2)) OR (REFX(T=8 AND NOT(A2),3));
M6:=T=6 AND REFX(T=7 AND NOT(A2),1) OR (REFX(T=8 AND NOT(A2),2));
M7:=T=7 AND REFX(T=8 AND NOT(A2),1);
N0:=T=1 AND REF(T=0 AND A3,1) AND A2;
N1:=T=2 AND REF(N0,1) AND A2;
N2:=T=3 AND REF(N1,1) AND A2;
N3:=T=4 AND REF(N2,1) AND A2;
N4:=T=5 AND REF(N3,1) AND A2;
N5:=T=6 AND REF(N4,1) AND A2;
N6:=T=7 AND REF(N5,1) AND A2;
N7:=T=8 AND REF(N6,1) AND A2;
WZD:=DEA;
WZG:=DEA;
DRAWTEXT(N6 AND NOT(M7),WZD,'8'),COLORGREEN;
DRAWTEXT(N7,WZG,'9'),COLORMAGENTA;
B1:=C<=REF(C,4);
B2:=C>REF(C,4);
B3:=C>REF(C,4) AND REF(B1,1);
T1:=BARSLAST(B3),NODRAW;
M8:=(T1=0 AND REFX(T1=1 AND NOT(B2),1)) OR (REFX(T1=2 AND NOT(B2),2)) OR (REFX(T1=3 AND NOT(B2),3)) OR (REFX(T1=4 AND NOT(B2),4)) OR (REFX(T1=5 AND NOT(B2),5)) OR (REFX(T1=6 AND NOT(B2),6)) OR (REFX(T1=7 AND NOT(B2),7)) OR (REFX(T1=8 AND NOT(B2),8));
M9:=T1=1 AND REFX(T1=2 AND NOT(B2),1) OR (REFX(T1=3 AND NOT(B2),2)) OR (REFX(T1=4 AND NOT(B2),3)) OR (REFX(T1=5 AND NOT(B2),4)) OR (REFX(T1=6 AND NOT(B2),5)) OR (REFX(T1=7 AND NOT(B2),6)) OR (REFX(T1=8 AND NOT(B2),7));
M10:=T1=2 AND REFX(T1=3 AND NOT(B2),1) OR (REFX(T1=4 AND NOT(B2),2)) OR (REFX(T1=5 AND NOT(B2),3)) OR (REFX(T1=6 AND NOT(B2),4)) OR (REFX(T1=7 AND NOT(B2),5)) OR (REFX(T1=8 AND NOT(B2),6));
M11:=T1=3 AND REFX(T1=4 AND NOT(B2),1)OR (REFX(T1=5 AND NOT(B2),2)) OR (REFX(T1=6 AND NOT(B2),3)) OR (REFX(T1=7 AND NOT(B2),4)) OR (REFX(T1=8 AND NOT(B2),5));
M12:=T1=4 AND REFX(T1=5 AND NOT(B2),1) OR (REFX(T1=6 AND NOT(B2),2)) OR (REFX(T1=7 AND NOT(B2),3)) OR (REFX(T1=8 AND NOT(B2),4));
M13:=T1=5 AND REFX(T1=6 AND NOT(B2),1) OR (REFX(T1=7 AND NOT(B2),2)) OR (REFX(T1=8 AND NOT(B2),3));
M14:=T1=6 AND REFX(T1=7 AND NOT(B2),1) OR (REFX(T1=8 AND NOT(B2),2));
M15:=T1=7 AND REFX(T1=8 AND NOT(B2),1);
N8:=T1=1 AND REF(T1=0 AND B3,1) AND B2;
N9:=T1=2 AND REF(N8,1) AND B2;
N10:=T1=3 AND REF(N9,1) AND B2;
N11:=T1=4 AND REF(N10,1) AND B2;
N12:=T1=5 AND REF(N11,1) AND B2;
N13:=T1=6 AND REF(N12,1) AND B2;
N14:=T1=7 AND REF(N13,1) AND B2;
N15:=T1=8 AND REF(N14,1) AND B2;
DRAWTEXT(N14 AND NOT(M15),WZG,'8'),COLOR9900CC;
DRAWTEXT(N15 ,WZD,'9'),COLORGREEN;
DIFF:EMA(CLOSE,12) - EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA), COLORSTICK,DRAWABOVE;
MACD金叉:=BARSLAST(REF(CROSS(DIFF,DEA),1));
MACD死叉:=BARSLAST(REF(CROSS(DEA,DIFF),1));
MACD上次金叉:=SUMBARS(REF(CROSS(DIFF,DEA),1),2);
MACD上次死叉:=SUMBARS(REF(CROSS(DEA,DIFF),1),2);
{MACD底背离}
MACD次低点:=LLV(DIFF,MACD金叉);
MACD最低点:=LLV(DIFF,MACD上次死叉);
MACD底背离:=REF(CLOSE,MACD金叉+1)>CLOSE AND MACD次低点>MACD最低点 AND CROSS(DIFF,DEA);
DRAWLINE(MACD金叉=0,DEA,MACD底背离,DEA,0),COLORRED,LINETHICK2;
{MACD顶背离}
MACD次高点:=HHV(DIFF,MACD金叉);
MACD最高点:=HHV(DIFF,MACD上次金叉);
MACD顶背离:=REF(CLOSE,MACD死叉+1)<CLOSE AND MACD次高点<MACD最高点 AND CROSS(DEA,DIFF);
DRAWLINE(MACD死叉=0,DEA,MACD顶背离,DEA,0),COLORGREEN,LINETHICK2;
红面积:SUM(MACD,BARSLAST(MACD<0))*(MACD>0),COLOR0000FF,NODRAW;
绿面积:SUM(MACD,BARSLAST(MACD>0))*(MACD<0),COLORFFFF00,NODRAW;
AA:=ROUND(REF(绿面积,1)*100);BB:=ROUND(REF(红面积,1)*100);
DRAWNUMBER(CROSS(0,MACD),0.04,ABS(BB)),COLORMAGENTA;
DRAWNUMBER(CROSS(MACD,0),-0.01,ABS(AA)),COLORGREEN;
{CCI}
TYP:=(HIGH+LOW+CLOSE)/3;
CCI:=(TYP-MA(TYP,14))/(0.015*AVEDEV(TYP,14));
{BOLL}
BOLL:=MA(CLOSE,20);
UB:=BOLL+2*STD(CLOSE,20);
LB:=BOLL-2*STD(CLOSE,20);
{KDJ}
RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
J:=3*K-2*D;
PP:=CCI<-160 AND CLOSE<LB AND J<20;
QQ:=CCI>160 AND J>100;
DRAWICON(QQ,0,2);
DRAWICON(PP,0,1);
KDJ金叉:=BARSLAST(REF(CROSS(J,D),1));
KDJ死叉:=BARSLAST(REF(CROSS(D,J),1));
KDJ上次金叉:=SUMBARS(REF(CROSS(J,D),1),2);
KDJ上次死叉:=SUMBARS(REF(CROSS(D,J),1),2);
{KDJ底背离}
AAA1:=BARSLAST(REF(CROSS(J,D),1));
KDJ次低点:=LLV(J,AAA1);
KDJ最低点:=LLV(J,KDJ上次死叉);
KDJ底背离:=REF(CLOSE,AAA1+1)>CLOSE AND KDJ次低点>KDJ最低点 AND CROSS(J,D);
DRAWTEXT(KDJ底背离,MACD,'KDJ底'),COLORRED;
STICKLINE(KDJ底背离,MACD,0,2,0),COLORRED;
{KDJ顶背离}
BBB1:=BARSLAST(REF(CROSS(D,J),1));
KDJ次高点:=HHV(J,AAA1);
KDJ最高点:=HHV(J,KDJ上次金叉);
KDJ顶背离:=REF(CLOSE,BBB1+1)<CLOSE AND KDJ次高点<KDJ最高点 AND CROSS(D,J);
DRAWTEXT(KDJ顶背离,MACD,'KDJ顶'),COLORGREEN;
STICKLINE(KDJ顶背离,MACD,0,2,0),COLORGREEN;
{九转}
A1:=C>=REF(C,4);
A2:=C<REF(C,4);
A3:=C<REF(C,4) AND REF(A1,1);
T:=BARSLAST(A3),NODRAW;
M0:=(T=0 AND REFX(T=1 AND NOT(A2),1)) OR (REFX(T=2 AND NOT(A2),2)) OR (REFX(T=3 AND NOT(A2),3)) OR (REFX(T=4 AND NOT(A2),4)) OR (REFX(T=5 AND NOT(A2),5)) OR (REFX(T=6 AND NOT(A2),6)) OR (REFX(T=7 AND NOT(A2),7)) OR (REFX(T=8 AND NOT(A2),8));
M1:=T=1 AND REFX(T=2 AND NOT(A2),1) OR (REFX(T=3 AND NOT(A2),2)) OR (REFX(T=4 AND NOT(A2),3)) OR (REFX(T=5 AND NOT(A2),4)) OR (REFX(T=6 AND NOT(A2),5)) OR (REFX(T=7 AND NOT(A2),6)) OR (REFX(T=8 AND NOT(A2),7));
M2:=T=2 AND REFX(T=3 AND NOT(A2),1) OR (REFX(T=4 AND NOT(A2),2)) OR (REFX(T=5 AND NOT(A2),3)) OR (REFX(T=6 AND NOT(A2),4)) OR (REFX(T=7 AND NOT(A2),5)) OR (REFX(T=8 AND NOT(A2),6));
M3:=T=3 AND REFX(T=4 AND NOT(A2),1)OR (REFX(T=5 AND NOT(A2),2)) OR (REFX(T=6 AND NOT(A2),3)) OR (REFX(T=7 AND NOT(A2),4)) OR (REFX(T=8 AND NOT(A2),5));
M4:=T=4 AND REFX(T=5 AND NOT(A2),1) OR (REFX(T=6 AND NOT(A2),2)) OR (REFX(T=7 AND NOT(A2),3)) OR (REFX(T=8 AND NOT(A2),4));
M5:=T=5 AND REFX(T=6 AND NOT(A2),1) OR (REFX(T=7 AND NOT(A2),2)) OR (REFX(T=8 AND NOT(A2),3));
M6:=T=6 AND REFX(T=7 AND NOT(A2),1) OR (REFX(T=8 AND NOT(A2),2));
M7:=T=7 AND REFX(T=8 AND NOT(A2),1);
N0:=T=1 AND REF(T=0 AND A3,1) AND A2;
N1:=T=2 AND REF(N0,1) AND A2;
N2:=T=3 AND REF(N1,1) AND A2;
N3:=T=4 AND REF(N2,1) AND A2;
N4:=T=5 AND REF(N3,1) AND A2;
N5:=T=6 AND REF(N4,1) AND A2;
N6:=T=7 AND REF(N5,1) AND A2;
N7:=T=8 AND REF(N6,1) AND A2;
WZD:=DEA;
WZG:=DEA;
DRAWTEXT(N6 AND NOT(M7),WZD,'8'),COLORGREEN;
DRAWTEXT(N7,WZG,'9'),COLORMAGENTA;
B1:=C<=REF(C,4);
B2:=C>REF(C,4);
B3:=C>REF(C,4) AND REF(B1,1);
T1:=BARSLAST(B3),NODRAW;
M8:=(T1=0 AND REFX(T1=1 AND NOT(B2),1)) OR (REFX(T1=2 AND NOT(B2),2)) OR (REFX(T1=3 AND NOT(B2),3)) OR (REFX(T1=4 AND NOT(B2),4)) OR (REFX(T1=5 AND NOT(B2),5)) OR (REFX(T1=6 AND NOT(B2),6)) OR (REFX(T1=7 AND NOT(B2),7)) OR (REFX(T1=8 AND NOT(B2),8));
M9:=T1=1 AND REFX(T1=2 AND NOT(B2),1) OR (REFX(T1=3 AND NOT(B2),2)) OR (REFX(T1=4 AND NOT(B2),3)) OR (REFX(T1=5 AND NOT(B2),4)) OR (REFX(T1=6 AND NOT(B2),5)) OR (REFX(T1=7 AND NOT(B2),6)) OR (REFX(T1=8 AND NOT(B2),7));
M10:=T1=2 AND REFX(T1=3 AND NOT(B2),1) OR (REFX(T1=4 AND NOT(B2),2)) OR (REFX(T1=5 AND NOT(B2),3)) OR (REFX(T1=6 AND NOT(B2),4)) OR (REFX(T1=7 AND NOT(B2),5)) OR (REFX(T1=8 AND NOT(B2),6));
M11:=T1=3 AND REFX(T1=4 AND NOT(B2),1)OR (REFX(T1=5 AND NOT(B2),2)) OR (REFX(T1=6 AND NOT(B2),3)) OR (REFX(T1=7 AND NOT(B2),4)) OR (REFX(T1=8 AND NOT(B2),5));
M12:=T1=4 AND REFX(T1=5 AND NOT(B2),1) OR (REFX(T1=6 AND NOT(B2),2)) OR (REFX(T1=7 AND NOT(B2),3)) OR (REFX(T1=8 AND NOT(B2),4));
M13:=T1=5 AND REFX(T1=6 AND NOT(B2),1) OR (REFX(T1=7 AND NOT(B2),2)) OR (REFX(T1=8 AND NOT(B2),3));
M14:=T1=6 AND REFX(T1=7 AND NOT(B2),1) OR (REFX(T1=8 AND NOT(B2),2));
M15:=T1=7 AND REFX(T1=8 AND NOT(B2),1);
N8:=T1=1 AND REF(T1=0 AND B3,1) AND B2;
N9:=T1=2 AND REF(N8,1) AND B2;
N10:=T1=3 AND REF(N9,1) AND B2;
N11:=T1=4 AND REF(N10,1) AND B2;
N12:=T1=5 AND REF(N11,1) AND B2;
N13:=T1=6 AND REF(N12,1) AND B2;
N14:=T1=7 AND REF(N13,1) AND B2;
N15:=T1=8 AND REF(N14,1) AND B2;
DRAWTEXT(N14 AND NOT(M15),WZG,'8'),COLOR9900CC;
DRAWTEXT(N15 ,WZD,'9'),COLORGREEN;

指标公式逻辑介绍
1. MACD背离检测系统
1.1 顶底背离识别
底背离条件:
价格创新低但DIFF未创新低
MACD金叉确认
红色连接线标记
顶背离条件:
价格创新高但DIFF未创新高
MACD死叉确认
绿色连接线标记
1.2 能量柱分析
红绿面积:量化多空动能
数值标记:在零轴交叉处显示前周期面积绝对值
应用:面积背离辅助判断趋势衰竭
2. CCI极端信号
2.1 超买超卖阈值
买入信号:CCI<-160且价格低于布林下轨
卖出信号:CCI>160且J值>100
可视化:红色/绿色箭头标记
2.2 布林带结合
通道突破:价格突破下轨+CCI超卖构成买入组合
反向验证:J值超买区过滤假突破
3. KDJ高级应用
3.1 KDJ背离系统
底背离:
价格新低J值未新低
KDJ金叉确认
红色柱状标记+"KDJ底"文字
顶背离:
价格新高J值未新高
KDJ死叉确认
绿色柱状标记+"KDJ顶"文字
3.2 J值三色分区
危险区:>90红色
安全区:<0绿色
震荡区:0-90黄色
4. 九转序列系统
4.1 下跌九转
序列标记:8(紫色)、9(绿色)
触发条件:连续9日收盘价低于4日前价
4.2 上涨九转
序列标记:8(紫红)、9(绿色)
触发条件:连续9日收盘价高于4日前价
5. 系统核心优势
三重背离验证:MACD+KDJ+价格三重过滤
极端值量化:CCI±160明确阈值
九转序列:捕捉趋势衰竭点
多周期协同:布林中轨(20日)与KDJ(9日)配合
可视化增强:彩色箭头+数字标记关键点
6. 实战交易策略
6.1 买入机会
MACD底背离+KDJ底背离共振
CCI<-160且价格破布林下轨
下跌九转"9"出现次日
6.2 卖出信号
MACD顶背离+KDJ顶背离共振
CCI>160且J值>100
上涨九转"9"出现当日