KeltnerAtrEmaAdj.efs

ICE Data Services -


KeltnerAtrEmaAdj.efs 
  

File Name: KeltnerAtrEmaAdj.efs


Description:
Keltner study with a 20 period exponential moving average of the basis line and bands based on 2.5 * Average True Range.


Formula Parameters:
nInputLength: Default is 20 (number of periods for basis line)
nRangeFactor: Default is 2.5 (multiplier for the bands)

Notes:
NA

Download File:
KeltnerAtrEmaAdj.efs




EFS Code:

/*********************************Provided By : eSignal. (c) Copyright 2003*********************************/function preMain() {    setPriceStudy(true);        setStudyTitle("Keltner (ATR Bands) ");    setCursorLabelName("K-Upper", 0);    setCursorLabelName("K-Basis", 1);    setCursorLabelName("K-Lower", 2);    setDefaultBarFgColor(Color.blue, 0); // upper	setDefaultBarFgColor(Color.red, 1); // basis	setDefaultBarFgColor(Color.blue, 2); // lower}function ATR(nInputLength) {    var dSum = 0;    var dH = high(0, -nInputLength);    var dL = low(0, -nInputLength);    var dC = close(-1, -nInputLength);    if (dH == null || dL == null || dC == null) {        return;    }    for (i = 0; i < nInputLength; ++i) {        var vTrueHigh = Math.max(dH[i], dC[i]);        var vTrueLow = Math.min(dL[i], dC[i]);        var vTrueRange = (vTrueHigh - vTrueLow);        dSum += vTrueRange;    }    dSum /= nInputLength;    return dSum;}var BarCntr = 0;function main(nInputLength, nRangeFactor) {	if(nInputLength == null)		nInputLength = 20;	if(nInputLength <= 0)		nInputLength = 20;	if(nRangeFactor == null)		nRangeFactor = 2.5;	if(nRangeFactor <= 0)		nRangeFactor = 2.5;    if (getBarState() == BARSTATE_NEWBAR)        BarCntr += 1;        if (BarCntr < nInputLength) {        return;    } else {        var dKeltnerBasis= call("/Library/KeltnerEMA.efs", nInputLength);        var dATR = ATR(nInputLength);        return new Array(dKeltnerBasis + (nRangeFactor * dATR), dKeltnerBasis, dKeltnerBasis - (nRangeFactor * dATR));    }}