Announcement

Collapse
No announcement yet.

Ie/2

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ie/2

    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:
    PHP 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/2

    Version:            1.0  09/23/2008

    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. 

    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.cyan0);
        
    setPlotType(PLOTTYPE_LINE,0);
        
    setDefaultBarThickness(30);
        
    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(PriceLength) {
        var 
    nIE 0;
        
        if (
    Price == nullPrice "close";
        if (
    Length == nullPeriod 15;
        
        if ( 
    bInit == false ) { 
            
    xMyPrice = eval(Price)();
            
    xIE efsInternal("Calc_IE"xMyPriceLength);
            
    bInit true
        } 

        if (
    getCurrentBarCount() <= Length) return;
        
        
    nIE xIE.getValue(0);

        return 
    nIE;
    }

    function 
    Calc_IE(xMyPriceLength){
        var 
    nAvg 0.0;
        var 
    nSumBars Length * (Length 1) * 0.5;
        var 
    nSumSqrBars = (Length 1) * Length * (Length 1) / 6;
        var 
    nSum1 0.0;
        var 
    nSumY 0.0;

        for (var 
    0Lengthi++)
        {
            
    nAvg += xMyPrice.getValue(-i);
            
    nSum1 += 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;

Working...
X