TR=(最高价-昨日最高价)的绝对值与(最低价-昨日最低价)的绝对值两者之间较大者。
原理
1、如果(最高价+最低价)<=(昨日最高价+昨日最低价),DMZ=0,
如果(最高价+最低价)>(昨日最高价+昨日最低价),DMZ=(最高价-昨日最高价)的绝对值与(最低价-昨日最低价)的绝对值中较大值。
2、如果(最高价+最低价)>=(昨日最高价+昨日最低价),DMF=0,同上2
3、DIZ=N个周期DMZ的和/(N个周期DMZ的和+N个周期DMF的和)
4、DIF=N个周期DMF的和/(N个周期DMF的和+N个周期DMZ的和)
5、DDI=DIZ-DIF
6、ADDI=DDI在一定周期内的加权平均
7、AD=ADDI在一定周期内的简单移动平均
指标源代码
TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)));
DMZ:=IF((HIGH+LOW)<=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DMF:=IF((HIGH+LOW)>=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));
DDI1:DIZ-DIF;
ADDI:SMA(DDI1,N1,M);
AD1:MA(ADDI,M1);
指标用法
分析DDI柱状线,由红变绿(正变负),卖出信号参考;由绿变红,买入信号参考。
用法
(1)分析DDI柱状线,由红变绿(正变负),卖出信号;由绿变红,买入信号。
(2)ADDI与AD的交叉情况以及背离情况。
指标函数的编写
TR:=MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1)));//(最高价-前一周期最高价)的绝对值与(最低价-前一周期最低价)的绝对值两者之间较大者定义为TR
DMZ:=IFELSE((HIGH+LOW)<=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));//如果(最高价+最低价)<=(前一周期最高价+前一周期最低价),DMZ返回0,否则返回TR
DMF:=IFELSE((HIGH+LOW)>=(REF(HIGH,1)+REF(LOW,1)),0,MAX(ABS(HIGH-REF(HIGH,1)),ABS(LOW-REF(LOW,1))));//如果(最高价+最低价)>=(前一周期最高价+前一周期最低价),DMF返回0,否则返回TR
DIZ:=SUM(DMZ,N)/(SUM(DMZ,N)+SUM(DMF,N));//N个周期DMZ之和与(N个周期DMZ的和+N个周期DMF的和)作比值
DIF:=SUM(DMF,N)/(SUM(DMF,N)+SUM(DMZ,N));//N个周期DMF的和与(N个周期DMF的和+N个周期DMZ的和)作比值
DDI:=DIZ-DIF;//DIZ与DIF的差值定义为DDI
ADDI:SMA(DDI,N1,M);//DDI在N1个周期内权重为M的加权平均
AD:MA(ADDI,M1);//ADDI在M1个周期内的简单移动平均
CROSS(DDI,0),BPK;//DDI上穿0线做多
CROSS(0,DDI),SPK;//DDI下穿0线做空
AUTOFILTER;
其中参数N=13,N1=30,M=10,M1=5。