Announcement

Collapse
No announcement yet.

2004 Sept: The Decomposition Method (ReverseEngRSI.efs)

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

  • 2004 Sept: The Decomposition Method (ReverseEngRSI.efs)

    File Name: RevEngRSI.efs

    Description:
    Reverse Engineering RSI, by Giorgos Siligardos

    Formula Parameters:
    WildPer : 14
    Value : 50


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


    Download File:
    RevEngRSI.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:        
        Reverse Engineering RSI, by Giorgos Siligardos
        
    Version:            1.0  05/04/2009
        
    Formula Parameters:                     Default:
        WildPer                             14
        Value                               50

    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;

    function 
    preMain() {
        
    setPriceStudy(true);
        
    setStudyTitle("Reverse Engineering RSI");
        
    setCursorLabelName("RSI",0);
        
    setDefaultBarFgColor(Color.red,0);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Value"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(50);
        }
        
    fpArray[x] = new FunctionParameter("WildPer"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(14);
        }
    }

    var 
    xRevEngRSI null;

    function 
    main(ValueWildPer) {
    var 
    nBarState getBarState();
    var 
    nRevEngRSI 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    Value == nullValue 50;
            if(
    WildPer == nullWildPer 14;
        }    
        if (
    bInit == false) {
            
    xRevEngRSI efsInternal("Calc_RevEngRSI"ValueWildPer);
            
    bInit true;
        }
        
    nRevEngRSI xRevEngRSI.getValue(0);
        if (
    nRevEngRSI == null) return;
        return 
    nRevEngRSI;
    }

    var 
    bSecondInit false;
    var 
    xAUC null;
    var 
    xADC null;
    var 
    xClose null;

    function 
    Calc_RevEngRSI(ValueWildPer) {
    var 
    nRes 0;
    var    
    ExpPer WildPer 1;
    var    
    / (ExpPer 1);
    var 
    nADC 0;
    var 
    nAUC 0;
    var 
    nVal 0;
        if (
    bSecondInit == false) {
            
    xClose close();
            
    xAUC efsInternal("Calc_AUC"KxClose);
            
    xADC efsInternal("Calc_ADC"KxClose);
        }
        
    nAUC xAUC.getValue(0);
        
    nADC xADC.getValue(0);
        if (
    nAUC == null || nADC == null) return;
        
    nVal = (WildPer 1) * (nADC Value / (100 Value) - nAUC);
        if(
    nVal >= 0)
            
    nRes xClose.getValue(0) + nVal;
        else
            
    nRes xClose.getValue(0) + nVal * (100 Value) / Value;
        return 
    nRes;
    }

    function 
    Calc_AUC(KxClose) {
    var 
    nRes 0;
    var 
    nRef ref(-1);
        if (
    xClose.getValue(-1) == null) return;
        if(
    xClose.getValue(0) > xClose.getValue(-1)){
            
    nRes * (xClose.getValue(0) - xClose.getValue(-1)) + (K) * nRef;
        } else {
            
    nRes = (K) * nRef;
        }
        return 
    nRes;
    }

    function 
    Calc_ADC(KxClose) {
    var 
    nRes 0;
    var 
    nRef ref(-1);
        if (
    xClose.getValue(-1) == null) return;
        if(
    xClose.getValue(0) > xClose.getValue(-1)){
            
    nRes = (K) * nRef;
        } else {
            
    nRes * (xClose.getValue(-1) - xClose.getValue(0)) + (K) * nRef;
        }
        return 
    nRes;

    Jason K.
    Project Manager
    eSignal - an Interactive Data company

    EFS KnowledgeBase
    JavaScript for EFS Video Series
    EFS Beginner Tutorial Series
    EFS Glossary
    Custom EFS Development Policy

    New User Orientation
Working...
X