Announcement

Collapse
No announcement yet.

2010 Apr: Modified Price-Volume Trend Indicator

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

  • 2010 Apr: Modified Price-Volume Trend Indicator

    File Name: Modified_PVT.efs

    Description:
    Modified Price-Volume Trend Indicator

    Formula Parameters:
    Level : 0
    Scale : 1


    Notes:
    The related article is copyrighted material. If you are not a subscriber
    of Stocks & Commodities, please visit www.traders.com.



    Download File:
    Modified_PVT.efs



    EFS Code:
    PHP Code:
    /*********************************
    Provided By:  
        eSignal (Copyright c eSignal), a division of Interactive Data 
        Corporation. 2010. 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:        
        Modified Price-Volume Trend Indicator
        
    Version:            1.00  02/09/2010

    Formula Parameters:                     Default:
        Level                               0
        Scale                               1
        
    Notes:
        The related article is copyrighted material. If you are not a subscriber
        of Stocks & Commodities, please visit [url]www.traders.com.[/url]

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

    function 
    preMain() {
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Modified PVT");
        
    setCursorLabelName("MPVT"0);
        
    setDefaultBarFgColor(Color.red0);
        
    setPlotType(PLOTTYPE_LINE0);
        
    setDefaultBarThickness(20);
        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("Level"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("Level");
            
    setLowerLimit(-1000);
            
    setUpperLimit(10000);        
            
    setDefault(0);
        }    
        
    fpArray[x] = new FunctionParameter("Scale"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("Scale");
            
    setLowerLimit(0.0001);        
            
    setUpperLimit(100000);        
            
    setDefault(1);
        }        
    }

    var 
    xMPVT null;

    function 
    main(LevelScale) {
    var 
    nBarState getBarState();
    var 
    nMPVT 0;
        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    Level == nullLevel 0;
            if (
    Scale == nullScale 1;
        }    
        if (!
    bInit) { 
            
    xMPVT efsInternal("Calc_MPVT"LevelScale);
            
    bInit true
        }
        
    nMPVT xMPVT.getValue(0);
        if (
    nMPVT == null) return;
        return 
    nMPVT;
    }

    var 
    bSecondInit false;
    var 
    xCumPVT 0;

    function 
    Calc_MPVT(LevelScale) {
    var 
    nRes 0;
    var 
    nCumPVT 0;
        if (!
    bSecondInit) {
            
    xCumPVT efsInternal("Calc_CumPVT");
            
    bSecondInit true;
        }
        
    nCumPVT xCumPVT.getValue(0);
        if (
    nCumPVT == null) return;
        
    nRes Level Scale nCumPVT;
        return 
    nRes;
    }

    var 
    bThirdInit false;
    var 
    xOHLC4 null;
    var 
    xV null;

    function 
    Calc_CumPVT() {
    var 
    nRes 0;
    var 
    nRef 0;
    var 
    nOHLC4 0;
    var 
    nOHLC4_1 0;
    var 
    rV 0;
        if (!
    bThirdInit) {
            
    xOHLC4 ohlc4();
            
    xV volume();
            
    obv();
            
    bThirdInit true;
        }
        
    nOHLC4 xOHLC4.getValue(0);
        
    nOHLC4_1 xOHLC4.getValue(-1);
        
    nRef ref(-1);
        if (
    nOHLC4_1 == null) return;
        
    rV xV.getValue(0) / 50000;
        
    nRes nRef + (rV * (nOHLC4 nOHLC4_1) / nOHLC4_1);
        return 
    nRes;
    }

    function 
    verify() {
        var 
    false;
        if (
    getBuildNumber() < 779) {
            
    drawTextAbsolute(535"This study requires version 8.0 or later."
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"error");
            
    drawTextAbsolute(520"Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp"
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"upgrade");
            return 
    b;
        } else {
            
    true;
        }
        return 
    b;

Working...
X