{ Downloaded From https://www.WiseStockTrader.com }
{ Exponential Moving Average v2.3
  EMA periodicity shortens on low bar count

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

{ User inputs }
pds:=Input("EMA periods",1,2600,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]Crossover signals",
 1,2,1);

{ EMA }
x:=If(x=1,O,If(x=2,H,If(x=3,L,If(x=5,WC(),If(x=6,P,C)))));
pds:=If(pds>Cum(IsDefined(x)),
 Cum(IsDefined(x)),pds);
Ema:=x*2/(pds+1)+PREV*(1-2/(pds+1));
Ema:=Ema*shift;
signals:=Cross(x,Ema)-Cross(Ema,x);

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