// Downloaded From https://www.WiseStockTrader.com _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);