/*********************************Provided By : eSignal. (c) Copyright 2003*********************************/function preMain() { setPriceStudy(true); setStudyTitle("EMA calculation"); setCursorLabelName("EMA of Close", 0); setDefaultBarFgColor(Color.lime, 0); }var vEMA = null;var vEMA1 = null;var dPercent = 0.0;var bPrimed = false;function EMA(nLength, nArray) { var nBarState = getBarState(); var dSum = 0.0; var dRef; if(nBarState == BARSTATE_ALLBARS || bPrimed == false) { dPercent = (2.0 / (nLength + 1.0)); bPrimed = false; } if (nBarState == BARSTATE_NEWBAR) { vEMA1 = vEMA; } if(bPrimed == false) { for(i = 0; i < nLength; i++) { dSum += nArray[i]; } bPrimed = true; return (dSum / nLength); } else { return (((close() - vEMA1) * dPercent) + vEMA1); }}function main(nLength) { if(nLength == null || nLength <= 0) nLength = 10; var nArray = getValue("Close", 0, -nLength); if(nArray == null) return; vEMA = EMA(nLength, nArray); return vEMA;} |