TFS: MBO

ICE Data Services -

TFS_MBO.efs  
EFSLibrary - Discussion Board  

File Name: TFS_MBO.efs

Description:
TFS: MBO indicator

Formula Parameters:

  • Fastavg: 25
  • Slowavg: 200

Notes:

MBO indicator is the third component of TFS trading system. This indicator was developed by Bryan Strain and Mark Whitley.
The idea of MBO is similar to moving average convergence/divergence (MACD) indicator. It is calculated by subtracting the 200-day moving average from the 25-day moving average.

Download File:
TFS_MBO.efs


EFS Code:

/*********************************
Provided By:  
    eSignal (Copyright c eSignal), a division of Interactive Data 
    Corporation. 2008. 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:        
    TFS: MBO indicator

Version:            1.0  09/26/2008

Notes:
    MBO indicator is the third component of TFS trading system. This indicator
    was developed by Bryan Strain and Mark Whitley.
    The idea of MBO is similar to moving average convergence/divergence (MACD)
    indicator. It is calculated by subtracting the 200-day moving average from
    the 25-day moving average.

Formula Parameters:                     Default:
    Fastavg                               25
    Slowavg                              200 

**********************************/

var fpArray = new Array();
var bInit = false;


function preMain() {

    setStudyTitle("TFS: MBO Indicator");
    setCursorLabelName("MBO",0);

    setPlotType(PLOTTYPE_HISTOGRAM,0);
    setCursorLabelName("ZeroLine",1);

    addBand(0, PS_SOLID, 1, Color.blue);

    setDefaultBarFgColor(Color.red, 0);

    
    var x=0;    
    fpArray[x] = new FunctionParameter("FastAvg", FunctionParameter.NUMBER);
	with(fpArray[x++]){
        setLowerLimit(1);		
        setDefault(25);
    }
    
    fpArray[x] = new FunctionParameter("SlowAvg", FunctionParameter.NUMBER);
	with(fpArray[x++]){
        setLowerLimit(1);		
        setDefault(200);
    }
  
}

var xFastAvg = null;
var xSlowAvg = null;

function main(FastAvg, SlowAvg) {
var nState = getBarState();

    if (nState == BARSTATE_ALLBARS) {
        if (FastAvg == null) FastAvg = 25;
        if (SlowAvg == null) SlowAvg = 200;
    }    
    
    if ( bInit == false ) { 
        xFastAvg = sma(FastAvg);
        xSlowAvg = sma(SlowAvg);        
        bInit = true; 
    } 

    if (getCurrentBarCount() <= SlowAvg) return;

    var nMBO = xFastAvg.getValue(0) - xSlowAvg.getValue(0);
    return nMBO;
}