Announcement

Collapse
No announcement yet.

BB Flat SW

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

  • BB Flat SW

    File Name: BBflat_sw.efs

    Description:
    BBFlat SW

    Formula Parameters:
    Length : 9
    Deviation : 1.5
    Source of Price : Close
    MA Type : SMA


    Notes:



    Download File:
    BBflat_sw.efs



    EFS Code:
    PHP Code:
    /*********************************
    Provided By:  
        eSignal (Copyright c eSignal), a division of Interactive Data 
        Corporation. 2009. 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:        
        BBFlat SW
    Version:            1.0  08/26/2009
     
    Formula Parameters:                     Default:
        Length                              9
        Deviation                           1.5
        Source of Price                     Close
        MA Type                             SMA
       
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("BBFlat SW");
        
    setCursorLabelName("BBFlatP"0);
        
    setDefaultBarFgColor(Color.red0);
        
    setPlotType(PLOTTYPE_LINE0);
        
    setCursorLabelName("BBFlatM"1);
        
    setDefaultBarFgColor(Color.red1);
        
    setPlotType(PLOTTYPE_LINE1);
        
    setCursorLabelName("BBFlat"2);
        
    setDefaultBarFgColor(Color.green2);
        
    setPlotType(PLOTTYPE_LINE2);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Length");
            
    setLowerLimit(1);
            
    setDefault(9);
        }    
        
    fpArray[x] = new FunctionParameter("Deviation"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("Deviation");
            
    setDefault(1.5);
        }        
        
    fpArray[x] = new FunctionParameter("sPrice"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Source of Price");
            
    addOption("open"); 
            
    addOption("high");
            
    addOption("low");
            
    addOption("close");
            
    addOption("hl2");
            
    addOption("hlc3");
            
    addOption("ohlc4"); 
            
    setDefault("close"); 
        }    
        
    fpArray[x] = new FunctionParameter("sMAType"FunctionParameter.STRING);
        
    with(fpArray[x++]) {
            
    setName("MA Type");
            
    addOption("sma");
            
    addOption("ema");
            
    addOption("wma");
            
    addOption("vwma");
            
    setDefault("sma");
        }
    }

    var 
    xBBFlatP null;
    var 
    xBBFlatM null;
    var 
    xBBFlat null;

    function 
    main(LengthDeviationsPricesMAType) {
    var 
    nBarState getBarState();
    var 
    nBBFlatP 0;
    var 
    nBBFlatM 0;
    var 
    nBBFlat 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    Length == nullLength 9;
            if(
    Deviation == nullDeviation 1.5;        
            if(
    sPrice == nullsPrice "close";
            if(
    sMAType == nullsMAType "sma";
        }
        if (
    bInit == false) {
            
    addBand(0PS_SOLID1Color.black"ZeroLine");
            
    xBBFlatP efsInternal("Calc_BBFlat"LengthDeviationsPricesMAType)
            
    xBBFlatM getSeries(xBBFlatP1);
            
    xBBFlat getSeries(xBBFlatP2);
            
    bInit true;
        }
        
    nBBFlatP xBBFlatP.getValue(0);
        
    nBBFlatM xBBFlatM.getValue(0);
        
    nBBFlat xBBFlat.getValue(0);
        if (
    nBBFlatP == null || nBBFlat == null) return;
        return new Array(
    nBBFlatPnBBFlatMnBBFlat);
    }

    var 
    bSecondInit false;
    var 
    xPrice null;
    var 
    xMA null;
    var 
    xStdDev null;

    function 
    Calc_BBFlat(LengthDeviationsPricesMAType) {
    var 
    nStdP 0;
    var 
    nStdC 0;
        if (!
    bSecondInit) {
            
    xPrice = eval(sPrice)();
            
    xMA = eval(sMAType)(LengthxPrice);
            
    xStdDev efsInternal("Calc_StdDev"LengthxMAxPrice);
            
    bSecondInit true;
        }
        
    nStdP xStdDev.getValue(0);
        if (
    nStdP == null) return;
        
    nStdP Deviation nStdP;
        
    nStdC xPrice.getValue(0) - xMA.getValue(0);
        return new Array(
    nStdP, -nStdPnStdC);
    }

    function 
    Calc_StdDev(LookBackxPrice1AvgxPrice1) {
    var 
    nRes 0;
        if (
    xPrice1Avg.getValue(0) == null) return;
        for (var 
    0LookBacki++) {
            
    nRes += Math.pow(xPrice1.getValue(-i) - xPrice1Avg.getValue(0),2);
        }
        
    nRes Math.sqrt(nRes LookBack);
        if (
    nRes == nullnRes 1;
        return 
    nRes;

Working...
X