========== Daily ADX ========== A prerequisite for this indicator is Jose Silva's "Calendar Day counter". "Daily ADX" plots a daily ADX signal on any intraday chart with sufficient historical data. The construction is not quite true to the standard MetaStock "Directional Movement ADX" indicator and therefore the plot values also will differ slightly. ---8<--------------------------- {Daily ADX} {© 2004 Roy Larsen, rlarsen@man.quik.co.nz} {for use on intraday charts with Jose Silva's "Calendar Day counter"} N:=Input("Daily ADX Periods",1,99,10); X:=1/N; A:=Input("Hour of Last Daily Bar" ,0,23,16); B:=Input("Minute of Last Daily Bar",0,59,00); Q:=Input("Display Mode, 0=Static 1=Dynamic 2=Test",0,2,2); {0=Display, update at last bar of day} {1=Display, update on each new bar} {2=Backtest, update on first bar of new day} G:=LastValue(Highest(Sum(DayOfWeek()<> ValueWhen(2,1,DayOfWeek()),5))=5); I:=Fml("Calendar Day counter"); I:=Abs(I-ValueWhen(2-G,1,I)); M:=G OR I>0; F:=G OR (Hour()=A AND Minute()=B); A:=LastValue(Cum(1)-1)=Cum(1); B:=LastValue(Cum(1))=Cum(1); J:=If(F,1,If(Alert(F,2)=0 AND M,2,0)); J:=If(A+LastValue(J)>2 OR B+(Q=1)=2,1,J); J:=If(G,1,If(Q=2 OR Cum(J)<=1,M*2,J)); Ho:=HighestSince(1,M,H); Ho:=ValueWhen(1,J,If(J=1,Ho,ValueWhen(2-G,1,Ho))); Lo:=LowestSince(1,M,L); Lo:=ValueWhen(1,J,If(J=1,Lo,ValueWhen(2-G,1,Lo))); Ci:=ValueWhen(1,J,If(J=1,C,ValueWhen(2-G,1,C))); Ho:=ValueWhen(1,Ho>0,Ho); Hi:=ValueWhen(2,J,Ho); Lo:=ValueWhen(1,Lo>0,Lo); Li:=ValueWhen(2,J,Lo); {Ci:=ValueWhen(1,Ci>0,Ci);} Ci:=ValueWhen(2,J AND Ci>0,Ci); Pdm:=If(Ho>Hi AND Lo>=Li,Ho-Hi,If(Ho>Hi AND Lo
  • (Li-Lo),Ho-Hi,0)); Mdm:=If(Lo
  • Hi AND Lo
  • 0)0)*R)/N, ValueWhen(1,J,PREV)*(1-X)+R*X); I:=If(Cum(J>0)0)*Pdm)/N, ValueWhen(1,J,PREV)*(1-X)+Pdm*X); I:=100*I/A; M:=If(Cum(J>0)0)*Mdm)/N, ValueWhen(1,J,PREV)*(1-X)+Mdm*X); M:=100*M/A; M:=Abs(I-M)/(I+M); F:=ValueWhen(1,J,PREV)*(1-X)+M*X; X:=100*If(ValueWhen(N+1,J,F)>0,F,F); X; ---8<--------------------------- http://www.metastocktips.co.nz/