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

[EquisMetaStock Group] Re: Phased MA for MetaStock



PureBytes Links

Trading Reference Links

My thoughts exactly! As of this point I haven't tried anything but 
was thinking of using some type of momentum oscillator. 

Preston


--- In equismetastock@xxxxxxxxxxxxxxx, "Jose Silva" 
<josesilva22@xxx> wrote:
>
> Hmmm... adaptive to what?
> 
> Actually, by default the PMA's "Lag reduction scaling factor" is 
adaptive 
> to the MA's periodicity.
> 
> 
> jose '-)
> http://www.metastocktools.com
> 
> 
> 
> 
> --- In equismetastock@xxxxxxxxxxxxxxx, pumrysh <no_reply@> wrote:
> >
> > Or JMO for just my opinion.
> > 
> > Seriously, I tried the code and enjoyed the plot it gave. Thanks 
to 
> > you and Mark for the help with it. Kinda suprised that no one 
has 
> > jumped on making it adaptive though.
> > 
> > Preston
> > 
> > 
> >
> > --- In equismetastock@xxxxxxxxxxxxxxx, "Jose Silva" 
> > <josesilva22@> wrote:
> >
> > My last posted code may have generated some confusion - better 
to change 
> > "JMA" for "PMA" just in case some of these good people get upset:
> > 
> > JMA Inc.
> > JMA Forensics
> > JMA Groups
> > JMA Graphics
> > JMA Software
> > JMA Legal
> > JMA Consulting
> > JMA Engineering
> > Japan Medical Association
> > Japan Meteorological Agency
> > Japan Management Association
> > Japan Marketing Association
> > Jamaica Manufacturers' Association
> > John Mitchell & Associates
> > Jurik Moving Average
> > 
> > 
> > MetaStock -> Tools -> Indicator Builder -> New
> > -> copy & paste complete formula between "---8<---" lines.
> > 
> > ===========
> > MA - phased
> > ===========
> > ---8<-----------------------------------------
> > 
> > { PMA v1.0 -- Phased Moving Average.
> >   As suggested by Mark Jurik of Jurik Research,
> >   http://www.jurikres.com
> > 
> >  ©Copyright 2007 Jose Silva.
> >   For personal use only.
> >   http://www.metastocktools.com }
> > 
> > { User inputs }
> > pds:=Input("PMA periods",1,2600,21);
> > factor:=Input("Lag reduction scaling factor  [-1 = Auto]",-
1,1000,-1);
> > x:=Input("use  [1]Open [2]High [3]Low [4]Close [5]WCl [6]
Vol",1,6,4);
> > type:=Input("[1]EMA [2]SMA [3]TmSr [4]Tri [5]Var [6]Vol 
> [7]Wght",1,7,2);
> > shift:=Input("PMA bands spread %",0,100,5)/100;
> > plot:=Input("[1]PMA,  [2]PMA+Bands,  [3]Band crossover 
Signals",1,3,1);
> > 
> > { Data array }
> > x:=If(x=1,O,
> >  If(x=2,H,
> >  If(x=3,L,
> >  If(x=4,C,
> >  If(x=5,WC(),
> >  V)))));
> > 
> > { MovAvg type:
> >   1 - Exponential MA
> >   2 - Simple MA
> >   3 - Time Series MA
> >   4 - Triangular MA
> >   5 - Variable MA
> >   6 - Volume adjusted MA
> >   7 - Weighted MA }
> > ma:=
> >  If(type=1,Mov(x,pds,E),
> >  If(type=2,Mov(x,pds,S),
> >  If(type=3,Mov(x,pds,T),
> >  If(type=4,Mov(x,pds,TRI),
> >  If(type=5,Mov(x,pds,VAR),
> >  If(type=6,Mov(x,pds,VOL),
> >  Mov(x,pds,W)))))));
> > 
> > { PMA approximation }
> > factor:=If(factor>=0,factor,pds/4);
> > PMA:=(ma+LinRegSlope(x,pds)*factor);
> > 
> > { PMA % bands }
> > upper:=PMA*(1+shift);
> > lower:=PMA*(1-shift);
> > 
> > { PMA bands crossover signals }
> > entry:=Cross(C,upper);
> > exit:=Cross(lower,C);
> > 
> > { Clean signals }
> > init:=Cum(IsDefined(entry+exit))=1;
> > bin:=ValueWhen(1,entry-exit<>0 OR init,entry);
> > long:=bin*(Alert(bin=0,2)
> >  OR entry*Cum(entry)=1);
> > short:=(bin=0)*(Alert(bin,2)
> >  OR exit*Cum(exit)=1);
> > signals:=long-short;
> > 
> > {Plot PMA on price chart, signals in own window}
> > If(plot=1,PMA,If(plot=2,upper,0));
> > If(plot=1,PMA,If(plot=2,lower,0));
> > If(plot=3,signals,PMA)
> > 
> > ---8<-----------------------------------------
> > 
> > 
> > jose
> > http://www.metastocktools.com
> > 
> > 
> > 
> >  
> > --- In equismetastock@xxxxxxxxxxxxxxx, "Mark 
> > Jurik" <mark_yahoo_equismetastock@> wrote:
> >
> > The code is simply a combination of a simple moving average and 
one 
> > way of approximating overall slope:
> > 
> > Result = SMA + slope
> > 
> > You can get the desired slope calc in MS by using the built-in 
linear 
> > regression slope function. This way, ...
> > 
> > Result = mov( data array, periods, simple )
> >                      +
> >          linregslope( data array, periods ) * scaling_factor
> > 
> > You set the scaling factor as in input parameter, which allows 
you to 
> > adjust the amount of lag reduction. This approach to achieving 
low 
> > lag smoothing is NOT adaptive and has a significant overshoot 
penalty 
> > in proportion to the amount of lag reduction you request.
> > 
> > This formula poorly approximates JMA, which is adaptive, non-
linear 
> > and has better lag/overshoot tradeoff properties. If you want 
the 
> > real thing, go to http://www.jurikres.com .
> > 
> > Mark Jurik
> > Jurik Research
>




 
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/