========== Weekly ADX ========== A prerequisite for this indicator is Jose Silva's "Calendar Week counter". "Weekly ADX" plots a weekly ADX signal on any daily chart. The construction is not quite true to the standard MetaStock "Directional Movement ADX" indicator and therefore the plot values also will differ slightly. ---8<--------------------------- {Weekly ADX} {© 2004 Roy Larsen, rlarsen@man.quik.co.nz} {for use on daily charts with Jose Silva's "Calendar Week counter"} N:=Input("Weekly ADX Periods",1,99,10); X:=1/N; F:=Input("End of Week, 5=Friday 6=Saturday 7=Sunday",5,7,5); Q:=Input("Display Mode, 0=Static 1=Dynamic 2=Test",0,2,2); {0=Display, update on Friday when possible} {1=Display, update on each new bar} {2=Backtest, update on first bar of new week} G:=LastValue(Highest(Sum(DayOfWeek()=F,5))=5); I:=Fml("Calendar Week counter"); I:=Abs(I-ValueWhen(2-G,1,I)); M:=G OR I>0; F:=G OR (DayOfWeek()=F AND I=0); 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,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; 100*If(ValueWhen(N+1,J,F)>0,F,F); ---8<--------------------------- http://www.metastocktips.co.nz/