T3 MACO

ICE Data Services -

T3_MACO.efs                                                                                                                                 EFSLibrary - Discussion Board

 

File Name: T3_MACO.efs

Description:
T3 MACO

Formula Parameters:
Fast MA : 5
Slow MA : 8
Length MACO : 5
b : 0.7

Notes:

Download File:
T3_MACO.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: 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; }