High - EMA

ICE Data Services -

High_ema.efs  
EFSLibrary - Discussion Board  

File Name: High_ema.efs

Description:
High - EMA indicator.

Formula Parameters:

  • Length: 13
  • Price Data To Use: Close

Notes:
This indicator plots the difference between the High (of the previous period) and an exponential moving average (13 period) of the Close (of the previous period).

Download File:
High_ema.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:        
    High - EMA

Version:            1.0  09/23/2008

Notes:
    This indicator plots the difference between the High (of the previous period)
    and an exponential moving average (13 period) of the Close (of the previous period).
    
Formula Parameters:                     Default:
    Length                                  13
    Price Data To Use                      Close
**********************************/


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

function preMain()
{
    setStudyTitle("High - EMA");
    setCursorLabelName("High - EMA", 0);
    setDefaultBarFgColor(Color.blue, 0);
    setPlotType(PLOTTYPE_LINE,0);
    setDefaultBarThickness(1,0);
    
    addBand(0, PS_SOLID, 1, Color.black);
    
    var x=0;
    fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);
	with(fpArray[x++]){
        setLowerLimit(1);		
        setDefault(13);
    }

    fpArray[x] = new FunctionParameter("Price", FunctionParameter.STRING);
    with(fpArray[x++]){
        setName("Price Data To Use");
        addOption("open"); 
        addOption("high");
        addOption("low");
        addOption("close");
        addOption("hl2");
        addOption("hlc3");
        addOption("ohlc4"); 
        setDefault("close"); 
    }
}

var xEMA = null;
var xMyPrice = null;
var xHigh_EMA = null;

function main(Length, Price) {
var nHigh_EMA = 0;

    if (Length == null) Length = 13;
    if(Price == null) Price= "close";

    if ( bInit == false ) { 
        xMyPrice = eval(Price)();
        xEMA = ema(Length, xMyPrice);
        xHigh_EMA = efsInternal("Calc_xHigh_EMA", xEMA);
        bInit = true; 
    } 

    nHigh_EMA = xHigh_EMA.getValue(0);

    return nHigh_EMA;
}

function Calc_xHigh_EMA(xEMA) {
var nRes = 0
    if (xEMA.getValue(-1) == null ) return;
    nRes = high(-1) - xEMA.getValue(-1);
    if (nRes == null) nRes = 1;
    return nRes;
}