Thursday 4 April 2013

ADX Oscillator - Amibroker AFL





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",1,4);

Cc = IIf(ADXRaw<Ref(ADXRaw,-1),41,IIf(DiPlus>DiMinus,27,32));
Plot (ADXRaw,"ADXRaw",Cc,2);
Plot (DiPlus,"DI+", 27,4);
Plot (DiMinus,"DI-",32,4);
GraphXSpace=4;

2 comments:

/* begin page number */