You are on page 1of 4

ADX raw

TP= Param("Time Periods",14,1,50);

PlusDM= IIf(High>Ref(High,-1) AND


Low>=Ref(Low,-1), High-Ref(High,-1),
IIf(High>Ref(High,-1) AND Low<Ref(Low,-1)
AND High-Ref(High,-1)>Ref(Low,-1)-Low,
High-Ref(High,-1), 0));
DIPlus= 100 * Wilders(PlusDM,TP) /ATR(TP);

MinusDM= IIf(Low<Ref(Low,-1) AND


High<=Ref(High,-1), Ref(Low,-1)-Low,
IIf(High>Ref(High,-1) AND Low<Ref(Low,-1)
AND High-Ref(High,-1)<Ref(Low,-1)-Low,
Ref(Low,-1)-Low, 0));
DIMinus = 100 * Wilders(MinusDM,TP) /ATR(TP);

Diff= abs(DIPlus - DIMinus);


DISum= DIPlus + DIMinus;
ADXRaw= 100 * Wilders(Diff/DISum, TP);

Plot (ADXRaw,"ADXRaw",colorblue,styleThick);
Plot (DiPlus,"DI+", colorGreen,styleline);
Plot (DiMinus,"DI-",colorRed,styleline);

ADX self-built
Wperiods = Param( "Periods", 14, 1, 200, 1 );
EMAperiods = 2*Wperiods - 1;

ColoravgDX = ParamColor("ADX Color",colorBlue);


ColorplusDI = ParamColor("+DI Color",colorgreen);
ColorminusDI = ParamColor("-DI Color",colorred);

plusDM= IIf(H>Ref(H,-1) AND L>=Ref(L,-1), H-Ref(H,-1),


IIf(H>Ref(H,-1) AND L<Ref(L,-1) AND H-Ref(H,-1)>Ref(L,-1)-L, H-Ref(H,-1) , 0));

minusDM= IIf(L<Ref(L,-1) AND H<=Ref(H,-1), Ref(L,-1)-L,


IIf(H>Ref(H,-1) AND L<Ref(L,-1) AND H-Ref(H,-1)<Ref(L,-1)-L, Ref(L,-1)-L , 0));

truerange = Max(H,Ref(C,-1)) - Min(L,Ref(C,-1));


avgTR = EMA(truerange, EMAperiods);

plusDI = 100*EMA(plusDM, EMAperiods)/avgTR;


minusDI = 100*EMA(minusDM, EMAperiods)/avgTR;
//plusDI = 100*plusDM/truerange;
//minusDI = 100*minusDM/truerange;

DX = 100*abs(plusDI - minusDI)/(plusDI + minusDI);


avgDX = EMA(DX,EMAperiods);
//avgDX = DX;

Plot(avgDX,"ADX" + _PARAM_VALUES(),ColoravgDX,styleLine|stylethick);
Plot(plusDI,"+DI" + _PARAM_VALUES(),ColorplusDI,styleLine);
Plot(minusDI,"-DI" + _PARAM_VALUES(),ColorminusDI,styleLine);

ADX extract raw +/-DI


Wperiods = Param( "Periods", 14, 1, 200, 1 );
EMAperiods = 2*Wperiods - 1;

ColoravgDX = ParamColor("ADX Color",colorBlue);


ColorplusDI = ParamColor("+DI Color",colorgreen);
ColorminusDI = ParamColor("-DI Color",colorred);

plusDM= IIf(H>Ref(H,-1) AND L>=Ref(L,-1), H-Ref(H,-1),


IIf(H>Ref(H,-1) AND L<Ref(L,-1) AND H-Ref(H,-1)>Ref(L,-1)-L, H-Ref(H,-1) , 0));

minusDM= IIf(L<Ref(L,-1) AND H<=Ref(H,-1), Ref(L,-1)-L,


IIf(H>Ref(H,-1) AND L<Ref(L,-1) AND H-Ref(H,-1)<Ref(L,-1)-L, Ref(L,-1)-L , 0));

truerange = Max(H,Ref(C,-1)) - Min(L,Ref(C,-1));


//avgTR = EMA(truerange, EMAperiods);

plusDI = 100*plusDM/truerange;
minusDI = -100*minusDM/truerange;

//DX = 100*abs(plusDI + minusDI)/(plusDI - minusDI);


//avgDX = EMA(DX,EMAperiods);

//Plot(avgDX,"ADX" + _PARAM_VALUES(),ColoravgDX,styleLine|stylethick);
Plot(plusDI,"raw +DI" + _PARAM_VALUES(),ColorplusDI,stylehistogram);
Plot(minusDI,"raw -DI" + _PARAM_VALUES(),ColorminusDI,stylehistogram);

PlotGrid( 100, colorred, 10, 1, true );


PlotGrid( -100, colorred, 10, 1, true );

You might also like