[MT4指标]求用MT4编写的DMI趋向指标谢谢!
DMI-趋向指标
说 明
趋向指标的基本原理是探求价格在上升及下跌过程中的买卖双方力量的"均衡点",亦即供需关系由"紧张"状况,通过价格的变化而达致"和谐",然后再"紧张",又再"和谐"的循环不息的过程。
应 用
1. DMI金叉:+DI上交叉-DI,买进信号。
2. DMI死叉:+DI下交叉-DI,卖出信号。
3. -DI>+DI:若差幅较大,且在市场下跌了一段时间,为见底信号。
4. -DI<+DI:若差幅较大,且在市场上涨了一段时间,为见顶信号。
使用技巧
I、上升方向线DI1与下跌方向线DI2的功用:
1. 当DI1从下向上递增突破DI2时,显示市场内部有新多头进场,愿意以更高的价格买进(由于有创新高的价格,使DI1上升,DI2下降),因此为买进信号。
2. 相反的,DI2从下向上突破DI1,显示市场内部有新空头进场,愿意以更低的价格卖出,因此为卖出信号。
II、趋向平均值ADX的功用:
1. 判断行情趋势
在行情趋势非常明显地朝单一方向前进时,无论其为上涨或下跌,ADX值都会逐渐增加。换言之,当ADX值持续高于前日时,我们可断定此时市场行情将持续上涨,或持续下跌。
2. 判断行情是否“牛皮盘档”
当市场行情反复涨跌时,ADX会出现递减。原因为价格虽然有新高出现,同时亦会有新低出现,因而致使上升方向线与下跌方向线愈拉愈近,ADX值也逐渐减少。当ADX数值降低到20以下,且呈现横方向进行时,我们可以断定此时市场气氛为“牛皮盘档”。
3. 判断行情是否到顶或到底
当ADX数值从上升的倾向转为下降之时,表明行情即将反转。即在涨势中,ADX在高点由升转跌,表示涨势将告结束;反之,在跌势中,ADX也在高点由升转跌,表示跌势将告结束。
参数说明
DMI参数-默认值:6
动向指数(DMI)
一、动向指标
动向指标是研判股价在升跌之中供求的均衡点,从而判定股市的态势,以决定投资行为。
在股市中,买卖双方的力量变化会影响股价指数变化,当日股价的最高点和最低点基本反映了多空双方的实力,DMI指标是力图反映这种趋势的一种实用技术指标,它包括上升动向线+DI,下降动向线-DI,动向平均值ADX以及ADX的评估值ADXR等。
二、DMI分析要领
分析DMI时,不但需要结合所有内部指标,还要同其它外部指标共同研判。
DI上升下降的幅度均在0-100之间,多方实力强,+DI值放大并趋近100,股指可能会继续升高;若空方实力强,-DI值放大并趋近-100,股指会继续下落。如果+DI变小并趋近0,反映了多方势头减弱,股指分别会止升、止跌。投资者可根据+DI、-DI的变化趋向,摸清多空双方实力,择机而动。
从相对强弱分析,如果+DI大于-DI,在图形上则表现为+DI线从下向上穿破-DI线,这反映了股市中多方力量加强,股市有可能高走;如果-DI大于+DI,在图形上则表现为-DI线从下向上穿破+DI线,反映股市中空头正在进场,股市有可能低走;如果+DI和-DI线交叉且幅度不宽时,表明股市进入盘整行情。
对于ADX,有以下三方面需要注意:
a) 单一动向:股市行情以明显的动向单一向一边发展,不论上升还是下降,ADX值此时会逐渐增加并持续一段时间。面对这种单一动向,或DI上升、下降值与ADX同时上升时,投资者可顺其操作,但注意,长时间的跟风也会造成损失。
b) 牛皮动向:当股市指数新高新低点反复交叉时,ADX会表现为递减态势,当ADX逐渐降到20以下时,+DI和-DI呈现横向走势,此时,DMI动向指标只能参考,不能完全依此入市。
c) 反转动向:当ADX由升转降时,高于50以上时说明行情反转来临,如果在涨势中ADX在高点由升转降时,表明顶部到顶,涨势将收场;反之,在跌势中,ADX也在高点由升转降时,表明底部到底,跌势将收场,。对ADX点反转的数值无一定标准,一般,高点在50以上转跌有效。
ADXR是ADX的评估值,ADXR的波动比ADX平缓,当+DI与-DI交叉发出买卖信号,ADXR又与ADX相交这是最后出入市的机会,随后而来的行情较急,应立即采取行动。
ADXR还是市场评估的指标,当ADXR处于高位时显示行情波动较大;当ADXR处于低位,表示行情较牛皮。
最小 最大 默认
N 2 100 14
M 1 100 6
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
发表于:2005-08-01 03:22只看该作者
2楼
自带的东西还要来求
左侧交易,死了白死
反抗市场,自取灭亡
发表于:2005-08-01 07:44只看该作者
3楼
楼上说的对 呵呵
应该就是指标里面的
Average directional movement index
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
4楼
我的意思是想在这个指标里面加多一条ADXR线,因为MT4给的DMI指标没有ADXR这条线。谢谢大大指教!
哪位能在原来DMI指标程序里加上ADXR这条线呢???
ADXR: (ADX+REF(ADX,M))/2
ADX的评估值,ADXR的波动比ADX平缓,当+DI与-DI交叉发出买卖信号,ADXR又与ADX相交这是最后出入市的机会,随后而来的行情较急,应立即采取行动。
ADXR还是市场评估的指标,当ADXR处于高位时显示行情波动较大;当ADXR处于低位,表示行情较牛皮。
[ 本帖最后由 greatboy 于 2005-8-2 08:55 编辑 ]
发表于:2005-08-04 06:27只看该作者
5楼
//+------------------------------------------------------------------+
//| http://man2078.home4u.china.com/ |
//+------------------------------------------------------------------+
#property link "http://man2078.home4u.china.com/"
#property indicator_separate_window
#property indicator_buffers 4
#property indicator_color1 YellowGreen
#property indicator_color2 Wheat
#property indicator_color3 LightSeaGreen
#property indicator_color4 Red
extern int M=2;
extern int adx_period=14;
//---- buffers
double di_plus,di_minus,adx,adxr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE,2);
SetIndexBuffer(0,di_plus);
SetIndexStyle(1,DRAW_LINE,2);
SetIndexBuffer(1,di_minus);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,adx);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,adxr);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custor indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
for (int i=Bars-1;i>=0;i--)
{
di_plus=iADX(NULL,0,adx_period,PRICE_CLOSE,MODE_PLUSDI,i);
di_minus=iADX(NULL,0,adx_period,PRICE_CLOSE,MODE_MINUSDI,i);
adx=iADX(NULL,0,adx_period,PRICE_CLOSE,MODE_MAIN,i);
}
for (i=Bars-1;i>=0;i--)
{
adxr=(adx+adx[i+M])/2;
}
//----
return(0);
}
//+------------------------------------------------------------------+
发表于:2005-08-04 06:28只看该作者
6楼
这是一个indicator 程序,编译后和系统的ADX放在一个图里面,你会发现多出来的红线就是你要的 adxr
[ 本帖最后由 maningok 于 2005-8-4 14:29 编辑 ]c.gif
韬客社区www.talkfx.co
发表于:2005-08-04 06:43只看该作者
7楼
:')自己有心无力........
看来真要好好的学习下编程了..............
遇到矛盾 先站在对方的立场上想想问题,先试着去理解别人
● 如何使用WinMTR查询平台连接流畅度
8楼
非常感谢!高手出马马上搞定!
发表于:2005-09-02 23:21只看该作者
9楼
maningok
能不能看看宝塔线,或者鬼变脸怎么编程啊?
发表于:2008-06-14 04:51只看该作者
10楼
太感谢了!!!!!!
韬客社区www.talkfx.co
发表于:2008-07-09 15:04只看该作者
12楼
:( :) ;P
发表于:2008-09-26 16:33只看该作者
13楼
非常感谢!分享。!
韬客社区www.talkfx.co
发表于:2016-01-09 09:55只看该作者
15楼
666
韬客社区www.talkfx.co
发表于:2016-12-07 10:16只看该作者
16楼
谢楼主的分享
韬客社区www.talkfx.co