/*[[ Name := t3_ADX_PlusDi_MinusDi_Burst Author := Copyright © 2004, David W Honeywell Link := DavidHon@msn.com Separate Window := Yes First Color := LawnGreen First Draw Type := Line First Symbol := 217 Use Second Data :=Yes Second Color := Red Second Draw Type := Line Second Symbol := 218 ]]*/ Input : t3_Period(24),b(0.618); Variable : t3(0),t32(0),ADX_Period(1),plusdi(0),minusdi(0),shift(0); Variable : b2(0),b3(0); Variable : c1(0),c2(0),c3(0),c4(0); Variable : e1(0),e2(0),e3(0),e4(0),e5(0),e6(0); Variable : M1(0),M2(0),n(0),P1(0),P2(0),w1(0),w2(0); Variable : ae1(0),ae2(0),ae3(0),ae4(0),ae5(0),ae6(0); b2=b*b; b3=b2*b; c1=-b3; c2=(3*(b2+b3)); c3=-3*(2*b2+b+b3); c4=(1+3*b+b3+3*b2); n=t3_period; if n<1 then n=1; n = 1 + 0.5*(n-1); w1 = 2 / (n + 1); w2 = 1 - w1; SetLoopCount(0); For shift = Bars-1 Downto 0 Begin //SetIndexValue(shift, 0); P1=iADXEx(ADX_Period,PRICE_CLOSE,MODE_PLUSDI,shift); P2=iADXEx(ADX_Period,PRICE_CLOSE,MODE_PLUSDI,shift+1); plusdi= P1-P2; e1 = w1*plusdi + w2*e1; e2 = w1*e1 + w2*e2; e3 = w1*e2 + w2*e3; e4 = w1*e3 + w2*e4; e5 = w1*e4 + w2*e5; e6 = w1*e5 + w2*e6; t3 = c1*e6 + c2*e5 + c3*e4 + c4*e3; SetIndexValue(shift,t3); M1=iADXEx(ADX_Period,PRICE_CLOSE,MODE_MINUSDI,shift); M2=iADXEx(ADX_Period,PRICE_CLOSE,MODE_MINUSDI,shift+1); minusdi= M1-M2; ae1 = w1*minusdi + w2*ae1; ae2 = w1*ae1 + w2*ae2; ae3 = w1*ae2 + w2*ae3; ae4 = w1*ae3 + w2*ae4; ae5 = w1*ae4 + w2*ae5; ae6 = w1*ae5 + w2*ae6; t32 = c1*ae6 + c2*ae5 + c3*ae4 + c4*ae3; SetIndexValue2(shift,t32); End;