//-------ANG3110@latchess.com------- //**************************************** #property indicator_separate_window #property indicator_buffers 6 #property indicator_color1 LightSlateGray #property indicator_color2 DodgerBlue #property indicator_color3 SandyBrown #property indicator_color4 SandyBrown #property indicator_color5 Lavender #property indicator_color6 Lavender #property indicator_width2 2 #property indicator_width3 2 #property indicator_width4 2 #property indicator_style5 STYLE_DOT #property indicator_style6 STYLE_DOT #property indicator_level1 0 //===================================== extern int p=14; extern int Level=25; extern int SmoothLength=5; extern int SmoothPhase=0; //===================================== double ADX[],ADXLa[],ADXLb[],DI[],levh[],levl[],trend[]; double dh,dl,tr,H,L,num1,num2,num3,dhk,dlk,div; double zdh,zdhp,zdl,zdlp,zdx,zdxp,zdhl,si; double temp,ki; int fs,fss; double saved[][3]; //********************************************************* int init() { IndicatorShortName("ADXm "+"("+p+")"); //-------------------- IndicatorBuffers(7); SetIndexBuffer(0,DI); SetIndexBuffer(1,ADX); SetIndexBuffer(2,ADXLa); SetIndexBuffer(3,ADXLb); SetIndexBuffer(4,levh); SetIndexBuffer(5,levl); SetIndexBuffer(6,trend); //-------------------- return(0); } //********************************************************* #define _zdh 0 #define _zdl 1 #define _zdx 2 int start() { int cbi,i,r,IC=Bars-IndicatorCounted()-1; if (ArrayRange(saved,0) != Bars) ArrayResize(saved,Bars); if (IC<10) cbi=IC; else { cbi=Bars-2; ki=2.0/(p+1); ADX[cbi+1]=0.0; ADXLa[cbi+1]=0.0; ADXLb[cbi+1]=0.0; zdhp=0.0; zdh=0.0; zdlp=0.0; zdl=0.0; zdxp=0.0; zdx=0.0; fs=0; fss=0; } if (trend[cbi]==-1) ClearPoint(cbi,ADXLa,ADXLb); //------------------------------------------------- for (i=cbi, r=Bars-i-1; i>=0; i--,r++) { zdhp = saved[r-1][_zdh]; zdlp = saved[r-1][_zdl]; zdxp = saved[r-1][_zdx]; H=High[i]; L=Low[i]; dh=H-High[i+1]; dl=Low[i+1]-L; if(dh<0) dh=0; if(dl<0) dl=0; if(dh==dl) {dh=0; dl=0;} else if(dh