查看: 3158|回复: 2
打印 上一主题 下一主题

[公式] DMI指标计算

[复制链接]
跳转到指定楼层
1
发表于 2012-9-7 10:48:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
DMI指标计算
DMI指标DMI指标又叫动向指标或趋向指标,其全称叫“Directional Movement Index,简称DMI”,也是由美国技术分析大师威尔斯·威尔德(Wells Wilder)所创造的,是一种中长期技术分析方法。
原理:
1、    X=(最高价-最低价)与(最高价-昨日收盘价)两者之间较大者。
Y=(最低价-昨日收盘价)的绝对值
Z=XY两者之间较大者
TR=ZN个周期内的总和
2、    HD=最高价-昨日最高价
3、    LD=昨日最低价-最低价
4、    如果HD>LDHD>0, 那么DMP=HDN个周期内的总和,否则DMP=0
5、    如果LD>HDLD>0, 那么DMM=LDN个周期内的总和,否则DMM=0
6、    PDI=DMP*100/TR
7、    MDI=DMM*100/TR
8、    ADX=MDI-PDI)的绝对值/MDI+PDI*100M个周期的简单移动平均
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






2
发表于 2012-10-15 21:29:17 | 只看该作者
好东西!!
3
发表于 2012-12-4 11:16:26 | 只看该作者
好东西,顶起来看看
您需要登录后才可以回帖 登录 | 注册入住  

本版积分规则

易家网  ©2015-2023  郑州期米信息技术有限公司版权所有  豫公网安备 41010502005136号 豫ICP备16010300号