// Downloaded From https://www.WiseStockTrader.com "Arnaud Legoux Moving Average"; /*________________________________________________________________________________________________ AFL code by hiscores. Originally posted here http://finance.groups.yahoo.com/grou...message/154257 Minor mod by rmike to Modify the AFL in conformance with NinjaTrader & Metatrader releases by the original developer. Release Date - 09 Nov 10 AFL Usage - Moving Average. Further information Can be found at http://www.arnaudlegoux.com/ ________________________________________________________________________________________________*/ _SECTION_BEGIN("ALMA"); p = ParamField("Price Field"); windowSize = Param("Window Size", 9, 5, 201, 2); sigma = Param("Sigma", 6, 1, 20); Offset = Param("Offset", 0.85, 0.05, 1.0, 0.05); m = floor(Offset * (windowSize - 1)); s = windowSize / sigma; w = 0; wSum = 0; for(i = 1; i < windowSize; i++) { w[i] = exp(-((i-m)*(i-m))/(2*s*s)); wSum += w[i]; } for(i = 1; i < windowSize; i++) { w[i] = w[i] / wSum; } alma = Null; for(j = 1; j < BarCount; j++) { alSum = 0; if(j < windowSize) { alma[j] = Null; } else { for(i = 1; i < windowSize; i++) { alSum += p[j - (windowSize - 1 - i)] * w[i]; } alma[j] = alSum; } } Plot(alma, "ALMA("+windowSize+","+sigma+","+Offset+")", ParamColor("ALMA Color", colorRed), ParamStyle("ALMA Style", styleLine|styleThick|styleNoLabel), maskDefault); _SECTION_END();