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 - %Price Change - Filtered by Jose Silva
Exponential Moving Average, price-change filtered. Ignores prices outside min/max % price-change zone.

Exponential Moving Average - %Price Change - Filtered

{ Filtered Exponential Moving Average v1.1 }
{ EMA ignores prices outside min/max % zone }
{ EMA periodicity shortens on low bar count }
{ (c) Copyright 2004 Jose Silva }
{ http://www.metastocktools.com }

{ User inputs }
pds:=Input("EMA periods",1,2520,21);
minCh:=Input("Minimum % price change",
0,100,2)/100;
maxCh:=Input("Maximum % price change",
0,100,5)/100;
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]Crossover signals",
1,2,1);

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

{ Price filter }
change:=Abs(x/Ref(x,-1)-1);
filter:=change>=minCh AND change<=maxCh;
x:=ValueWhen(1,filter,x);

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

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

{ EMA shift }
Ema:=Ema*shift;

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

{ Plot EMA on price chart }
If(plot=2,signals,Ema)

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.