PureBytes Links
Trading Reference Links
|
Joo,
Just noticed that I had written recussion....that should have been
recursion.
Thus far we have:
(Mov(C,2,S)+
Mov(Mov(C,2,S),2,S)+
Mov(Mov(Mov(C,2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(Mov(Mov(Mov(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S)+
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,\
S)+
Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov(Mov
(C,2,S),2,S),2,S),2,S),2,S),2,S),2,S),2,S\
),2,S),2,S))/10;
can be written down in the following analytical form:
(C*1023+Ref(C,-1)*2036+Ref(C,-2)*1981+
Ref(C,-3)*1816+Ref(C,-4)*1486+Ref(C,-5)*1024+
Ref(C,-6)*562+Ref(C,-7)*232+Ref(C,-8)*67+
Ref(C,-9)*12+Ref(C,-10))/10240
What I would like to be able to do is simplify these formulas. Both
are hardwired and in order to change them it requires that the code
be rewritten. I also want to input the variables for the simple
moving average and the recursive moving average.
Preston
--- In equismetastock@xxxxxxxxxxxxxxx, joo seng <jooseng6@xxx> wrote:
>
> Hi Preston,
> Do you means you want to vary the no. of times of the mov of mov?
>
> --- On Sat, 28/2/09, pumrysh <no_reply@xxxxxxxxxxxxxxx> wrote:
> From: pumrysh <no_reply@xxxxxxxxxxxxxxx>
> Subject: [EquisMetaStock Group] Re: RSI Calculation
> To: equismetastock@xxxxxxxxxxxxxxx
> Date: Saturday, 28 February, 2009, 1:14 AM
>
>
>
>
>
>
>
>
>
>
>
>
> Ken,
>
>
>
> You are more than welcome! The RSI is one of my favorite
indicators.
>
> It took us a bit to realize the differences between the two
smoothing
>
> methods. I have to laugh everytime I read that someone is using
>
> shorter lookback periods with success. Seems Wilder knew that
already.
>
>
>
> While I have your attention and since you mentioned recussion, let
me
>
> ask for your help. A few days ago we were discussing the
Rainbow/RMO
>
> indicator. The method used to smooth the indicator was a recursive
>
> smoothing. Normally this wouldn't be so tedious but in the case of
>
> the Rainbow/RMO it is a moving average of a moving
average..... ..and
>
> on. We can code the indicator but not in a way that allows for any
>
> lookback changes without reproducing the complete indicator,
>
> basically its hardwired. Just wondering if you might have some
>
> thoughts on ways to simplify the indicator.
>
>
>
> Preston
>
>
>
> --- In equismetastock@ yahoogroups. com, "antoinesax"
<kennethmetz@ ...>
>
> wrote:
>
> >
>
> > Thanks, Preston.
>
> >
>
> > I had just come to a similar conclusion.
>
> >
>
> > After reviewing Wilder's original publication, I recognized that
he
>
> > used a form of exponential smoothing with factors 1/N and 1 -
>
> (1/N),
>
> > where N is the RSI period. In contrast, the usual EMA uses
factors
>
> 2/
>
> > (M + 1) and 1 - 2/(M+1), where M is the EMA period. Equating the
>
> > corresponding factors produces the results that M = 2*N -1 and N
=
>
> (M
>
> > + 1)/2.
>
> >
>
> > Using Mov(C, M, E) instead of Mov(C, N, E) in my original code
>
> > renders identical results to MS's RSI.
>
> >
>
> > Ken
>
> >
>
> >
>
> > --- In equismetastock@ yahoogroups. com, pumrysh <no_reply@>
wrote:
>
> > >
>
> > > Kenneth,
>
> > >
>
> > > I can verify that Wilders used Wilders smoothing when he wrote
>
> the
>
> > > RSI. Wilders is a variant form of exponential smoothing.
>
> > >
>
> > > The difference is in the lookback periods.
>
> > >
>
> > > Here's a quicky formula to confirm this. Not precise but very
>
> close:
>
> > >
>
> > > N:=Input("Periods" ,1,250,25) ;
>
> > > R:=(N/2)+1;
>
> > > Mov(CLOSE,N, E);
>
> > > Wilders(CLOSE, R);
>
> > >
>
> > > Notice that the Wilders formula uses a different lookback
period
>
> > that
>
> > > is calculated in the "R" arrayâ?¦basically half plus one. If
you
>
> > change
>
> > > the lookback period you will notice a larger variance at
shorter
>
> > > periods. It is due to the initial seeding at the beginning of
the
>
> > > data.
>
> > >
>
> > >
>
> > > Roy Larsen has discussed this many times before and again a
>
> simple
>
> > > search of our archived messages will yield a number of emails
to
>
> > this
>
> > > very point. His website is :
>
> > >
>
> > > www.metastocktips. co.nz
>
> > >
>
> > > There you will find a number of indicators that he has written.
>
> His
>
> > > link along with others that will help you can be found in our
>
> links
>
> > > section. A RSI written by Roy is listed below.
>
> > >
>
> > >
>
> > > {RSI Indicator}
>
> > > N:=Input("Periods" ,2,99,10) ;
>
> > > A:=Close;
>
> > > B:=Ref(A,-1) ;
>
> > > U:=Wilders(If( A>B,A-B,0) ,N);
>
> > > D:=Wilders(If( A<B,B-A,0) ,N);
>
> > > 100-(100/(1+ (U/D)));
>
> > >
>
> > >
>
> > > Hope this helps,
>
> > >
>
> > >
>
> > > Preston
>
> > >
>
> > >
>
> > >
>
> > >
>
> > > --- In equismetastock@ yahoogroups. com, "antoinesax"
>
> <kennethmetz@ >
>
> > > wrote:
>
> > > >
>
> > > > Preston, Thanks for your reply.
>
> > > >
>
> > > > I'm not sure which method Wilder used. But it seems that MS
>
> > > actually
>
> > > > does use EMA smoothing in computing the RSI. I state this for
>
> the
>
> > > > following reason.
>
> > > >
>
> > > > When I directly compare my spreadsheet calculations of RSI
>
> (where
>
> > > > EMAs are used but are computed recursively) with MS's results
>
> for
>
> > > SPY
>
> > > > from 1993 through the present (using a 14 bar period), the
>
> > greatest
>
> > > > percentage error is 0.0003%. On that basis, it most
definitely
>
> > > > appears that MS also uses EMAs in its internal calculation.
>
> > > >
>
> > > > I'm wondering if anyone among the MS development community is
>
> > > > participating in this group who can definitively state which
>
> > method
>
> > > > is used?
>
> > > >
>
> > > > KM
>
> > > >
>
> > > >
>
> > > > --- In equismetastock@ yahoogroups. com, pumrysh <no_reply@>
>
> wrote:
>
> > > > >
>
> > > > > Kenneth,
>
> > > > >
>
> > > > > The major flaw that I see with your code is the method of
>
> > > smoothing
>
> > > > > which should be Wilder's not Exponential. There are
literally
>
> > > > dozens
>
> > > > > of ways to write the code. You can find some here:
>
> > > > > http://trader. online.pl/ MSZ/e-0-tytulowa -r.html
>
> > > > > You may also search our archived messages and find a few
that
>
> > are
>
> > > > not
>
> > > > > there and may work even better.
>
> > > > >
>
> > > > > Preston
>
> > > > >
>
> > > > >
>
> > > > >
>
> > > > > --- In equismetastock@ yahoogroups. com, "antoinesax"
>
> > > <kennethmetz@ >
>
> > > > > wrote:
>
> > > > > >
>
> > > > > > Prior to exploring some variations for RSI, I thought it
>
> best
>
> > > to
>
> > > > > first
>
> > > > > > verify my own coding for this indicator in comparison
with
>
> > > > > MetaStock's
>
> > > > > > calculation.
>
> > > > > >
>
> > > > > > Much to my surprise, the results differed widely when
>
> applied
>
> > > to
>
> > > > > SPY
>
> > > > > > (from first data in 1993 through present date). Although
>
> > > > generally
>
> > > > > > zigging and zagging in the same direction, the two differ
>
> > > > > > significantly with ratio (my own code vs MS) varying from
>
> > > around
>
> > > > > 0.5
>
> > > > > > to 1.3.
>
> > > > > >
>
> > > > > > On the other hand, a spreadsheet version nearly matches
MS,
>
> > > > > suggestion
>
> > > > > > a problem in the MS coding. The only difference in the
two
>
> > > > versions
>
> > > > > is
>
> > > > > > that I used recursive formulas in the spreadsheet to
>
> > implement
>
> > > > the
>
> > > > > > EMA, whereas I simply used the Mov(C, N, E) function in
MS.
>
> > > > > >
>
> > > > > > Can someone point out the error in the code shown below?
>
> > > > > >
>
> > > > > >
>
> > > > > > Thanks,
>
> > > > > >
>
> > > > > > KM
>
> > > > > >
>
> > > > > > PS. Please note that the code uses the most logical
>
> > definition
>
> > > of
>
> > > > > RSI,
>
> > > > > > which is mathematcially equivalent to the standard
version
>
> > > using
>
> > > > RS
>
> > > > > > that was (maybe) computationally simpler three decades
ago
>
> > when
>
> > > > > this
>
> > > > > > indicator was invented...
>
> > > > > >
>
> > > > > >
>
> > > > > > ============ ========= ========= ========= ====
>
> > > > > >
>
> > > > > > Npds := Input("Periods" ,1,5000,14) ;
>
> > > > > > Chng := C - Ref(C,-1);
>
> > > > > > Adv := If(Chng>0,Chng, 0);
>
> > > > > > Dec := If(Chng<0,-Chng, 0);
>
> > > > > > AvgAdv := Mov(Adv,Npds, E);
>
> > > > > > AvgDec := Mov(Dec,Npds, E);
>
> > > > > > RSItest := 100*AvgAdv/( AvgAdv+AvgDec) ;
>
> > > > > >
>
> > > > > >
>
> > > > > > RSItest
>
> > > > > >
>
> > > > >
>
> > > >
>
> > >
>
> >
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> New Email names for you!
> Get the Email name you've always wanted on the new @ymail and
@rocketmail.
> Hurry before someone else does!
> http://mail.promotions.yahoo.com/newdomains/sg/
>
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/equismetastock/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/equismetastock/join
(Yahoo! ID required)
<*> To change settings via email:
mailto:equismetastock-digest@xxxxxxxxxxxxxxx
mailto:equismetastock-fullfeatured@xxxxxxxxxxxxxxx
<*> 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/
|