// Downloaded From https://www.WiseStockTrader.com
// maximum deviation EMA
Per = Param("EMA Period", 22, 1, 900, 1);
MaxDev = Param("Max Deviation", 1.0, 0.0, 99.0);
alpha = 2.0/(1.0 + Per);
one_minus_alpha = 1.0 - alpha;
last_avgema = C[0];
avgema[0] = last_avgema;
for (i=1; i<BarCount; i++)
{
	ci = C[i];
	last_avgema = alpha*ci + one_minus_alpha*last_avgema;
	if (MaxDev > 0.0) {
		pctdev = 100.0*(ci - last_avgema)/ci;
    	if (pctdev >= 0.0)
    	{
        	if (pctdev > MaxDev)
            	last_avgema = ci - .01*MaxDev*ci;
    	}
    	else
    	{
        	if (-pctdev > MaxDev)
            	last_avgema = ci + .01*MaxDev*ci;
    	}
	}
	avgema[i] = last_avgema;
}

Plot( avgema, _DEFAULT_NAME(), ParamColor( "Color", colorCycle ), ParamStyle("Style") );