IE / 2

ICE Data Services -


IE2.efs  EFSLibrary - Discussion Board
  

File Name: IE2.efs


Description:
IE/2


Formula Parameters:
Length: 15
Price Data To Use: Close

Notes:
IE/2 is one of pre-studies created while T3 famous average was developing.
It is calculated as (ILRS(n)+EPMA(n))/2.

ILRS, is an integral of linear regression slope. In this moving average,
the slope of a linear regression line is simply integrated as it is fitted
in a moving window of length n across the data. The derivative of ILRS is
the linear regression slope.

EPMA is an end point moving average - it is the endpoint of the linear regression
line of length n as it is fitted across the data. EPMA hugs the data more closely
than a simple or exponential moving average of the same length.

Download File:
IE2.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:            IE/2Version:            1.0  09/23/2008Notes:    IE/2 is one of pre-studies created while T3 famous average was developing.    It is calculated as (ILRS(n)+EPMA(n))/2.    ILRS, is an integral of linear regression slope. In this moving average,    the slope of a linear regression line is simply integrated as it is fitted    in a moving window of length n across the data. The derivative of ILRS is    the linear regression slope.    EPMA is an end point moving average - it is the endpoint of the linear regression    line of length n as it is fitted across the data. EPMA hugs the data more closely    than a simple or exponential moving average of the same length. Formula Parameters:                     Default:    Length                                  15    Price Data To Use                      Close**********************************/var fpArray = new Array();var bInit = false;function preMain(){    setStudyTitle("IE/2");    setCursorLabelName("IE/2");    setDefaultBarFgColor(Color.cyan, 0);    setPlotType(PLOTTYPE_LINE,0);    setDefaultBarThickness(3, 0);    setPriceStudy(true);        var x=0;    fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(15);    }    fpArray[x] = new FunctionParameter("Price", FunctionParameter.STRING);    with(fpArray[x++]){        setName("Price Data To Use");        addOption("open");         addOption("high");        addOption("low");        addOption("close");        addOption("hl2");        addOption("hlc3");        addOption("ohlc4");         setDefault("close");     }}var xIE = null;var xMyPrice = null;function main(Price, Length) {    var nIE = 0;        if (Price == null) Price = "close";    if (Length == null) Period = 15;        if ( bInit == false ) {         xMyPrice = eval(Price)();        xIE = efsInternal("Calc_IE", xMyPrice, Length);        bInit = true;     }     if (getCurrentBarCount() <= Length) return;        nIE = xIE.getValue(0);    return nIE;}function Calc_IE(xMyPrice, Length){    var nAvg = 0.0;    var nSumBars = Length * (Length - 1) * 0.5;    var nSumSqrBars = (Length - 1) * Length * (2 * Length - 1) / 6;    var nSum1 = 0.0;    var nSumY = 0.0;    for (var i = 0; i < Length; i++)    {        nAvg += xMyPrice.getValue(-i);        nSum1 += i * xMyPrice.getValue(-i);        nSumY += xMyPrice.getValue(-i);    }    nAvg /= Length;        var nSum2 = nSumBars * nSumY;    var nNum1 = Length * nSum1 - nSum2;    var nNum2 = nSumBars * nSumBars - Length * nSumSqrBars;    var nLinRegSlope = 0.0;        if (nNum2 != 0)    {        nLinRegSlope = nNum1 / nNum2;    }        var nILRS = nLinRegSlope + nAvg;    var nIntercept = (nSumY - nLinRegSlope * nSumBars) / Length;    var nLinearRegValue = nIntercept + nLinRegSlope * (Length - 1);    var nIE =  (nILRS + nLinearRegValue) / 2;           return nIE;}