FSRS (Modification of FSK Indicator)

ICE Data Services -

FSRS.efs                                                                                                         EFSLibrary - Discussion Board

File Name: FSRS.efs


Description:
FSRS (Modification of FSK Indicator)

 

Formula Parameters:
BuyZone : 50

Notes:
FSRS is the modification of FSK indicator. It uses RSI in the calculation.
The FSRS (Fast & Slow RSI) is constructed from five different parts.
The Kurtosis, the Fast Kurtosis(FK), the Fast/Slow Kurtosis(FSK), FSRS and Weighted FSRS.

 

Download File:
FSRS.efs




EFS 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:        
    FSRS 
    
Version:            1.0  01/12/2009

Formula Parameters:                     Default:
    BuyZone                             50 

Notes:
    FSRS is the modification of FSK indicator. It uses RSI in the calculation.
    The FSRS (Fast & Slow RSI) is constructed from five different parts. 
    The Kurtosis, the Fast Kurtosis(FK), the Fast/Slow Kurtosis(FSK), FSRS and Weighted FSRS.

**********************************/

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

function preMain() {
    setStudyTitle("FSRS");
    setCursorLabelName("BZ", 0);
    setCursorLabelName("FSRS", 1);
    setDefaultBarFgColor(Color.blue, 0);
    setDefaultBarFgColor(Color.red, 1);
 
    var x=0;
    fpArray[x] = new FunctionParameter("BuyZone", FunctionParameter.NUMBER);
	with(fpArray[x++]){
        setLowerLimit(1);		
        setDefault(50);
    }
}

var xMOM_R = null;
var xMOM_RAvr = null;
var xVal6 = null
var xVal5 = null;

function main(BuyZone) {
var nState = getBarState();
var nVal5 = 0;
var nVal6 = 0;

    if (nState == BARSTATE_ALLBARS) {
        if (BuyZone == null) BuyZone = 50;
    }    
    
    if ( bInit == false ) { 
        xMOM_R = mom(1, mom(3));
        xMOM_RAvr = ema(65, xMOM_R);
        xVal5 = efsInternal("Calc_Val5", wma(6, xMOM_RAvr), rsi(9));
        xVal6 = wma(6, xVal5);
        addBand(BuyZone,PS_SOLID,1,Color.green, "0");        
        bInit = true; 
    } 

    if (getCurrentBarCount() < 65) return;

    nVal5 = xVal5.getValue(0);
    nVal6 = xVal6.getValue(0);
    
    if (nVal5 == null || nVal6 == null) return;

    return new Array(nVal5, nVal6);
}

function Calc_Val5(xMOM_RWAvr, xRSI) {
var nRes = 0;
    nRes = 10000 * xMOM_RWAvr.getValue(0) + xRSI.getValue(0);
    if (nRes == null) nRes = 1;
    return nRes;
}