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 #

Exponential Moving Average - Volume Adaptable by Jose Silva
Exponential Moving Average - samples above/below-avg volume bars - two EMA versions, with multiple output choice.


Exponential Moving Average - Volume Adaptable

{ Volume adaptable EMA v1.0 }
{ EMA samples bars with above-avg Volume }
{ (c) Copyright 2004 Jose Silva }
{ For personal use only }
{ http://www.metastocktools.com }

{ User inputs }
pds:=Input("EMA periods",2,2520,21);
x:=Input("use Open=1 High=2 Low=3 Close=4 WClose=5 P=6",1,6,4);
shift:=Input("EMA vertical shift %",
-100,100,0)/100+1;
plot:=Input("[1]EMA, [2]Data, [3]Sampling bars, [4]Crossovers",1,4,1);

{ Select price field }
x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,WC(),If(x=6,P,C)))));

{ Above average Volume points }
VolAvgPlus:=V>Mov(V,pds,E);

{ Select above-avg bars for EMA }
x:=ValueWhen(1,VolAvgPlus,x);

{ Reduce periodicity on low bar count }
pds:=If(pds>Cum(IsDefined(x)),
Cum(IsDefined(x)),pds);

{ EMA }
Ema:=x*2/(pds+1)+PREV*(1-2/(pds+1));
Ema:=Ema*shift;

{ EMA/price crossover signals }
signals:=Cross(x,Ema)-Cross(Ema,x);

{ Plot on price chart }
If(plot=1,Ema,If(plot=2,x,
If(plot=3,VolAvgPlus,signals)))

 

 


Exponential Moving Average - Volume Adaptable Mk III

{ Volume adaptable EMA v3.0 }
{ EMA samples bars with above/below-avg Volume }
{ (c) Copyright 2004 Jose Silva }
{ For personal use only }
{ http://www.metastocktools.com#metastock }

{ User inputs }
pds:=Input("EMA periods",2,2520,21);
x:=Input("use Open=1 High=2 Low=3 Close=4 WClose=5 P=6",1,6,4);
shift:=Input("EMA vertical shift %",
-100,100,0)/100+1;
plot:=Input("[1]HiEMA, [2]LoEMA, [3]Both,[4]Diff, [5]Signals",1,5,3);

{ Select price field }
x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,WC(),If(x=6,P,C)))));

{ Above/Below average Volume points }
HiVol:=V>Mov(V,pds,E);
LoVol:=V<Mov(V,pds,E);

{ Select above/below-avg bars for EMA }
xHiVol:=ValueWhen(1,HiVol,x);
xLoVol:=ValueWhen(1,LoVol,x);

{ EMAs }
EmaHiVol:=Mov(xHiVol,pds,E)*shift;
EmaLoVol:=Mov(xLoVol,pds,E)*shift;

{ Hi/Lo EMA difference }
diff:=EmaHiVol-EmaLoVol;

{ Hi/LoEMA difference / zero crossover signals }
signals:=Cross(diff,0)-Cross(0,diff);

{ Plot EMAs on price chart }
If(plot=1,EmaHiVol,If(plot=2,EmaLoVol,
If(plot=3,EmaLoVol,If(plot=4,0,0))));
If(plot=1,EmaHiVol,If(plot=2,EmaLoVol,
If(plot=3,EmaHiVol,If(plot=4,diff,signals))))

 

 
Source / From: TOP
http://www.metastocktools.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!