MetaStock™ Zone Forum & FAQ Artykuły Linki Elliott Waves EasyLanguage™ Zone

A B C D E F G H I J K L M N O P R S T U V W Y Z #

Moving Average - Centered by Jose Silva

Here's a concept I thought about whilst on holidays:

Forward reference (shift backwards on charts) and center a Moving Average, then extend and project the last known MA direction into the future.

This method gets around the no-plot in null (N/A) zone limitation in MetaStock, and can apply to any indicator or oscillator on charts or separate windows.



Moving Average - Centered

{ Centered Moving Average - v3.0 }
{ Uses forward-referencing to center Mov Avg
and project future direction.}
{ Uses hindsight - do not trade! }

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

{ User inputs }
fwPds:=Input("Forward-referencing periods (automatic = -1)",-1,2600,-
1);
proj:=Input("Project last known MA: [1]Direction, [2]Value",1,2,1);
pds:=Input("Mov Avg periods",1,2600,21);
type:=Input("[1]EMA [2]SMA [3]TmSr [4]Tri [5]Var [6]Vol [7]Wght",1,7,
2);

{ Choose 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(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)))))));

{ Automatic period-centering }
center:=LastValue(If(fwPds<0,Int(pds/2),fwPds));

{ Forward-referenced MovAvg }
fwd:=Ref(ma,center);

{ Last valid MovAvg plot point }
lastVal:=IsUndefined(fwd)
AND Alert(IsUndefined(fwd)=0,2);

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

{ Restrict invalid initial MovAvg plot }
movAvg:=Ref(Ref(xtend,pds-1),-pds+1);

{ Last MA known direction & future projection }
init:=Cum(IsDefined(movAvg))=1;
direction:=movAvg+
( ValueWhen(1,init OR lastVal,Ref(movAvg,-1))
-ValueWhen(1,init OR lastVal,Ref(movAvg,-2)))
*(BarsSince(init OR lastVal)+1);

{ Plot MovAvg on price chart }
If(proj=1,direction,movAvg)

 

Source / From: TOP
EquisMetastock[at]yahoogroups[dot]com

Equis and MetaStock® and MetaStock Professional® are registered trademarks of Equis International. Achelis Binary Wave®, The DownLoader®,
Expert Advisor®, OptionScope®, Quotecenter® and Smart Charts® are trademarks of Equis International, a Thomson Reuters company.

TradeStation® Pro, TradeStation® 2000i, OptionStation®, SuperCharts®, PowerEditor® and EasyLanguage®
are registered trademarks of TradeStation Technologies, Inc. Other names and marks referred to are the property of their respective owners.

All information provided on this website is for educational purposes only. Trading involves risk, including possible loss of principal and other losses.

Ten i inne materiały na tej stronie zostały zamieszczone zostały jedynie w celach edukacyjnych, nie ponoszę żadnej odpowiedzialno¶ci za ich stosowanie.

Gra na giełdzie i rynkach walutowych (FOREX) niesie ze sob± ryzyko poważnych strat finansowych!