/*********************************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: This Indicator plots Bill Williams Averages. 3LinesVersion: 1.0 09/25/2008Notes: This indicator calculates 3 Moving Averages for default values of 13, 8 and 5 days, with displacement 8, 5 and 3 days: Median Price (High+Low/2). The most popular method of interpreting a moving average is to compare the relationship between a moving average of the security's price with the security's price itself (or between several moving averages).Formula Parameters: Default: Long length 13 Medium length 8 Short length 5 Displacement for long length 8 Displacement for medium length 5 Displacement for short length 3**********************************/var bInit = false;var fpArray = new Array();function preMain() { setPriceStudy(true); setStudyTitle("Average Bill Williams 3 Lines"); setCursorLabelName("BLblue", 0); setCursorLabelName("BLRed", 1); setCursorLabelName("BLGreen", 2); setDefaultBarFgColor(Color.blue, 0); setDefaultBarFgColor(Color.red, 1); setDefaultBarFgColor(Color.green, 2); var x = 0; fpArray[x] = new FunctionParameter("LLength", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Long length"); setLowerLimit(1); setDefault(13); } fpArray[x] = new FunctionParameter("MLength", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Medium length"); setLowerLimit(1); setDefault(8); } fpArray[x] = new FunctionParameter("SLength", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Short length"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("LOffset", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Long offset"); setLowerLimit(1); setDefault(8); } fpArray[x] = new FunctionParameter("MOffset", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Medium offset"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("SOffset", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Short offset"); setLowerLimit(1); setDefault(3); }}var xhl2 = null;var xLSma = null;var xMSma = null;var xSSma = null;function main(LLength, MLength, SLength, LOffset, MOffset, SOffset) { if (LLength == null) LLength = 13; if (MLength == null) MLength = 8; if (SLength == null) SLength = 5; if (LOffset == null) LOffset = 8; if (MOffset == null) MOffset = 5; if (SOffset == null) SOffset = 3; if ( bInit == false ) { xhl2 = hl2(); xLSma = offsetSeries(sma(LLength, xhl2), LOffset); xMSma = offsetSeries(sma(MLength, xhl2), MOffset); xSSma = offsetSeries(sma(SLength, xhl2), SOffset); bInit = true; } var nLSma = 0; var nMSma = 0; var nSSma = 0; nLSma = xLSma.getValue(0); nMSma = xMSma.getValue(0); nSSma = xSSma.getValue(0); return new Array(nLSma, nMSma, nSSma);} |