Announcement

Collapse
No announcement yet.

2002 Jan: Relative Vigor Index (RVI), by John Ehler's

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

  • 2002 Jan: Relative Vigor Index (RVI), by John Ehler's

    File Name: RelativeVigorIndex.efs

    Description:
    The following study is based on the January 2002 article, Relative Vigor Index (RVI), by John Ehlers's.

    Formula Parameters:
    Line Color RVI: Red
    Line Color Sig: Blue
    Line Thicknes: 2
    Display Cursor Labels: False



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

    Download File:
    RelativeVigorIndex.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:        
        Relative Vigor Index

    Version:            1.0  18/09/2008

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

    Formula Parameters:                     Default:
        Line Color RVI                          Red
        Line Color Sig                          Blue
        Line Thicknes                             2
        Display Cursor Labels                   False
    **********************************/


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

    function 
    preMain() {

        
    setPriceStudy(false);
        
    setShowCursorLabel(false);
        
    setShowTitleParametersfalse );
        
        
    setStudyTitle("Relative Vigor Index");
        
    setCursorLabelName("RVI"0);
        
    setCursorLabelName("Sig"1);    

        
    setDefaultBarFgColor(Color.red0);
        
    setDefaultBarFgColor(Color.blue1);    
        
    setPlotType(PLOTTYPE_LINE0); 
        
    setPlotType(PLOTTYPE_LINE1);     

        
    setDefaultBarThickness(20);
        
    setDefaultBarThickness(21);
       
        
    askForInput();
        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("LineColor1"FunctionParameter.COLOR);
        
    with(fpArray[x++]){
            
    setName("Line Color RVI");
            
    setDefault(Color.red);
        }    

        
    fpArray[x] = new FunctionParameter("LineColor2"FunctionParameter.COLOR);
        
    with(fpArray[x++]){
            
    setName("Line Color Sig");
            
    setDefault(Color.blue);
        }    


        
    fpArray[x] = new FunctionParameter("ViewValue"FunctionParameter.BOOLEAN);
        
    with(fpArray[x++]){
            
    setName("Display Cursor Labels");
            
    setDefault(false);
        }    
        
        
    fpArray[x] = new FunctionParameter("Length"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);        
            
    setDefault(10);
        }

        
    fpArray[x] = new FunctionParameter("Thickness"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("Line Thickness");
            
    setLowerLimit(1);        
            
    setDefault(2);
        }


    }

    var 
    xChange null;
    var 
    xMyRange null;
    var 
    xValue1First null;
    var 
    xValue2First null;
    var 
    xValue1Two null;
    var 
    xValue2Two null;
    var 
    xRVI null;
    var 
    xRVISig null;
    var 
    xNum null;
    var 
    xDen null;



    function 
    main(LengthThicknessLineColor1LineColor2ViewValue) {
    var 
    nLength1 0;
    var 
    nLength2 0;
    var 
    nRVI 0;
    var 
    nRVISig 0;


        if ( 
    bInit == false ) { 
            
    setDefaultBarFgColor(LineColor10);
            
    setDefaultBarFgColor(LineColor21);
            
    setDefaultBarThickness(Thickness0);
            
    setDefaultBarThickness(Thickness1);
            
    setShowCursorLabel(ViewValue);        

            
    xChange efsInternal("Calc_Change");
            
    xMyRange efsInternal("Calc_MyRange");

            
    nLength1 Math.floor((1) * 0.5);
            
    nLength2 Math.ceil((1) * 0.5);


            
    xValue1First efsInternal("TriAverage_gen"xChangenLength1);
            
    xValue2First efsInternal("TriAverage_gen"xMyRangenLength1);

            
    xValue1Two efsInternal("TriAverage_gen"xValue1FirstnLength2);
            
    xValue2Two efsInternal("TriAverage_gen"xValue2FirstnLength2);

            
    xNum efsInternal("Summation"xValue1TwoLength ) ;
            
    xDen efsInternal("Summation"xValue2TwoLength ) ;

            
    xRVI efsInternal("Calc_RVI" xNum xDen);

            
    xRVISig efsInternal("TriAverage_gen"xRVI) ;

            
    bInit true
        } 

        if (
    getCurrentBarCount() < Length) return;

        
    nRVI xRVI.getValue(0);
        
    nRVISig xRVISig.getValue(0);
      
        return new Array(
    nRVInRVISig); 


    }

    function 
    Calc_RVI(xNumxDen){
    var 
    nRes 0;
        if (
    xDen.getValue(0) > 0) {
            
    nRes = (xNum.getValue(0) / xDen.getValue(0));
            return 
    nRes;
        }
        return 
    0;
    }

    function 
    Summation(xSeriesnLength){
    var 
    nRes 0;
        for (var 
    0nLengthi++) {
               
    nRes += xSeries.getValue(-i); 
        } 
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }


    function 
    TriAverage_gen(xSeriesnLength){
    var 
    nRes 0;
        for (var 
    0nLengthi++) {
               
    nRes += xSeries.getValue(-i); 
        } 
        
    nRes nRes nLength;
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }

    function 
    Calc_Change(){
    var 
    nRes 0;
        
    nRes close(0) - open(0);
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }

    function 
    Calc_MyRange(){
    var 
    nRes 0;
        
    nRes high(0) - low(0);
        if (
    nRes == nullnRes 1;
        return 
    nRes;

Working...
X