File Name: Reverse_EMA.efs

Description:
The Reverse EMA Indicator by John F. Ehlers

Formula Parameters:

Reverse_EMA.efs

Alpha: 0.1

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

Download File:
Reverse_EMA.efs


Reverse_EMA.efs


EFS Code:
PHP Code:
/*********************************
Provided By:  
eSignal (Copyright c eSignal), a division of Interactive Data
Corporation. 2016. 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:        
    The Reverse EMA Indicator by John F. Ehlers

Version:            1.00  07/12/2017

Formula Parameters:                     Default:
Alpha                                   0.1



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

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

var fpArray = new Array();

function 
preMain(){
    
setPriceStudy(false);

    var 
x=0;
    
fpArray[x] = new FunctionParameter("Alpha"FunctionParameter.NUMBER);
    
with(fpArray[x++]){
        
setName("Alpha Value");
        
setDefault(0.1);
        
setLowerLimit(0);
        }
}

var 
bInit false;
var 
bVersion null;

var 
xClose null;

var 
xEMA null;
var 
xRevEMA null;

function 
main (Alpha){
    if (
bVersion == nullbVersion verify();
    if (
bVersion == false) return;

    var 
nLength = ((Alpha) - 1) * 3;

    if (
getCurrentBarCount() < nLength) return;

    if (
getBarState() == BARSTATE_ALLBARS){
        
bInit false;
    }

    if (!
bInit){
        
xClose close();

        
xEMA efsInternal("calc_EMA"AlphaxClose);
        
xRevEMA efsInternal("calc_RevEMA", (Alpha), 1xEMA);

        var 
power 2;

        for (var 
07i++){
            
xRevEMA efsInternal("calc_RevEMA", (Alpha), powerxRevEMA);
            
power *= 2;

        }

        
addBand(0PS_DASH1Color.grey1);

        
bInit true;
    }

    if (
xRevEMA.getValue(0) != null){
        return (
xEMA.getValue(0) - 0.1 xRevEMA.getValue(0));
    }
}

function 
calc_EMA(nAAxSeries){
    var 
nEMA_1 ref(-1);
    if (
nEMA_1 == nullnEMA_1 0;
    var 
nEMA = ((xSeries.getValue(0) - nEMA_1) * nAA) + nEMA_1;

    if (
nEMA != null) return nEMA;
}

function 
calc_RevEMA(nCCpowerxSeries){
    if (
xSeries.getValue(-1) == null) return;
    var 
nRevEMA Math.pow(nCCpower) * xSeries.getValue(0) + xSeries.getValue(-1);

    if (
nRevEMA != null) return nRevEMA;
}

function 
verify(){
    var 
false;
    if (
getBuildNumber() < 779){
        
drawTextAbsolute(535"This study requires version 10.6 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;