/*****************************************************************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;} |