[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [EquisMetaStock Group] Weekly +DI on daily chart



PureBytes Links

Trading Reference Links

Hello Roy,
   
  Thank you for your help.
   
  Regards,
  Samuel 
  
Roy Larsen <rlarsen@xxxxxxxxxxxxxx> »¡¡G
    Hi Samuel


Here are revised versions of the Weekly +DI and Weekly ADX indicators. Changes have been made affecting the "Pdm" and "I" variables (and "M" for Weekly ADX). Further changes may follow.


Regards

Roy

  {Weekly +DI}
  {c 2004-2006 Roy Larsen, www.metastocktips.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,1);
  {0==Display, update on Friday when possible}
  {1==Display, update on each new bar}
  {2=ºcktest, update on first bar of new week}
G:==LastValue(Highest(Sum(DayOfWeek()==F,5))==5);
I:==Fml("Calendar Week counter");
I:=«s(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 AND (Ho-Hi)>(Li-Lo),Ho-Hi,0));
Pdm:==If(Cum(J>0)<3,0,Pdm);
R:==Max(Max(Abs(Ci-Lo),Abs(Ci-Ho)),Ho-Lo);
A:==If(Cum(J>0)<N+1,Cum((J>0)*R)/N, ValueWhen(1,J,PREV)*(1-X)+R*X);
I:==If(Cum(J>0)<N+1,Cum((J>0)*Pdm)/N, ValueWhen(1,J,PREV)*(1-X)+Pdm*X);
I:=0*I/ValueWhen(1,Cum(J>0)>N,A);
Round(I);


{Weekly ADX}
  {c 2004-2006 Roy Larsen, www.metastocktips.co.nz}
  {for use on daily charts with Jose Silva's "Calendar Week counter"}
N:==Input("Weekly ADX Periods",1,99,14); 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,0);
  {0==Display, update on Friday when possible}
  {1==Display, update on each new bar}
  {2=ºcktest, update on first bar of new week}
G:==LastValue(Highest(Sum(DayOfWeek()==F,5))==5);
I:==Fml("Calendar Week counter");
I:=«s(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 AND (Ho-Hi)>(Li-Lo),Ho-Hi,0));
Pdm:==If(Cum(J>0)<3,0,Pdm);
Mdm:==If(Lo<Li AND Ho<==Hi,Li-Lo,If(Ho>Hi AND Lo<Li AND (Ho-Hi)<(Li-Lo),Li-Lo,0));
Mdm:==If(Cum(J>0)<3,0,Mdm);
R:==Max(Max(Abs(Ci-Lo),Abs(Ci-Ho)),Ho-Lo);
A:==If(Cum(J>0)<N+1,Cum((J>0)*R)/N, ValueWhen(1,J,PREV)*(1-X)+R*X);
I:==If(Cum(J>0)<N+1,Cum((J>0)*Pdm)/N, ValueWhen(1,J,PREV)*(1-X)+Pdm*X);
I:=0*I/ValueWhen(1,Cum(J>0)>N,A);
M:==If(Cum(J>0)<N+1,Cum((J>0)*Mdm)/N, ValueWhen(1,J,PREV)*(1-X)+Mdm*X);
M:=0*M/ValueWhen(1,Cum(J>0)>N,A);
M:=«s(I-M)/(I+M);
F:==ValueWhen(1,J,PREV)*(1-X)+M*X;
X:=0*If(ValueWhen(N+1,J,F)>0,F,F);
X;


----- Original Message ----- 
From: samuel leung 
To: equismetastock@xxxxxxxxxxxxxxx 
Sent: Sunday, January 29, 2006 6:06 PM
Subject: [Norton AntiSpam] [EquisMetaStock Group] Weekly +DI on daily chart


Hello Roy,
   
  I'm trying to write the weekly +DI indicator (and also the weekly -DI indicator) on daily chart. 
   
  As there are codes of weekly ADX on daily chart written by you below, I think the weekly +DI indicator can be got by modifying some lines with in {{{   }}} below. However, the result is not correct. Please help to share the hint the way to fix it. 
   
  Thanks in advance.
   
  Regards,
  Samuel 
   
  ===================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@xxxxxxxxxxxxxx}
  {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=ºcktest, update on first bar of new week}
G:==LastValue(Highest(Sum(DayOfWeek()==F,5))==5);
I:==Fml("Calendar Week counter");
I:=«s(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 AND (Ho-Hi)>(Li-Lo),Ho-Hi,0));
Mdm:==If(Lo<Li AND Ho<==Hi,Li-Lo,If(Ho>Hi AND
  Lo<Li AND (Ho-Hi)<(Li-Lo),Li-Lo,0));
R:==Max(Max(Abs(Ci-Lo),Abs(Ci-Ho)),Ho-Lo);
A:==If(Cum(J>0)<N+1,Cum((J>0)*R)/N, ValueWhen(1,J,PREV)*(1-X)+R*X);
I:==If(Cum(J>0)<N+1,Cum((J>0)*Pdm)/N, ValueWhen(1,J,PREV)*(1-X)+Pdm*X);
I:=0*I/A;

  M:==If(Cum(J>0)<N+1,Cum((J>0)*Mdm)/N, ValueWhen(1,J,PREV)*(1-X)+Mdm*X);
M:=0*M/A;
M:=«s(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/


  Modification for +DI
  ===========================    {Weekly ADX}
  {?2004 Roy Larsen, rlarsen@xxxxxxxxxxxxxx}
  {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=ºcktest, update on first bar of new week}
G:==LastValue(Highest(Sum(DayOfWeek()==F,5))==5);
I:==Fml("Calendar Week counter");
I:=«s(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 AND (Ho-Hi)>(Li-Lo),Ho-Hi,0));

  {{{Mdm:==If(Lo<Li AND Ho<==Hi,Li-Lo,If(Ho>Hi AND
  Lo<Li AND (Ho-Hi)<(Li-Lo),Li-Lo,0));}}}

  R:==Max(Max(Abs(Ci-Lo),Abs(Ci-Ho)),Ho-Lo);
A:==If(Cum(J>0)<N+1,Cum((J>0)*R)/N, ValueWhen(1,J,PREV)*(1-X)+R*X);

  I:==If(Cum(J>0)<N+1,Cum((J>0)*Pdm)/N, ValueWhen(1,J,PREV)*(1-X)+Pdm*X);
I:=0*I/A;

  {{{M:==If(Cum(J>0)<N+1,Cum((J>0)*Mdm)/N, ValueWhen(1,J,PREV)*(1-X)+Mdm*X);
M:=0*M/A;
M:=«s(I-M)/(I+M);}}}

   
  F:==ValueWhen(1,J,PREV)*(1-X)+I*X;    {{{M is changed to I}}}
100*If(ValueWhen(N+1,J,F)>0,F,F);

   
   

[Non-text portions of this message have been removed]







------------------------ Yahoo! Groups Sponsor --------------------~--> 
Try Online Currency Trading with GFT. Free 50K Demo. Trade 
24 Hours. Commission-Free. 
http://us.click.yahoo.com/RvFikB/9M2KAA/U1CZAA/BefplB/TM
--------------------------------------------------------------------~-> 

 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/equismetastock/

<*> To unsubscribe from this group, send an email to:
    equismetastock-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/