Announcement

Collapse
No announcement yet.

Chaikin Volatility

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

  • Chaikin Volatility

    File Name: ChaikinVolatility.efs

    Description:
    Chaikin Volatility

    Formula Parameters:
    Length: 10
    ROC Length: 12
    Price 1 Data To Use: High
    Price 2 Data To Use: Low


    Notes:
    Chaikin's Volatility indicator compares the spread between a security's
    high and low prices. It quantifies volatility as a widening of the range
    between the high and the low price.


    Download File:
    ChaikinVolatility.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:        
        Chaikin Volatility 

    Version:            1.0  11/10/2008

    Formula Parameters:                     Default:
        Length                                  10
        ROC Length                              12
        Price 1 Data To Use                    High
        Price 2 Data To Use                    Low    

    Notes:
        Chaikin's Volatility indicator compares the spread between a security's
        high and low prices. It quantifies volatility as a widening of the range
        between the high and the low price.

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


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

    function 
    preMain() {
        
    setPriceStudy(false)
        
    setStudyTitle("Chaikin Volatility");
        
    setCursorLabelName("Chaikin Volatility"0);
        
    setDefaultBarFgColor(Color.blue0);
        
    setPlotType(PLOTTYPE_LINE,0);
        
    setDefaultBarThickness(1,0);

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

        
    fpArray[x] = new FunctionParameter("ROCLen"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("ROC Length");
            
    setLowerLimit(1);        
            
    setDefault(12);
        }

        
    fpArray[x] = new FunctionParameter("Price1"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Price 1 Data To Use");
            
    addOption("open"); 
            
    addOption("high");
            
    addOption("low");
            
    addOption("close");
            
    addOption("hl2");
            
    addOption("hlc3");
            
    addOption("ohlc4"); 
            
    setDefault("high"); 
        }

        
    fpArray[x] = new FunctionParameter("Price2"FunctionParameter.STRING);
        
    with(fpArray[x++]){
            
    setName("Price 2 Data To Use");
            
    addOption("open"); 
            
    addOption("high");
            
    addOption("low");
            
    addOption("close");
            
    addOption("hl2");
            
    addOption("hlc3");
            
    addOption("ohlc4"); 
            
    setDefault("low"); 
        }
    }

    var 
    xROC_EMA null;
    var 
    xPrice1 null;
    var 
    xPrice2 null;
    var 
    xPrice null;

    function 
    main(Price1Price2LengthROCLen) {
    var 
    nState getBarState();
    var 
    nROC 0;

        if (
    nState == BARSTATE_ALLBARS) {
            if (
    Price1 == nullPrice1 "high";
            if (
    Price2 == nullPrice2 "low";
            if (
    Length == nullLength 10;
            if (
    ROCLen == nullROCLen 12;
        }
        
        if ( 
    bInit == false ) { 
            
    xPrice1 = eval(Price1)();
            
    xPrice2 = eval(Price2)();        
            
    xPrice efsInternal("Calc_Price"xPrice1xPrice2)
            
    xROC_EMA roc(ROCLenema(LengthxPrice));
            
    bInit true
        } 

        if (
    getCurrentBarCount() < Math.max(LengthROCLen)) return;

        
    nROC xROC_EMA.getValue(0);
        return 
    nROC;
    }

    function 
    Calc_Price(xPrice1xPrice2) {
    var 
    nRes 0;
        
    nRes xPrice1.getValue(0) - xPrice2.getValue(0);
        if (
    nRes == nullnRes 1;
        return 
    nRes;

Working...
X