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;
}