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:
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:
PHP Code:
/**************
Provided By : eSignal. (c) Copyright 2004
Study: Trend Trigger Factor (TTF) by M.H. Pee
Version: 1.0
10/6/2004
Notes:
Formula Parameters: Default:
TTF Length 15
TTF 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;
}