Announcement

Collapse
No announcement yet.

Qualitative Quantitative Estimation

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Qualitative Quantitative Estimation

    File Name: QQE.efs

    Description:
    Qualitative Quantitative Estimation

    Formula Parameters:
    RSI Length : 14
    SF : 5


    Notes:


    Download File:
    QQE.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:        
        Qualitative Quantitative Estimation
        
    Version:            1.0  07/19/2009
     
    Formula Parameters:                     Default:
        RSI Length                          14
        SF                                  5
        
    Notes:
        
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("Qualitative Quantitative Estimation");
        
    setCursorLabelName("QQE"0);
        
    setDefaultBarFgColor(Color.blue0);
        
    setPlotType(PLOTTYPE_LINE0);
        
    setDefaultBarThickness(20);
        
    setDefaultBarFgColor(Color.red1);
        
    setPlotType(PLOTTYPE_LINE1);
        
    setDefaultBarThickness(11);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("RSILength"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setName("RSI Length");
            
    setLowerLimit(1);
            
    setDefault(14);
        }    
        
    fpArray[x] = new FunctionParameter("SF"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(5);
        }        
    }

    var 
    xTrLevelSlow null;
    var 
    xRSI null;

    function 
    main(RSILengthSF) {
    var 
    nBarState getBarState();
    var 
    nTrLevelSlow 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    RSILength == nullRSILength 14;
            if(
    SF == nullSF 5;
        }
        if (
    bInit == false) {
            
    xTrLevelSlow efsInternal("Calc_TrLevelSlow"SFRSILength);
            
    xRSI getSeries(xTrLevelSlow1);
            
    bInit true;
        }
        
    nTrLevelSlow xTrLevelSlow.getValue(0)
        if (
    nTrLevelSlow== null) return;
        return new Array(
    xRSI.getValue(0), nTrLevelSlow);
    }

    var 
    bSecondInit false;
    var 
    xMaAtrRsi null;
    var 
    xMARSI null;
    var 
    tr 0;
    var 
    tr1 0;

    function 
    Calc_TrLevelSlow(SFRSILength) {
    var 
    nBarState getBarState();
    var 
    nRes 0;
    var 
    WildersLength RSILength 1;
        
    nRes tr;
        if (
    bSecondInit == false) {
            
    xMARSI efsInternal("Calc_AtrRSI"SFRSILength);
            
    xMaAtrRsi ema(WildersLengthema(WildersLength getSeries(xMARSI1)));
            
    bSecondInit true;
        }
        if (
    xMaAtrRsi.getValue(-1) == null) return;
        if (
    nBarState == BARSTATE_NEWBAR) {
            
    tr1 tr;
        }
        var 
    rsi0 xMARSI.getValue(0);
        var 
    rsi1 xMARSI.getValue(-1);    
        var 
    dar xMaAtrRsi.getValue(0) * 4.236;
        var 
    dv tr1;
        if (
    rsi0 tr1) {
            
    tr rsi0 dar;
            if (
    rsi1 dv) {
                if (
    tr dv) {
                    
    tr dv;
                }    
            }        
            
    nRes tr;        
        } else {
            
    tr rsi0 dar;
            if (
    rsi1 dv) {
                if (
    tr dv) {
                    
    tr dv;
                }    
            }        
            
    nRes tr;
        }
        return new Array(
    nResrsi0);
    }

    bThreadInit false;
    var 
    xLocalRSI null;
    var 
    xLocalRSIMA null;

    function 
    Calc_AtrRSI(SFRSILength) {
    var 
    nRes 0;
    var 
    nRSI 0;
    var 
    nRSI1 0;
        if (
    bThreadInit == false) {
            
    xLocalRSI rsi(RSILength);
            
    xLocalRSIMA ema(SFxLocalRSI);
            
    bThreadInit true;
        }    
        
    nRSI xLocalRSIMA.getValue(0);
        
    nRSI1 xLocalRSIMA.getValue(-1);
        if (
    nRSI1 == null) return;
        
    nRes Math.abs(nRSI1 nRSI);
        return new Array(
    nRSInRes);

Working...
X