Announcement

Collapse
No announcement yet.

CMOabsav

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

  • CMOabsav

    File Name: CMOabsav.efs

    Description:
    CMOabsav

    Formula Parameters:
    Length1 : 5
    Length2 : 10
    Length3 : 20
    TopBand : 70
    LowBand : 20


    Notes:
    This indicator plots the absolute value of CMO averaged over three
    different lengths. This indicator plots a classical-looking oscillator,
    which is really an averaged value based on three different periods.


    Download File:
    CMOabsav.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:        
        CMOabsav 
     
    Version:            1.0  04/06/2009

    Formula Parameters:                     Default:
        Length1                             5
        Length2                             10
        Length3                             20
        TopBand                             70
        LowBand                             20

    Notes:
        This indicator plots the absolute value of CMO averaged over three 
        different lengths. This indicator plots a classical-looking oscillator, 
        which is really an averaged value based on three different periods.
    **********************************/

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

    function 
    preMain() {
        
    setPriceStudy(false);
        
    setStudyTitle("CMOabsav");
        
    setCursorLabelName("CMOabsav"0);
        
    setDefaultBarFgColor(Color.blue0);
        
    setStudyMax(101);
        
    setStudyMin( - 1);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Length1"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(5);
        }
        
    fpArray[x] = new FunctionParameter("Length2"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(10);
        }
        
    fpArray[x] = new FunctionParameter("Length3"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(20);
        }
        
    fpArray[x] = new FunctionParameter("TopBand"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(70);
        }
        
    fpArray[x] = new FunctionParameter("LowBand"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(20);
        }
    }

    var 
    xCMOabsav null;

    function 
    main(Length1Length2Length3TopBandLowBand) {
        var 
    nBarState getBarState();
        var 
    nCMOabsav 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    Length1 == nullLength1 5;
            if (
    Length2 == nullLength2 10;
            if (
    Length3 == nullLength3 20;
            if (
    TopBand == nullTopBand 70;
            if (
    LowBand == nullLowBand 20;
        }

        if (
    bInit == false) {
            
    xCMOabsav efsInternal("Calc_CMO"Length1Length2Length3);
            
    addBand(TopBandPS_SOLID1Color.red"TopBand");
            
    addBand(LowBandPS_SOLID1Color.brown"LowBand");
            
    addBand(0PS_SOLID1Color.green"ZeroLine");
            
    bInit true;
        }

        
    nCMOabsav xCMOabsav.getValue(0);
        if (
    nCMOabsav == null) {
            return;
        }
        return 
    nCMOabsav;
    }

    var 
    xSecondInit false;
    var 
    xMOM null;
    var 
    xMOMAbs null;

    function 
    Calc_CMO(Length1Length2Length3) {
        var 
    nRes 0;
        var 
    nMaxLen 0;
        var 
    0;
        var 
    nPrice 0;
        var 
    nPriceAbs 0;
        var 
    nSum1 0;
        var 
    nSum2 0;
        var 
    nSum3 0;
        var 
    naSum1 0;
        var 
    naSum2 0;
        var 
    naSum3 0;
        if (
    xSecondInit == false) {
            
    xMOM efsInternal("Calc_Price");
            
    xMOMAbs getSeries(xMOM1);
            
    xSecondInit true
        
    }
        
    nMaxLen Math.max(Length1Length2);
        
    nMaxLen Math.max(nMaxLenLength3);
        for (
    0nMaxLeni++) {
            
    nPrice xMOM.getValue( - i);
            
    nPriceAbs xMOMAbs.getValue( - i);
            if (
    Length1) {
                
    nSum1 += nPrice;
                
    naSum1 += nPriceAbs;
            }
            if (
    Length2) {
                
    nSum2 += nPrice;
                
    naSum2 += nPriceAbs;
            }
            if (
    Length3) {
                
    nSum3 += nPrice;
                
    naSum3 += nPriceAbs;
            }
        }
        
    nRes Math.abs(100 * (nSum1 naSum1 nSum2 naSum2 nSum3 naSum3) / 3);
        if (
    nRes == null) {
            return;
        }
        return 
    nRes;
    }

    var 
    yMOM null;

    function 
    Calc_Price() {
        var 
    nPrice 0;
        if (
    yMOM == null) {
            
    yMOM mom(1);
        }
        
    nPrice yMOM.getValue(0);
        return new Array(
    nPriceMath.abs(nPrice));

Working...
X