MetaStock -> Tools -> Indicator Builder -> New Copy and paste formula below. === EMA === ---8<--------------------------- { Exponential Moving Average v2.2 } { EMA periodicity shortens on low bar count } { ©Copyright 2003-2004 Jose Silva } { http://www.metastocktools.com } pds:=Input("EMA periods",1,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]Crossover signals", 1,2,1); 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); If(plot=2,signals,Ema) ---8<--------------------------- http://www.metastocktools.com