MWDXAverage.efs EFSLibrary - Discussion Board
File Name: MWDXAverage.efs
Description:
MWD XAverage indicator
Formula Parameters:
Moving average source: close
Smoothing factor: 0.2
Notes:
MWD Xaverage an exponential moving average indicator which uses
a [0,1] smoothing factor. The moving average length is calculated
from the smoothing factor according to formula:
LENGTH = 2/FAC - 1;
Download File:
MWDXAverage.efs
EFS Code:
/*********************************Provided By: eSignal (Copyright c eSignal), a division of Interactive Data Corporation. 2008. All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only and may be modified and saved under a new file name. eSignal is not responsible for the functionality once modified. eSignal reserves the right to modify and overwrite this EFS file with each new release.Description: MWD XAverage indicator. Version: 1.0 09/26/2008Notes: MWD Xaverage an exponential moving average indicator which uses a [0,1] smoothing factor. The moving average length is calculated from the smoothing factor according to formula: LENGTH = 2/FAC - 1;Formula Parameters: Default: Moving average source close Smoothing factor 0.2 **********************************/ var fpArray = new Array(); function preMain() { setPriceStudy(true); setStudyTitle("MWDXaverage"); setCursorLabelName("MWXAvg", 0); var x = 0; fpArray[x] = new FunctionParameter("MASource", FunctionParameter.STRING); with (fpArray[x++]) { setName("Source of moving average"); addOption("open"); addOption("high"); addOption("low"); addOption("close"); addOption("hl2"); addOption("hlc3"); addOption("ohlc4"); setDefault("close"); } fpArray[x] = new FunctionParameter("nFAC", FunctionParameter.NUMBER); with (fpArray[x++]) { setName("Factor"); setLowerLimit(0.01); setDefault(0.2); } } var xPrice = null; var xMWDX = null; var bInit = false; function main(MASource, nFAC) { var nBarState = getBarState(); var nBarCount = getCurrentBarCount(); if (nBarState == BARSTATE_ALLBARS) { if (MASource == null) MASource = "close"; if (nFAC == null) nFAC = 0.2; } if (bInit == false) { xPrice = eval(MASource)(); xMWDX = ema(Math.round(2 / nFAC - 1), xPrice); bInit = true; } var nValue1 = xMWDX.getValue(0); return nValue1; }