TEMA

ICE Data Services -

TEMA.efs                                                                                                                                        EFSLibrary - Discussion Board

File Name: TEMA.efs


Description:
TEMA1

Formula Parameters:
Length: 26
Price Data To Use: Close

Notes:
This study plots the TEMA1 indicator. TEMA1 ia s triple MA (Moving Average),
and is calculated as 3*MA - (3*MA(MA)) + (MA(MA(MA)))

Download File:
TEMA.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: TEMA1 Version: 1.0 09/24/2008Notes: This study plots the TEMA1 indicator.
TEMA1 ia s triple MA (Moving Average), and is calculated as 3*MA - (3*MA(MA)) + (MA(MA(MA)))
Formula Parameters: Default: Length 26 Price Data To Use Close**********************************/

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

function preMain() {
  setPriceStudy(true);
  setStudyTitle("TEMA");
  setCursorLabelName("TEMA1", 0);
  setDefaultBarFgColor(Color.blue, 0);
  setPlotType(PLOTTYPE_LINE, 0);
  setDefaultBarThickness(1, 0);
  var x = 0;
  fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);
  with (fpArray[x++]) {
    setLowerLimit(1);
    setDefault(26);
  }
  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 xMyPrice = null;
var xEMA1 = null;
var xEMA2 = null;
var xEMA3 = null;

function main(Price, Length) {
  var nState = getBarState();
  var nTEMA = 0;
  if (nState == BARSTATE_ALLBARS) {
    if (Price == null) Price = "close";
    if (Length == null) Length = 26;
  }
  if (bInit == false) {
    xMyPrice = eval(Price)();
    xEMA1 = ema(Length, xMyPrice);
    xEMA2 = ema(Length, xEMA1);
    xEMA3 = ema(Length, xEMA2);
    bInit = true;
  }
  if (
    xEMA1.getValue(0) == null ||
    xEMA2.getValue(0) == null ||
    xEMA3.getValue(0) == null
  )
    return;
  nTEMA = 3 * xEMA1.getValue(0) - 3 * xEMA2.getValue(0) + xEMA3.getValue(0);
  return nTEMA;
}