/*********************************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: T3 MACOVersion: 1.0 09/17/2009 Formula Parameters: Default: Fast MA 5 Slow MA 8 Length MACO 5 b 0.7Notes: **********************************/var fpArray = new Array();var bInit = false;function preMain(){ setPriceStudy(false); setShowCursorLabel(true); setShowTitleParameters(false); setStudyTitle("T3 MACO"); setCursorLabelName("T3 MACO", 0); setPlotType(PLOTTYPE_LINE, 0); setDefaultBarFgColor(Color.red, 0); var x = 0; fpArray[x] = new FunctionParameter("FastMA", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Fast MA"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("SlowMA", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("SlowMA"); setLowerLimit(1); setDefault(8); } fpArray[x] = new FunctionParameter("LengthMACO", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Length MACO"); setLowerLimit(1); setDefault(5); } fpArray[x] = new FunctionParameter("nB", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("b"); setLowerLimit(0.0001); setDefault(0.7); } }var xT3MACO = null;function main(SlowMA, FastMA, LengthMACO, nB) {var nBarState = getBarState();var nT3MACO = 0; if (nBarState == BARSTATE_ALLBARS) { if(SlowMA == null) SlowMA = 5; if(FastMA == null) FastMA = 8; if(LengthMACO == null) LengthMACO = 8; if(nB == null) nB = 0.7; } if (bInit == false) { addBand(0, PS_SOLID, 1, Color.black, "Zero"); xT3MACO = efsInternal("Calc_T3MACO", LengthMACO, SlowMA, FastMA, nB); bInit = true; } nT3MACO = xT3MACO.getValue(0); if (nT3MACO == null) return; return nT3MACO;}var bSecondInit = false;var xEMA3 = null;var xEMA4 = null;var xEMA5 = null;var xEMA6 = null;var c1=0;var c2=0;var c3=0;var c4=0;var b2=0;var b3=0;function Calc_T3MACO(LengthMACO, SlowMA, FastMA, nB) {var nRes = 0;var e3=0;var e4=0;var e5=0;var e6=0; if (!bSecondInit) { b2 = Math.pow(nB, 2); b3 = b2 * nB; c1 = - b3; c2 = (3 * (b2 + b3)); c3 = -3 * (2 * b2 + nB + b3); c4 = (1 + 3 * nB + b3 + 3 * b2); xEMA3 = ema(LengthMACO, ema(LengthMACO, ema(LengthMACO, efsInternal("Calc_MA", SlowMA, FastMA)))); xEMA4 = ema(LengthMACO, xEMA3); xEMA5 = ema(LengthMACO, xEMA4); xEMA6 = ema(LengthMACO, xEMA5); bSecondInit = true; } e3 = xEMA3.getValue(0); e4 = xEMA4.getValue(0); e5 = xEMA5.getValue(0); e6 = xEMA6.getValue(0); if (e6 == null) return; nRes = c1 * e6 + c2 * e5 + c3 * e4 + c4 * e3; return nRes;}var bThridInit = false;var xEMAF = null;var xEMAS = null;function Calc_MA(SlowMA, FastMA) {var nRes = 0;var nEMAF = 0;var nEMAS = 0; if (!bThridInit) { xEMAF = ema(FastMA); xEMAS = ema(SlowMA); bThridInit = true; } nEMAF = xEMAF.getValue(0); nEMAS = xEMAS.getValue(0); if (nEMAF == null || nEMAS == null) return; nRes = nEMAF - nEMAS; return nRes;} |