PureBytes Links
Trading Reference Links
|
Thanks Roy - I appreciate your assistance.
I don't understand the basis behind how the LastValue ( J + PREV -
PREV ) converts J into a constant (or exactly what that means to
MS).
Although this certainly works as you've outlined, I cannot get it to
work for my specific case:
EMAPERIODS:= Fml(".EMAPERIODS"); {where EMAPERIODS is a constant
(8)}
J:= LastValue( EMAPERIODS + PREV - PREV );
Mov( C , J , E )
Error message: This variable or expression must contain only
constant data.
Any ideas why your trick won't work for my case?
With Regards-
Sam
--- In equismetastock@xxxxxxxxxxxxxxx, "Roy Larsen" <rlarsen@xxxx>
wrote:
> Here are three versions of a weekly Monday CLOSE SMA. The first
formula is less accurate than the
> other two because of the errors introduced by cumulating the data
for every Monday on the chart then
> subtracting the unwanted Monday data. The advantage of this code is
that it does not require PREV.
>
> The second and third formulas are more accurate because there is no
fractional component in the 'J'
> variable cumulations. This variable calculates the look-back
periods (in bars, not weeks) for Sum()
> or Mov(). In both formulas the 'J' variable is converted to operate
legitimately as a constant in
> either the Sum() or Mov() functions.
>
> The last line of the third formula can be broken down as follows.
>
> Mov( {moving average of}
> K*M, {data array includes only the CLOSE when Monday is true}
> LastValue(J+PREV-PREV), {'J' periods in the form of a constant
as required by Mov()}
> S) {simple moving average}
> *J/D; {multiply MA by look-back periods and divide result by
weeks}
>
> It is clear from the makeup of this last line that moving between
different periodises on the one
> chart is rarely a matter of making simple changes. As you've
already discovered the data array needs
> to created, the sampling of that data needs to be managed, and the
number of look-back periods also
> need to adjusted to allow for holidays. The basic functions just
can't cut it.
>
> Roy
>
> {Monday Close SMA 1}
> {for use on daily charts}
> D:=Input("Periods in Weeks",1,100,10);
> M:=DayOfWeek()<=ValueWhen(2,1,DayOfWeek());
> K:=ValueWhen(1,M,C);
> G:=Cum(M*K);
> X:=(G-ValueWhen(D+1,M,G))/D;
> X;
>
> {Monday Close SMA 2}
> {for use on daily charts}
> D:=Input("Periods in Weeks",1,100,10);
> M:=DayOfWeek()<=ValueWhen(2,1,DayOfWeek());
> J:=Cum(1)-ValueWhen(D+1,M,Cum(1));
> K:=ValueWhen(1,M,C);
> Sum(K*M,LastValue(J+PREV-PREV))/D;
>
> {Monday Close SMA 3}
> {for use on daily charts}
> D:=Input("Periods in Weeks",1,100,10);
> M:=DayOfWeek()<=ValueWhen(2,1,DayOfWeek());
> J:=Cum(1)-ValueWhen(D+1,M,Cum(1));
> K:=ValueWhen(1,M,C);
> Mov(K*M,LastValue(J+PREV-PREV),S)*J/D;
>
>
> ----- Original Message -----
> From: "sabboushi2000" <Yahoo@xxxx>
> To: <equismetastock@xxxxxxxxxxxxxxx>
> Sent: Friday, February 06, 2004 2:53 AM
> Subject: [EquisMetaStock Group] Simple Moving Average using first
bar of each week
>
>
> > Hi-
> >
> > Am trying to use EOD daily data to create a Moving Average for the
> > previous 3 weeks - by using the Close of the first bar of each
> > week AND by using the MOV function.
> >
> > Example: Today is Wednesday. I want a simple 3 day moving
average
> > using the following data:
> >
> >
> >
> > 2/17 Wednesday
> > 2/16
> > 2/15 Monday Close: 10
> >
> > 2/12 Friday
> > 2/11
> > 2/10
> > 2/9 Tuesday Close: 15
> > 2/8 Monday Holiday
> >
> > 2/5 Friday
> > 2/4
> > 2/3
> > 2/2
> > 2/1 Monday Close: 20
> >
> > The result I am looking for in this example would be (10 + 15 +
> > 20) / 3 = 15
> >
> > (2/9 Tuesday was first trading day of that week since Monday was a
> > trading Holiday)
> >
> >
> > NOTE: I know I can create a formula to create this moving average
> > without using the MOV function, but I don't really want to create
a
> > simple moving average using 3 data points - I just used this as a
> > simple example for discussion purposes.
> >
> > I've tried using valuewhen to identify the first close value I
want
> > MS8.01 EOD to use, wishing that the formula would "increment" to
each
> > previous bar that met the condition - but no such luck. The
formula
> > I tried:
> > Mov(ValueWhen(1,FIRSTDAYOFWEEK, C) ,3 ,S )
> > where FIRSTDAYOFWEEK is a custom indicator that is true on the
first
> > trading day of each week. My problem would be solved if MS
> > incremented the "1" in my formula to 2 and 3 to get the data
points I
> > want it to use - but of course I'm being naive...
> >
> > Any geniuses out there that can think outside my box?
> >
> > With Regards-
> > Sam
> >
> >
> >
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
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/
|