Announcement

Collapse
No announcement yet.

Upper-Lower Pro Band.

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

  • Upper-Lower Pro Band.

    File Name: Upper_LowerProBand.efs

    Description:
    Upper-Lower Pro Band

    Formula Parameters:
    Length: 14

    Notes:
    Bands define the upper and lower boundaries of a security's normal trading
    range. A sell signal is generated when the security reaches the upper band
    whereas a buy signal is generated at the lower band. The optimum percentage
    shift depends on the volatility of the security--the more volatile, the larger
    the percentage.


    Download File:
    Upper_LowerProBand.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:        
        Upper-Lower Pro Band

    Version:            1.0  10/04/2008

    Notes:
        Bands define the upper and lower boundaries of a security's normal trading
        range. A sell signal is generated when the security reaches the upper band
        whereas a buy signal is generated at the lower band. The optimum percentage
        shift depends on the volatility of the security--the more volatile, the larger
        the percentage.

    Formula Parameters:                     Default:
        Length                                14

    **********************************/

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

    function 
    preMain(){
        
    setPriceStudy(true);
        
    setStudyTitle("Upper-Lower Pro Band");
        
    setCursorLabelName("PU"0);
        
    setCursorLabelName("PL"1);
        
    setDefaultBarFgColor(Color.blue0);
        
    setDefaultBarFgColor(Color.red1);
       

        var 
    x=0;    
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);  
            
    setDefault(14);
        }
    }

    var 
    xUpper null;
    var 
    xLower null;

    function 
    main(Length) {
    var 
    nState getBarState();
    var 
    nUpper 0;
    var 
    nLower 0;

        if (
    nState == BARSTATE_ALLBARS) {
            if (
    Length == nullLength 14;
        }


        if ( 
    bInit == false ) { 
        var 
    SumBars Length * (Length 1) * .5;
        var 
    SumSqrBars = (Length 1) * Length * (Length 1) / 6;
            
    xUpper efsInternal("Calc_Upper"LengthSumBarsSumSqrBars);
            
    xLower getSeries(xUpper,1);        
            
    bInit true
        } 

        
    nUpper xUpper.getValue(0);
        
    nLower xLower.getValue(0);

        if (
    nUpper == null || nLower == null) return;

        return new Array (
    nUppernLower);
    }



    var 
    xInit false;
    var 
    xHigh null;
    var 
    xLow null;


    function 
    Calc_Upper(LengthSumBarsSumSqrBars){
    var 
    SH 0.0;
    var 
    Sum1_2 0.0;
    var 
    SumY2 0.0;
    var 
    SL 0.0;
    var 
    Sum1_1 0.0;
    var 
    SumY1 0.0;
    var 
    0;

        if(
    xInit==false){
            
    xHigh high();
            
    xLow low();
            
    xInit true;
        }

        if(
    xHigh.getValue(-Length) == null || xLow.getValue(-Length) == null) return;

        for (
    0Lengthi++){
            
    Sum1_2 += xHigh.getValue(-i);
            
    SumY2 += xHigh.getValue(-i);
            
    Sum1_1 += xLow.getValue(-i);
            
    SumY1 += xLow.getValue(-i);
        } 

        var 
    Sum2_2 SumBars SumY2;
        var 
    Num1_2 Length Sum1_2 Sum2_2;
        var 
    Sum2_1 SumBars SumY1;
        var 
    Num1_1 Length Sum1_1 Sum2_1;
        var 
    Num2 SumBars SumBars Length SumSqrBars;

        
    SH Num1_2 Num2;
        
    SL Num1_1 Num2;

        var 
    Value3 0.0;
        var 
    PU 0.0;
        var 
    Value2 0.0;
        var 
    PL 0.0;

        for (
    1<= Lengthi++){
            
    Value3=xHigh.getValue(-1) + (SH * (1));
            
    Value2=xLow.getValue(-1) + (SL * (1));
            if (
    == 1){
                
    PU=Value3;
                
    PL=Value2;
            }
            if (
    Value3 PUPU Value3;
            if (
    Value2 PLPL Value2;
        }

     
        return new Array (
    PUPL);

Working...
X