DMI指标计算 DMI指标DMI指标又叫动向指标或趋向指标,其全称叫“Directional Movement Index,简称DMI”,也是由美国技术分析大师威尔斯·威尔德(Wells Wilder)所创造的,是一种中长期技术分析方法。 原理: 1、 X=(最高价-最低价)与(最高价-昨日收盘价)两者之间较大者。 Y=(最低价-昨日收盘价)的绝对值 Z=X与Y两者之间较大者 TR=Z在N个周期内的总和 2、 HD=最高价-昨日最高价 3、 LD=昨日最低价-最低价 4、 如果HD>LD且HD>0, 那么DMP=HD在N个周期内的总和,否则DMP=0。 5、 如果LD>HD且LD>0, 那么DMM=LD在N个周期内的总和,否则DMM=0。 6、 PDI=DMP*100/TR 7、 MDI=DMM*100/TR 8、 ADX=(MDI-PDI)的绝对值/(MDI+PDI)*100在M个周期的简单移动平均 9、 ADXR=(ADX+M个周期前的ADX)/2 应用: 1、 PDI线(上升方向线)从下向上突破MDI线(下降方向线),显示有新多头进场,为买进信号; 2、 PDI线从上向下跌破MDI线,显示有新空头进场, 为卖出信号; 3、 ADX(趋向平均值)值持续高于前一日时,市场行情将维持原趋势; 4、 ADX值递减,降到20以下,且横向行进时,市场 气氛为盘整; 5、 ADX值从上升倾向转为下降时,表明行情即将反转。 在易盛程序化客户端程序中,图形分析界面,附图中,输入DMI调出DMI指标的附图显示,在图形中,点击鼠标右键,点击修改指标公式菜单可以看到易盛原有行情分析中的DMI的 公式语言如下: TR := SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1))),N); HD := HIGH-REF(HIGH,1); LD := REF(LOW,1)-LOW; DMP:= SUM(IF(HD>0 AND HD>LD,HD,0),N); DMM:= SUM(IF(LD>0 AND LD>HD,LD,0),N); PDI: DMP*100/TR; MDI: DMM*100/TR; ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M); ADXR:(ADX+REF(ADX,M))/2 如果在易盛程序化中,可以参照如下代码计算DMI的对应值。 参考代码: //DMI指标。 Params Numeric N(14); Numeric M(6); Vars NumericSeries TR; NumericSeries HD; NumericSeries LD; NumericSeries DMP; NumericSeries DMM; NumericSeries PDI; NumericSeries MDI; NumericSeries ADX; NumericSeries ADXR; Begin TR = Summation(MAX(MAX(High-Low,ABS(High-Close[1])),ABS(low-Close[1])),N); HD = High-High[1]; LD = low[1]-low; DMP= Summation(IIF(HD>0 && HD>LD,HD,0),N); DMM= Summation(IIF(LD>0 && LD>HD,LD,0),N); PDI= DMP*100/TR; MDI= DMM*100/TR; ADX= Average (ABS(MDI-PDI)/(MDI+PDI)*100,M); ADXR= (ADX+ADX[M])/2; Print("PDI ="+Text(PDI)); Print("MDI ="+Text(MDI)); Print("ADX ="+Text(ADX)); Print("ADXR ="+Text(ADXR)); End
|