A:=ma(CLOSE,17)+Abs(MA(CLOSE,17)-REF(MA(CLOSE,17),1));
B:=MA(CLOSE,17)+MA(CLOSE,17)-REF(MA(CLOSE,17),1);
分水岭:IF(MA(CLOSE,17) B,B,MA(CLOSE,17)),COLORFF00FF,LINETHICK1;
PMA:=分水岭;
DD:=分水岭 REF(分水岭,1);
IF(DD,分水岭,DRAWNULL),COLOR00FF00,LINETHICK1;
操作线:分水岭-(EMA(C,3)-分水岭),COLOR00FFFF,LINETHICK1;
S:=(PMA 操作线);
IF(S,分水岭,DRAWNULL),COLOR00FF00,POINTDOT,LINETHICK1;
PM:MA(C,5),COLORFFFFCC,LINETHICK1;
IF(PM REF(PM,1),PM,DRAWNULL),COLORRED,LINETHICK1;
IF(PM=REF(PM,1),PM,DRAWNULL),COLORRED;
IF(PM REF(PM,1),PM,DRAWNULL),COLORFF9900,LINETHICK1;
DRAWTEXT(crOSS(分水岭,操作线),分水岭-0.1,'三底背离');
A1:=BArslAst(REF(CROSS("macd.DIF","MacD.DEA"),1));
B1:=REF(C,A1+1) CANDREF("MACD.DIF",A1+1) "MACD.DIF"ANDCROSS("MACD.DIF","MACD.DEA");
DRAWTEXT(B1 0,L-0.02,'M底背离'),COLOR00FFFF;
A2:=BARSLAST(REF(CROSS(".K","kdJ.D"),1));
B2:=REF(C,A2+1) CANDREF("KDJ.K",A2+1) "KDJ.K"ANDCROSS("KDJ.K","KDJ.D");
DRAWTEXT(B2,L-0.10,'K底背离'),COLORFF00FF;
A3:=BARSLAST(REF(CROSS(".RSI1","RSI.RSI2"),1));
B3:=REF(C,A3+1) CANDREF("RSI.RSI1",A3+1) "RSI.RSI1"ANDCROSS("RSI.RSI1","RSI.RSI2");
DRAWTEXT(B3 0,L-0.18,'R底背离'),COLOR0000FF;
C1:=BARSLAST(REF(CROSS("MACD.DEA","MACD.DIF"),1));
D1:=REF(C,C1+1) CANDREF("MACD.DIF",C1+1) "MACD.DIF"ANDCROSS("MACD.DEA","MACD.DIF");
DRAWTEXT(D1 0,H+0.16,'M顶背离'),COLOR00FF00;
C2:=BARSLAST(REF(CROSS("KDJ.D","KDJ.K"),1));
D2:=REF(C,C2+1) CANDREF("KDJ.K",C2+1) "KDJ.K"ANDCROSS("KDJ.D","KDJ.K");
DRAWTEXT(D2 0,H+0.08,'K顶背离'),COLORFFFFCC;
C3:=BARSLAST(REF(CROSS("RSI.RSI2","RSI.RSI1"),1));
D3:=REF(C,C3+1) CANDREF("RSI.RSI1",C3+1) "RSI.RSI1"ANDCROSS("RSI.RSI2","RSI.RSI1");
DRAWTEXT(D3 0,H+0.04,'R顶背离'),COLORFF9900;
DIFF:(EMA(CLOSE,12)-EMA(CLOSE,26));
DEA:EMA(DIFF,9);
MACD:=2*(DIFF-DEA);
DRAWBAND(DIFF,RGB(100,300,150),DEA,RGB(100,100,300));
STICKLINE(MACD 0,0,MACD,0,1),COLORF00FF0;
STICKLINE(MACD 0,0,MACD,0,1),COLOR00FF00;
VARX1:=HHV(DEA,43);
VARX2:=LLV(DEA,43);
VARX3:=DEA-(DIFF-DEA);
高点线:IF(DIFF VARX1ANDDEA=VARX1,MAX(LLV(VARX1,10),VARX3),VARX1),COLORGREEN,LINETHICK1;
低点线:IF(DIFF VARX2ANDDEA=VARX2,MIN(HHV(VARX2,10),VARX3),VARX2),COLORGREEN,LINETHICK1;
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 =VAR110ANDVAR18 0,VAR18*8,0),5);
止跌:DRAWTEXT(TANDDIFF 低点线,DEA*1.01,'止跌'),COLORYELLOW;
公式解读:
[源码注释]通达信MACD底背离指标(选股公式)公式解读
A赋值:收盘价的17日简单移动平均+收盘价的17日简单移动平均-1日前的收盘价的17日简单移动平均的绝对值
B赋值:收盘价的17日简单移动平均+收盘价的17日简单移动平均-1日前的收盘价的17日简单移动平均
输出分水岭:如果收盘价的17日简单移动平均 B,返回B,否则返回收盘价的17日简单移动平均,COLORFF00FF,线宽为1
PMA赋值:分水岭
DD赋值:分水岭 1日前的分水岭
如果DD,返回分水岭,否则返回无效数,COLOR00FF00,线宽为1
输出操作线:分水岭-(收盘价的3日指数移动平均-分水岭),COLOR00FFFF,线宽为1
S赋值:(PMA 操作线)
如果S,返回分水岭,否则返回无效数,COLOR00FF00,POINTDOT,线宽为1
输出PM:收盘价的5日简单移动平均,COLORFFFFCC,线宽为1
如果PM 1日前的PM,返回PM,否则返回无效数,画红色,线宽为1
如果PM=1日前的PM,返回PM,否则返回无效数,画红色
如果PM 1日前的PM,返回PM,否则返回无效数,COLORFF9900,线宽为1
当满足条件分水岭上穿操作线时,在分水岭-0.1位置书写文字
A1赋值:上次1日前的"平滑异同平的DIF"上穿"平滑异同平均线的DEA"距今天数
B1赋值:A1+1日前的收盘价 CANDREF("平滑异同平均线的DIF",A1+1) "平滑异同平均线的DIF"ANDCROSS("平滑异同平均线的DIF","平滑异同平均线的DEA")
当满足条件B1 0时,在最低价-0.02位置书写文字,COLOR00FFFF
A2赋值:上次1日前的"KDJ的K"上穿"KDJ的D"距今天数
B2赋值:A2+1日前的收盘价 CANDREF("KDJ的K",A2+1) "KDJ的K"ANDCROSS("KDJ的K","KDJ的D")
当满足条件B2时,在最低价-0.10位置书写文字,COLORFF00FF
A3赋值:上次1日前的"RSI的RSI1"上穿"RSI的RSI2"距今天数
B3赋值:A3+1日前的收盘价 CANDREF("RSI的RSI1",A3+1) "RSI的RSI1"ANDCROSS("RSI的RSI1","RSI的RSI2")
当满足条件B3 0时,在最低价-0.18位置书写文字,COLOR0000FF
C1赋值:上次1日前的"平滑异同平均线的DEA"上穿"平滑异同平均线的DIF"距今天数
D1赋值:C1+1日前的收盘价 CANDREF("平滑异同平均线的DIF",C1+1) "平滑异同平均线的DIF"ANDCROSS("平滑异同平均线的DEA","平滑异同平均线的DIF")
当满足条件D1 0时,在最高价+0.16位置书写文字,COLOR00FF00
C2赋值:上次1日前的"KDJ的D"上穿"KDJ的K"距今天数
D2赋值:C2+1日前的收盘价 CANDREF("KDJ的K",C2+1) "KDJ的K"ANDCROSS("KDJ的D","KDJ的K")
当满足条件D2 0时,在最高价+0.08位置书写文字,COLORFFFFCC
C3赋值:上次1日前的"RSI的RSI2"上穿"RSI的RSI1"距今天数
D3赋值:C3+1日前的收盘价 CANDREF("RSI的RSI1",C3+1) "RSI的RSI1"ANDCROSS("RSI的RSI2","RSI的RSI1")
当满足条件D3 0时,在最高价+0.04位置书写文字,COLORFF9900
输出DIFF:(收盘价的12日指数移动平均-收盘价的26日指数移动平均)
输出DEA:DIFF的9日指数移动平均
MACD赋值:2*(DIFF-DEA)
画带状线
当满足条件MACD 时,在?和?位置之间画柱状线,宽度为?,?不为0则画空心柱.
0,0,MACD,0,1),COLORF00FF0
当满足条件MACD 时,在?和?位置之间画柱状线,宽度为?,?不为0则画空心柱.
0,0,MACD,0,1),COLOR00FF00
VARX1赋值:43日内DEA的最高值
VARX2赋值:43日内DEA的最低值
VARX3赋值:DEA-(DIFF-DEA)
输出高点线:如果DIFF ,返回?,否则返回?
VARX1ANDDEA=VARX1,10日内VARX1的最低值和VARX3的较大值,VARX1),画绿色,线宽为1
输出低点线:如果DIFF ,返回?,否则返回?
VARX2ANDDEA=VARX2,10日内VARX2的最高值和VARX3的较小值,VARX2),画绿色,线宽为1
VL赋值:1日前的最低价
VAR12赋值:(最低价-VL的绝对值的13日[1日权重]移动平均)/(最低价-VL和0的较大值的13日[1日权重]移动平均)*100
VAR14赋值:VAR12的13日简单移动平均
VAR15赋值:34日内最低价的最低值
VAR18赋值:如果最低价 ,返回?,否则返回?的?日指数移动平均
=VAR15,VAR14,0),3)
VAR110赋值:(收盘价-55日内最低价的最低值)/(55日内最高价的最高值-55日内最低价的最低值)*100的7日[1日权重]移动平均的5日[1日权重]移动平均
VAR111赋值:(收盘价-55日内最低价的最低值)/(55日内最高价的最高值-55日内最低价的最低值)*100的8日[1日权重]移动平均*15-VAR110*10.38
T赋值:如果VAR111 ,返回?,否则返回?的?日过滤
=VAR110ANDVAR18
0,VAR18*8,0),5)
输出止跌:当满足条件TANDDIFF 时,在?位置书写文字
低点线,DEA*1.01,'止跌'),画黄色