Keltner ATR Band

ICE Data Services -


Keltner_ATR_Band.efs  EFSLibrary - Discussion Board
  

File Name: Keltner_ATR_Band.efs


Description:
Keltner ATR Band


Formula Parameters:
Length : 50
ATRMult : 3.75

Notes:


Download File:
Keltner_ATR_Band.efs




EFS Code:



/*********************************Provided By:      eSignal (Copyright c eSignal), a division of Interactive Data     Corporation. 2009. 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:            Keltner ATR Band    Version:            1.0  10/29/2009 Formula Parameters:                     Default:    Length                              50    ATRMult                             3.75    Notes:    **********************************/var fpArray = new Array();var bInit = false;function preMain(){    setPriceStudy(true);    setShowCursorLabel(true);    setShowTitleParameters(false);    setStudyTitle("Keltner ATR Band");    setCursorLabelName("Up Band", 0);    setPlotType(PLOTTYPE_LINE, 0);    setDefaultBarFgColor(Color.red, 0);    setCursorLabelName("Dn Band", 1);        setPlotType(PLOTTYPE_LINE, 1);    setDefaultBarFgColor(Color.red, 1);    var x = 0;    fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(50);    }        fpArray[x] = new FunctionParameter("ATRMult", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(3.75);    }        }var xKUp = null;var xKDn = null;function main(Length, ATRMult) {var nBarState = getBarState();var nKU = 0;var nKL = 0;    if (nBarState == BARSTATE_ALLBARS) {        if(Length == null) Length = 50;        if(ATRMult == null) ATRMult = 3.75;	}	if (bInit == false) {        xKUp = efsInternal("Calc_KeltnerBand", Length, ATRMult);        xKDn = getSeries(xKUp, 1);        bInit = true;	}    nKU = xKUp.getValue(0);    nKL = xKDn.getValue(0);    if (nKU == null || nKL == null) return;    return new Array(nKU, nKL);}var bSecondInit = false;var xMA = null;var xATR = null;function Calc_KeltnerBand(Length, ATRMult) {var nResUp = 0;var nResDn = 0;var nMA = 0;var nATR = 0;	if (bSecondInit == false) {        xMA = sma(Length);        xATR = atr(Length);        bSecondInit = true;	}    nMA = xMA.getValue(0);    nATR = xATR.getValue(0);    if (nMA == null || nATR == null) return;    nResUp = nMA + ATRMult * nATR;    nResDn = nMA - ATRMult * nATR;    return new Array(nResUp, nResDn);}