论坛全局菜单下方 - TICKMILL 285X70论坛全局菜单下方 - ThinkMarkets285X70论坛全局菜单下方 - 荔枝返现285X70论坛全局菜单下方 -  icmarkets285X70
查看:686回复:0
草龙
注册时间2004-12-17
[MT4指标]ADX指标的变形WildersDMI
楼主发表于:2014-01-10 08:01只看该作者倒序浏览
1楼 电梯直达
电梯直达
WildersDMI变形ADX的MT4指标 //+------------------------------------------------------------------+ //| WildersDMI_v1.mq4 | //| Copyright 2007, TrendLaboratory Ltd. | //| http://finance.groups.yahoo.com/group/TrendLaboratory | //| E-mail: [email protected] | //+------------------------------------------------------------------+ #property copyright "Copyright 2007, TrendLaboratory Ltd." #property link "http://finance.groups.yahoo.com/group/TrendLaboratory" //---- #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 LightBlue #property indicator_width1 2 #property indicator_color2 Lime #property indicator_width2 1 #property indicator_style2 2 #property indicator_color3 Tomato #property indicator_width3 1 #property indicator_style3 2 #property indicator_color4 Orange #property indicator_width4 2 #property indicator_level1 20 //---- input parameters extern int MA_Length =1; // Period of additional smoothing extern int DMI_Length =14; // Period of DMI extern int ADX_Length =14; // Period of ADX extern int ADXR_Length =14; // Period of ADXR extern int UseADX =1; // Use ADX: 0-off,1-on extern int UseADXR =1; // Use ADXR: 0-off,1-on //---- buffers double ADX; double PDI; double MDI; double ADXR; double sPDI; double sMDI; double STR; double DX; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators IndicatorBuffers(8); SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,ADX); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,PDI); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,MDI); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,ADXR); SetIndexBuffer(4,sPDI); SetIndexBuffer(5,sMDI); SetIndexBuffer(6,STR); SetIndexBuffer(7,DX); //---- name for DataWindow and indicator subwindow label string short_name="WildersDMI("+MA_Length+","+DMI_Length+","+ADX_Length+","+ADXR_Length+")"; IndicatorShortName(short_name); SetIndexLabel(0,"ADX"); SetIndexLabel(1,"+DI"); SetIndexLabel(2,"-DI"); SetIndexLabel(3,"ADXR"); //---- SetIndexDrawBegin(0,DMI_Length+MA_Length); SetIndexDrawBegin(1,DMI_Length+MA_Length); SetIndexDrawBegin(2,DMI_Length+MA_Length); SetIndexDrawBegin(3,DMI_Length+MA_Length); SetIndexShift(3,2); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int shift, limit, counted_bars=IndicatorCounted(); double alfa1=1.0/DMI_Length; double alfa2=1.0/ADX_Length; //---- if (counted_bars < 0) return(-1); if(counted_bars<1) for(shift=1;shift<=MA_Length+DMI_Length;shift++) { PDI[Bars-shift]=0.0;MDI[Bars-shift]=0.0;ADX[Bars-shift]=0.0; sPDI[Bars-shift]=0.0;sMDI[Bars-shift]=0.0;DX[Bars-shift]=0.0; STR[Bars-shift]=0.0;ADXR[Bars-shift]=0.0; } shift=Bars-MA_Length-DMI_Length-1; if(counted_bars>=DMI_Length+MA_Length) shift=Bars-counted_bars-1; while(shift>=0) { double AvgHigh =iMA(NULL,0,MA_Length,0,1,PRICE_HIGH,shift); double AvgHigh1=iMA(NULL,0,MA_Length,0,1,PRICE_HIGH,shift+1); double AvgLow =iMA(NULL,0,MA_Length,0,1,PRICE_LOW,shift); double AvgLow1 =iMA(NULL,0,MA_Length,0,1,PRICE_LOW,shift+1); double AvgClose1= iMA(NULL,0,MA_Length,0,1,PRICE_CLOSE,shift+1); //---- double Bulls=0.5*(MathAbs(AvgHigh-AvgHigh1)+(AvgHigh-AvgHigh1)); double Bears=0.5*(MathAbs(AvgLow1-AvgLow)+(AvgLow1-AvgLow)); if (Bulls > Bears) Bears=0; else if (Bulls < Bears) Bulls=0; else if (Bulls==Bears) {Bulls=0;Bears=0;} //---- sPDI[shift]=sPDI[shift+1] + alfa1 * (Bulls - sPDI[shift+1]); sMDI[shift]=sMDI[shift+1] + alfa1 * (Bears - sMDI[shift+1]); //---- double TR=MathMax(AvgHigh-AvgLow,AvgHigh-AvgClose1); STR[shift] =STR[shift+1] + alfa1 * (TR - STR[shift+1]); if(STR[shift]>0 ) { PDI[shift]=100*sPDI[shift]/STR[shift]; MDI[shift]=100*sMDI[shift]/STR[shift]; } if(UseADX > 0) { if((PDI[shift] + MDI[shift])>0) DX[shift]=100*MathAbs(PDI[shift] - MDI[shift])/(PDI[shift] + MDI[shift]); else DX[shift]=0; //---- ADX[shift]=ADX[shift+1] + alfa2 *(DX[shift] - ADX[shift+1]); if(UseADXR >0) ADXR[shift]=0.5*(ADX[shift] + ADX[shift+ADXR_Length]); } shift--; } //---- return(0); } //+------------------------------------------------------------------+ADX_WildersDMI_v1m.jpgADX_WildersDMI_v1m.jpg
TK29帖子1楼右侧xm竖版广告90-240
个性签名

阅尽天下指标
搬砖开始,始于2014

广告
TK30+TK31帖子一樓廣告
TK30+TK31帖子一樓廣告

本站免责声明:

1、本站所有广告及宣传信息均与韬客无关,如需投资请依法自行决定是否投资、斟酌资金安全及交易亏损风险;

2、韬客是独立的、仅为投资者提供交流的平台,网友发布信息不代表韬客的观点与意思表示,所有因网友发布的信息而造成的任何法律后果、风险与责任,均与韬客无关;

3、金融交易存在极高法律风险,未必适合所有投资者,请不要轻信任何高额投资收益的诱导而贸然投资;投资保证金交易导致的损失可能超过您投入的资金和预期。请您考虑自身的投资经验及风险承担能力,进行合法、理性投资;

4、所有投资者的交易帐户应仅限本人使用,不应交由第三方操作,对于任何接受第三方喊单、操盘、理财等操作的投资和交易,由此导致的任何风险、亏损及责任由投资者个人自行承担;

5、韬客不隶属于任何券商平台,亦不受任何第三方控制,韬客不邀约客户投资任何保证金交易,不接触亦不涉及投资者的任何资金及账户信息,不代理任何交易操盘行为,不向客户推荐任何券商平台,亦不存在其他任何推荐行为。投资者应自行选择券商平台,券商平台的任何行为均与韬客无关。投资者注册及使用韬客即表示其接受和认可上述声明,并自行承担法律风险。

版权所有:韬客外汇论坛 www.talkfx.com 联络我们:[email protected]