2004 Dec: TrendTriggerFactor.efs

ICE Data Services -


TrendTriggerFactor.efs  EFSLibrary - Discussion Board
  

File Name: TrendTriggerFactor.efs


Description:
This indicator is from the December 2004 article, Trend Trigger Factor, by M.H. Pee.


Formula Parameters:
TTF Length: 15
TTF Thickness: 2

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

Download File:
TrendTriggerFactor.efs




EFS Code:

/*****************************************************************Provided By : eSignal. (c) Copyright 2004Study:        Trend Trigger Factor (TTF) by M.H. PeeVersion:      1.010/6/2004Notes:Formula Parameters:                 Default:TTF Length                          15TTF Thickness                       2*****************************************************************/function preMain() {    setStudyTitle("Trend Trigger Factor ");    setCursorLabelName("TTF", 0);    setDefaultBarThickness(2, 0);        setShowTitleParameters(false);    addBand(100, PS_SOLID, 2, Color.red, "upper");    addBand(0, PS_SOLID, 2, Color.grey, "zero");    addBand(-100, PS_SOLID, 2, Color.blue, "lower");        var fp1 = new FunctionParameter("nLength", FunctionParameter.NUMBER);    fp1.setName("TTF Length");    fp1.setLowerLimit(1);    fp1.setDefault(15);        var fp2 = new FunctionParameter("nThick", FunctionParameter.NUMBER);    fp2.setName("TTF Thickness");    fp2.setLowerLimit(1);    fp2.setDefault(2);}var bEdit = true;var nHighBP = null;var nHighSP = null;var nLowBP = null;var nLowSP = null;var aHigh = null;var aLow = null;var nTTF = null;function main(nLength, nThick) {    if (bEdit == true) {        setDefaultBarThickness(nThick, 0);        if (aHigh == null) aHigh = new Array(nLength*2);        if (aLow == null) aLow = new Array(nLength*2);        bEdit = false;    }    var nH = high(0);    var nL = low(0);        if (getBarState() == BARSTATE_NEWBAR) {        nHighBP = null;        nHighSP = null;        nLowBP = null;        nLowSP = null;        aHigh.pop();        aHigh.unshift(nH);        aLow.pop();        aLow.unshift(nL);        for (i = 0; i < (nLength*2); i++) {            if (i == 0) {                nHighBP = aHigh[i];                nLowSP = aLow[i];            }            if (i == nLength) {                nHighSP = aHigh[i];                nLowBP = aLow[i];            }            // Buy Power High, Sell Power Low            if (i < nLength) {                nHighBP = Math.max(nHighBP, aHigh[i]);                nLowSP = Math.min(nLowSP, aLow[i]);            }            // Buy Power Low, Sell Power High            if (i >= nLength) {                nHighSP = Math.max(nHighSP, aHigh[i]);                nLowBP = Math.min(nLowBP, aLow[i]);            }        }    }    aHigh[0] = nH;    aLow[0] = nL;    nHighBP = Math.max(nHighBP, aHigh[0]);    nLowSP = Math.min(nLowSP, aLow[0]);        if (close((-nLength*2)) == null) return;        var nBuyPower = (nHighBP - nLowBP);    var nSellPower = (nHighSP - nLowSP);    nTTF = ((nBuyPower - nSellPower) / (0.5 * (nBuyPower + nSellPower))) *100;        // Colors    if (nTTF <= -100) {        setBarFgColor(Color.red, 0);    } else if (nTTF < 0 && nTTF > -100) {        setBarFgColor(Color.maroon, 0);    } else if (nTTF >= 0 && nTTF < 100) {        setBarFgColor(Color.navy, 0);    } else if (nTTF >= 100) {        setBarFgColor(Color.blue, 0);    }        return nTTF;}