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

[EquisMetaStock Group] Centered MA



PureBytes Links

Trading Reference Links

Ok, here's the final indicator version of the centered MA:

===========
Centered MA
===========
---8<------------------------

{ Centered MA - v2.0 }
{ Uses forward-referencing to center MA }

{ ©Copyright 2005 Jose Silva
  For personal use only.
  http://www.metastocktools.com }

{ User inputs }
pds:=Input("MA periods",1,2600,9);
type:=Input("[1]EMA [2]SMA [3]TmSr [4]Tri [5]Var [6]Vol [7]Wght",1,7,
1);

{ Choose MA 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(C,pds,E),
 If(type=2,Mov(C,pds,S),
 If(type=3,Mov(C,pds,T),
 If(type=4,Mov(C,pds,TRI),
 If(type=5,Mov(C,pds,VAR),
 If(type=6,Mov(C,pds,VOL),
 Mov(C,pds,W)))))));

{ Forward-reference MA }
center:=LastValue(Int(pds/2));
fwd:=Ref(ma,center);

{ Extend plot into null zone }
xtend:=LastValue(fwd+PREV-PREV);

{ Restrict invalid initial MA }
ma:=Ref(Ref(xtend,pds-1),-pds+1);

{ Plot on price chart }
ma

---8<------------------------


jose '-)
http://www.metastocktools.com



--- In equismetastock@xxxxxxxxxxxxxxx, "Andrew Tomlinson" 
<andrew_tomlinson@xxxx> wrote:
> 
> Thanks guys - I'd forgotten the LastValue(x+PREV-PREV)fix - I think
> the last time I saw it was in the Equis DCF formula (isn't desktop
> google wonderful...)
> 
> Name: Distant Coefficient Ehlers Filter
> Formula:
> ti:= 15;
> pr:= MP();
> coef:=Sum(Power(Ref(LastValue(pr+PREV-PREV)-pr,-1),2),ti);
> Sum(coef*pr,ti)/Sum(coef,ti)
> 
> Not exactly system friendly, but it may solve the problem.
> I'm working on it.
> 
> Best
> Andrew
> 
> -----Original Message-----
> From: equismetastock@xxxxxxxxxxxxxxx [mailto:
> equismetastock@xxxxxxxxxxxxxxx]
> On Behalf Of Jose Silva
> Sent: Wednesday, May 25, 2005 2:27 PM
> To: equismetastock@xxxxxxxxxxxxxxx
> Subject: [EquisMetaStock Group] Re: Coding problem
> 
> 
> Andrew, here's one way to get around the MetaStock null (or N/A) 
> limitation introduced by the forward-plotting Ref(x,+y) function:
> 
> 
> ===========
> Centered MA
> ===========
> ---8<--------------------
> 
> { http://www.metastocktools.com }
> 
> pds:=Input("MA periods",1,260,9);
> type:=Input("MA type:  [1]SMA,  [2]EMA",1,2,1);
>
> sma:=If(type=1,Mov(C,pds,S),Mov(C,pds,E));
> center:=LastValue(Int(pds/2));
>
> x:=Ref(sma,center);
> y:=LastValue(x+PREV-PREV);
>
> If(y>0,y,C)
>
> ---8<--------------------
>
>
> jose '-)
> http://www.metastocktools.com
>
>
>
> --- In equismetastock@xxxxxxxxxxxxxxx, "Andrew Tomlinson" 
> <andrew_tomlinson@xxxx> wrote:
> Hi guys,
>
> I am playing with a number of different ways of projecting a
> centered moving average up to the current bar. For example, here I
> have a 9-day moving average which is centered and therefore plots 5
> days prior (i.e. the value for a particular bar is the SMA that
> would normally plot 5 bars later). In> this case I am trying to
> continue the line plot using the result of successively shorter
> centered moving averages.
>
> The problem is that the following just plots the original centered 
> moving average (CMA). If I replace the CMA1, CMA2...etc. in the CMAP 
> code with numbers, they all plot, so the basic mechanism seems ok.
> I suspect I'm making some kind of elementary mistake - can anyone
> see what I'm missing?
>
> (I know there are forward references - try coding a centered MA
> without)
> 
> P1:=Input("Odd # of bars:",1,1001,9);
> MA:=Mov(C,P1,S);
> CMA:=Ref(MA,(p1+1)/2);
> CMA1:=Ref(Mov(C,P1-1,S),(p1+1)/2-1);
> CMA2:=Ref(Mov(C,P1-2,S),(p1+1)/2-2);
> CMA3:=Ref(Mov(C,P1-3,S),(p1+1)/2-3);
> CMA4:=Ref(Mov(C,P1-4,S),(p1+1)/2-4);
> CMA5:=Ref(Mov(C,P1-5,S),(p1+1)/2-5);
> 
> CMAP:=
> If(Cum(1)=LastValue(Cum(1)-(p1+1)/2+1),CMA1,
> If(Cum(1)=LastValue(Cum(1)-(p1+1)/2+2),CMA2,
> If(Cum(1)=LastValue(Cum(1)-(p1+1)/2+3),CMA3,
> If(Cum(1)=LastValue(Cum(1)-(p1+1)/2+4),CMA4,
> If(Cum(1)=LastValue(Cum(1)-(p1+1)/2+5),CMA5,CMA)))));CMAP;
> 
> Best
> Andrew





------------------------ Yahoo! Groups Sponsor --------------------~--> 
What would our lives be like without music, dance, and theater?
Donate or volunteer in the arts today at Network for Good!
http://us.click.yahoo.com/Tcy2bD/SOnJAA/cosFAA/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/