Statistics | Charts | Trades | Formula | Settings | Symbols

Formula
 
 
_SECTION_BEGIN("Zero-Lag EMA Indicator for AmiBroker "); 
 
SetBarsRequired(100000,0); 
 
GraphXSpace = 15; 
 
SetChartOptions(0,chartShowArrows|chartShowDates); 
 
SetChartBkColor(ParamColor("bkcolor",ColorRGB(0,0, 0))); 
 
GfxSetBkMode(0);  
 
GfxSetOverlayMode(1); 
 
SetBarFillColor(IIf(C>O,ParamColor("Candle UP Color", colorGreen),IIf(C<=O,ParamColor("Candle Down Color", colorRed),colorLightGrey))); 
 
Plot(C,"\nPrice",IIf(C>O,ParamColor("Wick UP Color", colorDarkGreen),IIf(C<=O,ParamColor("Wick Down Color", colorDarkRed),colorLightGrey)),64,0,0,0,0); 
 
Length = Param("Length", 69, 20, 100,1 );  
GainLimit = Param("Gain limit", 22, 1, 100);  
 
 
SetPositionSize(2,spsShares); 
 
alpha = 2 / ( Length + 1 );  
 
iEMA = AMA( Close, alpha );  
 
EC = Close[ 0 ];  
 
for( bar = 0; bar < BarCount; bar++ )  
{  
 EC1 = EC;  
 
 LeastError = 1e9;  
 BestEC = 0;  
 
 for( gain = -0.1 * GainLimit; gain < 0.1 * GainLimit; gain += 0.1 )  
 {  
   EC = alpha * ( iEMA[ bar ] + gain * ( Close[ bar ] - EC1 ) ) +  
       ( 1 - alpha ) * EC1;  
 
   Error = abs( Close[ bar ] - EC );  
 
   if( Error < LeastError )  
   {  
    LeastError = Error;  
    BestEC = EC;  
   }  
 }  
 iEC[ bar ] = BestEC;    
 iLeastError[ bar ] = LeastError;  
}  
Plot( iEMA, "EMA", colorRed );  
Plot( iEC, "EC" + _PARAM_VALUES(), colorYellow, styleThick );  
Plot( C, "Close", ParamColor("Color", colorGreen ), ParamStyle("Style") | GetPriceStyle() );  
 
// strategy rules  
Buy = Cross( iEC, iEMA ); 
Sell = Cross( iEMA, iEC ); 
 
 
Buy=ExRem(Buy,Sell); 
 
Sell=ExRem(Sell,Buy); 
 
Short=Sell; 
 
Cover=Buy; 
 
 
 
 
 
BuyPrice=ValueWhen(Buy,C); 
 
SellPrice=ValueWhen(Sell,C); 
 
ShortPrice=ValueWhen(Short,C); 
 
CoverPrice=ValueWhen(Cover,C); 
 
 
 
 
 
Title = EncodeColor(colorWhite)+ "ZL EMA code from www.marketcalls.in" + " - " +  Name() + " - " + EncodeColor(colorRed)+ Interval(2) + EncodeColor(colorWhite) + 
 
 "  - " + Date() +" - "+"\n" +EncodeColor(colorRed) +"Op-"+O+"  "+"Hi-"+H+"  "+"Lo-"+L+"  "+ 
 
"Cl-"+C+"  "+ "Vol= "+ WriteVal(V)+"\n"+  
 
EncodeColor(colorLime)+ 
 
WriteIf (Buy , " GO LONG / Reverse sig at "+C+"  ","")+ 
 
WriteIf (Sell , " EXIT LONG / Reverse sig at "+C+"  ","")+"\n"+EncodeColor(colorYellow)+ 
 
WriteIf(Sell , "Total Profit/Loss for the Last Trade Rs."+(C-BuyPrice)+"","")+ 
 
WriteIf(Buy  , "Total Profit/Loss for the Last trade Rs."+(SellPrice-C)+"",""); 
 
 
 
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorGreen, 0, L, Offset=-40); 
 
PlotShapes(IIf(Buy, shapeSquare, shapeNone),colorLime, 0,L, Offset=-50);                       
 
PlotShapes(IIf(Buy, shapeUpArrow, shapeNone),colorWhite, 0,L, Offset=-45);  
 
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorRed, 0, H, Offset=40); 
 
PlotShapes(IIf(Short, shapeSquare, shapeNone),colorOrange, 0,H, Offset=50);                       
 
PlotShapes(IIf(Short, shapeDownArrow, shapeNone),colorWhite, 0,H, Offset=-45);