Announcement

Collapse
No announcement yet.

TFS: Volume Oscillator

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

  • TFS: Volume Oscillator

    File Name: TSF_VolOscAvg.efs

    Description:
    TFS: Volume Oscillator

    Formula Parameters:
    AvgLen : 7

    Notes:
    This is the second part of TFS trading strategy. The concept of this
    indicator is similar to that of On-Balance Volume indicator (OBV). It
    is calculated according to these rules:
    If Close > Open, Volume is positive
    If Close < Open, Volume is negative
    If Close = Open, Volume is neutral
    Then you take the 7-day MA of the results.


    Download File:
    TSF_VolOscAvg.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:        
        TFS: Volume Oscillator 
        
    Version:            1.0  05/28/2009
     
    Formula Parameters:                     Default:
        AvgLen                              7
        
    Notes:
        This is the second part of TFS trading strategy. The concept of this 
        indicator is similar to that of On-Balance Volume indicator (OBV). It 
        is calculated according to these rules:
        If Close > Open, Volume is positive
        If Close < Open, Volume is negative
        If Close = Open, Volume is neutral
        Then you take the 7-day MA of the results. 

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

    function 
    preMain() {
        
    setStudyTitle("TFS: Volume Oscilator");
        
    setCursorLabelName("VolOsc",0);
        
    setPlotType(PLOTTYPE_HISTOGRAM0);
        
    setDefaultBarFgColor(Color.blue0);
        
    addBand(0PS_SOLID1Color.red);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("AvgLen"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(7);
        }    
    }

    var 
    xTFS_VolumeOsc null;

    function 
    main(AvgLen) {
    var 
    nBarState getBarState();
    var 
    nTFS_VolumeOsc 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    AvgLen == nullAvgLen 7;
        }
        if (
    bInit == false) {
            
    xTFS_VolumeOsc efsInternal("Calc_TFS_VolumeOsc"AvgLen);
            
    bInit true;
        }
        
    nTFS_VolumeOsc xTFS_VolumeOsc.getValue(0);
        if (
    nTFS_VolumeOsc == null) return;
        return 
    nTFS_VolumeOsc;
    }

    var 
    bSecondInit false;
    var 
    xClose null;
    var 
    xOpen null;
    var 
    xVolume null;

    function 
    Calc_TFS_VolumeOsc(AvgLen) {
    var 
    nRes 0;
    var 
    0;
    var 
    nVolAccum 0;
        if (
    bSecondInit == false) {
            
    xClose close();
            
    xOpen open();
            
    xVolume volume();
            
    bSecondInit true;
        }
        if (
    xClose.getValue(-AvgLen) == null) return;
        for (
    0AvgLeni++) {
            if (
    xClose.getValue(-i) > xOpen.getValue(-i)) nVolAccum += xVolume.getValue(-i);
            if (
    xClose.getValue(-i) < xOpen.getValue(-i)) nVolAccum -= xVolume.getValue(-i);
        }
        
    nRes nVolAccum AvgLen;
        return 
    nRes;

Working...
X