PureBytes Links
Trading Reference Links
|
Good work Tom.
This is your code with a few extra loops added:
---8<-------------------------
{ Example of MetaStock pseudo-loop code,
MetaStock Linear Regression Indicator }
{ Tom Sprunger 2004 }
pds:=Input("Lin Reg periods",1,37,21);
y:=Input("use Open=1 High=2 Low=3 Close=4 WClose=5 P=6",1,6,4);
y:=If(y=1,O,If(y=2,H,If(y=3,L,If(y=5,WC(),If(y=6,P,C)))));
k1:=(pds+1)/3;
{ Start pseudo loop }
x:=(pds-k1)*y;
n:=pds-1;
x:=If(n>0,x+(n-k1)*Ref(y,-1),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-2),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-3),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-4),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-5),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-6),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-7),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-8),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-9),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-10),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-11),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-12),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-13),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-14),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-15),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-16),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-17),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-18),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-19),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-20),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-21),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-22),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-23),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-24),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-25),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-26),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-27),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-28),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-29),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-30),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-31),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-32),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-33),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-34),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-35),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-36),x);
n:=n-1;
x:=If(n>0,x+(n-k1)*Ref(y,-37),x);
{ End pseudo loop }
k2:=6/(pds*(pds+1));
wt:=x*k2;
wt
---8<-------------------------
jose '-)
--- In Metastockusers@xxxxxxxxxxxxxxx, "Tom Sprunger" <tlsprunger@xxxx
> wrote:
> A few days ago I posted a question on a formula. The answer was I
couldn't
> do it easily because it required a loop which Metastock does not
support. A
> good example of hard coding was presented. However, I took up the
challenge
> to perform a loop in Metastock. What I came up functions like a
loop. The
> disadvantage is that there are limits to how many iterations can be
done in
> the loop, basically you run out of room.
>
> The formula below is for Rafter's Moving Trend, which is the same as
the
> Linear Regression Indicator in Metastock.
>
> the loop implements the below
>
> n=20;
> for(i = n; i > 0; i--)
> sum += (i - (n + 1) / 3) * close(i - n);
>
> I used the ability to do x=x+y and the ability to reuse a variable,
then
> put in an if statement to see if the loop was finished.
>
> Hope this can help in the future
>
> Tom
>
> --- Rafter Moving Trend, or the Metastock Linear Regression
Indicator ---
> pds:=20; {must be between 1 and 30}
> k1:=(pds+1)/3;
> k2:=6/(pds*(pds+1));
> n:=pds;
>
> {start pseudo loop}
> x:=(n-k1)*CLOSE; {"0" bar}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-1 bar}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-3}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-6}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-9}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-12}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-15}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-18}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-21}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-24}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-27}
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds)));
> n:=n-1;
> x:=If(n<=0,x,x+(n-k1)*Ref(C,(n-pds))); {-30}
> {end pseudo loop}
>
> wt:=x*k2;
> wt
------------------------ Yahoo! Groups Sponsor --------------------~-->
Make a clean sweep of pop-up ads. Yahoo! Companion Toolbar.
Now with Pop-Up Blocker. Get it for free!
http://us.click.yahoo.com/L5YrjA/eSIIAA/yQLSAA/zMEolB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/Metastockusers/
<*> To unsubscribe from this group, send an email to:
Metastockusers-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|