Announcement

Collapse
No announcement yet.

SEB - Standard Error Bands

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

  • SEB - Standard Error Bands

    File Name: stderrbands_orig.efs

    Description:
    This Indicator plots SEB Std Error bands indicator

    Formula Parameters:
    Length for regression line: 21
    Length for standard errors: 3


    Notes:
    The construction of standard error bands is similar to that of Bollinger
    bands. The difference: instead of measuring the variance or degree of volatility
    around the average price using the standard deviation, standard error bands require
    the use of the standard error of the estimate around a 21-period linear regression line.
    The middle band is calculated as the ending value of a 21-period linear regression line
    and adding two standard errors to the ending value of the regression line to form the
    upper standard error band. To form the lower standard error band, subtract two standard
    errors from the end value of the linear regression line.

    This indicator is calculated according to this formula:

    Upper Band = SmoothedRegressionLine (EndPointOfRegression of Close Price,SDeg) + SmoothedStdError
    Lower Band = SmoothedRegressionLine (EndPointOfRegression of Close Price,SDeg) - SmoothedStdError


    Download File:
    stderrbands_orig.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:        

        This Indicator plots SEB Std Error bands indicator

    Version:            1.0  10/03/2008

    Notes:

        The construction of standard error bands is similar to that of Bollinger 
        bands. The difference: instead of measuring the variance or degree of volatility 
        around the average price using the standard deviation, standard error bands require 
        the use of the standard error of the estimate around a 21-period linear regression line.
        The middle band is calculated as the ending value of a 21-period linear regression line 
        and adding two standard errors to the ending value of the regression line to form the 
        upper standard error band. To form the lower standard error band, subtract two standard 
        errors from the end value of the linear regression line.

        This indicator is calculated according to this formula:

        Upper Band = SmoothedRegressionLine (EndPointOfRegression of Close Price,SDeg) + SmoothedStdError
        Lower Band = SmoothedRegressionLine (EndPointOfRegression of Close Price,SDeg) - SmoothedStdError

    Formula Parameters:                     Default:

        Length for regression line          21
        Length for standard errors          3
        
    **********************************/

    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain() {
        
    setPriceStudy(true);
        
    setStudyTitle("SEB Std. Error Bands");
        
    setCursorLabelName("LinRegS"0);
        
    setCursorLabelName("+StdErrS"1);
        
    setCursorLabelName("-StdErrS"2);
        
    setDefaultBarFgColor(Color.red0);
        
    setDefaultBarFgColor(Color.blue1);
        
    setDefaultBarFgColor(Color.green2);
        
        
    askForInput();
        var 
    x=0;
       
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);        
            
    setDefault(21);
        }

        
    fpArray[x] = new FunctionParameter("SDeg"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Standard error length");
            
    setLowerLimit(1);        
            
    setDefault(3);
        }
    }

    function 
    main(LengthSDeg) {

        var 
    nBarState getBarState();
        if(
    nBarState == BARSTATE_ALLBARS) {
            if (
    Length == nullLength 21;
            if (
    SDeg == nullSDeg 3;
        }
        
        var 
    0;
        var 
    0;
        var 
    SumLRV 0;
        var 
    SErr 0;

        for (
    0SDegj++) {

            var 
    SumBars 0;
            var 
    SumSqrBars 0;
            var 
    SumY 0;
            var 
    Sum2 0;
            var 
    Slope 0;
            var 
    Num1 0;
            var 
    Num2 0;
            var 
    Intercept 0;
            var 
    LinearRegValue 0;
            var 
    Value1 0;
            var 
    Value2 0;
            var 
    Value3 0;
            var 
    StdErr 0;
            var 
    SumSC 0;
            var 
    SumXC 0;
            var 
    AvgC 0;
            var 
    AvgX 0;
            var 
    CalcB 0;
            var 
    CalcA 0;
            var 
    Val1 0;
            var 
    Val2 0;

            for (
    0Lengthi++) {
                
    SumY += close(- j);
                
    SumSC += close(- j) * close(- j);  
                
    SumXC += -close(- j);
            }
            
    AvgC offsetSeries(sma(Lengthclose()), j);
            
    AvgX = - (Length 1) / 2;     
            
    Val1 SumXC - (Length AvgX AvgC);
            
    Val2 Length * (Length Length -1) / 12;
            
    CalcB Val1 Val2;
            
    CalcA AvgC - (CalcB AvgX);
            
    Value1 SumSC CalcA SumY CalcB SumXC;
            
    Value2 Length 2;
            
    Value3 Value1 Value2;
            
            if (
    Value3 0) {
                
    StdErr Math.sqrt(Value1 Value2);
            }
            
    SErr += StdErr;

            
    SumBars Length * (Length 1) * 0.5;
            
    SumSqrBars = (Length 1) * Length * (Length 1) / 6;
            
    Sum2 SumBars SumY;
            
    Num1 = -Length SumXC Sum2;
            
    Num2 SumBars SumBars Length SumSqrBars;
            
            if (
    Num2 != 0Slope Num1 Num2;
            else 
    Slope 0;

            
    Intercept = (SumY Slope SumBars) / Length;
            
    LinearRegValue Intercept Slope * (Length 1);
            
    SumLRV += LinearRegValue;
        }
        
    SumLRV /= SDeg;
        
    SErr /= SDeg;

        return new Array(
    SumLRVSumLRV SErrSumLRV SErr);

Working...
X