Indicator of Trend Alteration

ICE Data Services -


TrendAlteration.efs  EFSLibrary - Discussion Board
  

File Name: TrendAlteration.efs


Description:
Indicator of Trend Alteration


Formula Parameters:
Trigger : 16

Notes:

Download File:
TrendAlteration.efs




EFS 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:            Indicator of Trend Alteration    Version:            1.0  06/16/2009 Formula Parameters:                     Default:    Trigger                             16    Notes:**********************************/var fpArray = new Array();var bInit = false;function preMain(){    setPriceStudy(false);    setShowCursorLabel(true);    setShowTitleParameters(false);    setStudyTitle("Trend Alteration");    setCursorLabelName("TAUp", 0);    setDefaultBarFgColor(Color.red, 0);    setPlotType(PLOTTYPE_HISTOGRAM, 0);    setDefaultBarThickness(2, 0);    setCursorLabelName("TADn", 1);    setDefaultBarFgColor(Color.blue, 1);    setPlotType(PLOTTYPE_HISTOGRAM, 1);    setDefaultBarThickness(2, 1);    var x = 0;    fpArray[x] = new FunctionParameter("Trigger", FunctionParameter.NUMBER);    with(fpArray[x++]) {        setLowerLimit(1);        setDefault(16);    }    }var xTAUp = null;var xTADn = null;function main(Trigger) {var nBarState = getBarState();var nTAUp = 0;var nTADn = 0;    if (nBarState == BARSTATE_ALLBARS) {        if(Trigger == null) Trigger = 16;	}	if (bInit == false) {        addBand(0, PS_SOLID, 1, Color.black, "Zero");	        xTAUp = efsInternal("Calc_TrendAlteration", Trigger);        xTADn = getSeries(xTAUp, 1);        bInit = true;	}    nTAUp = xTAUp.getValue(0);    nTADn = xTADn.getValue(0);        if (nTAUp == null) return;	return new Array(nTAUp, nTADn);}var bSecondInit = false;var xHigh = null;var xLow = null;function Calc_TrendAlteration(Trigger) {var nRes1 = 0;var nRes2 = 0;var nPrice = 0;    if (bSecondInit == false) {        xHigh = high();        xLow = low();        bSecondInit = true;    }    if (xHigh.getValue(-Trigger) == null) return;    nPrice = xHigh.getValue(0);    if (nPrice > xHigh.getValue(-1)) {        nRes1 = 1;        while (nPrice > xHigh.getValue(-nRes1) && nRes1 < Trigger) {            nRes1++;         }    }    nPrice = xLow.getValue(0);    if (nPrice < xLow.getValue(-1)) {        nRes2 = 1;        while (nPrice < xLow.getValue(-nRes2) && nRes2 < Trigger) {            nRes2++;         }        nRes2 = -nRes2;    }    return new Array(nRes1, nRes2);}