CMO & WMA

ICE Data Services -


CMO_WMA.efs  EFSLibrary - Discussion Board
  

File Name: CMO_WMA.efs


Description:
CMO & WMA


Formula Parameters:
LenCMO : 9
LenAvg : 9

Notes:
This indicator plots Chandre Momentum Oscillator and its WMA on the
same chart. This indicator plots the absolute value of CMO. CMO was
developed by Tushar Chande. A scientist, an inventor, and a respected
trading system developer, Mr. Chande developed the CMO to capture what
he calls ?pure momentum". For more definitive information on the CMO and
other indicators we recommend the book The New Technical Trader by Tushar
Chande and Stanley Kroll.
The CMO is closely related to, yet unique from, other momentum oriented
indicators such as Relative Strength Index, Stochastic, Rate-of-Change,
etc. It is most closely related to Welles Wilder?s RSI, yet it differs
in several ways:
- It uses data for both up days and down days in the numerator, thereby
directly measuring momentum;
- The calculations are applied on unsmoothed data. Therefore, short-term
extreme movements in price are not hidden. Once calculated, smoothing
can be applied to the CMO, if desired;
- The scale is bounded between +100 and -100, thereby allowing you to clearly
see changes in net momentum using the 0 level. The bounded scale also allows
you to conveniently compare values across different securities.


Download File:
CMO_WMA.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:            CMO & WMAVersion:            1.0  03/27/2009Formula Parameters:                     Default:    LenCMO                              9    LenAvg                              9Notes:    This indicator plots Chandre Momentum Oscillator and its WMA on the     same chart. This indicator plots the absolute value of CMO. CMO was     developed by Tushar Chande. A scientist, an inventor, and a respected     trading system developer, Mr. Chande developed the CMO to capture what     he calls ?pure momentum". For more definitive information on the CMO and     other indicators we recommend the book The New Technical Trader by Tushar     Chande and Stanley Kroll.    The CMO is closely related to, yet unique from, other momentum oriented     indicators such as Relative Strength Index, Stochastic, Rate-of-Change,     etc. It is most closely related to Welles Wilder?s RSI, yet it differs     in several ways:    - It uses data for both up days and down days in the numerator, thereby         directly measuring momentum;    - The calculations are applied on unsmoothed data. Therefore, short-term         extreme movements in price are not hidden. Once calculated, smoothing         can be applied to the CMO, if desired;    - The scale is bounded between +100 and -100, thereby allowing you to clearly         see changes in net momentum using the 0 level. The bounded scale also allows         you to conveniently compare values across different securities.**********************************/var fpArray = new Array();var bInit = false;function preMain() {    setPriceStudy(false);    setStudyTitle("CMO & WMA");    setCursorLabelName("CMO", 0);    setCursorLabelName("WAvg", 1);    setDefaultBarFgColor(Color.blue, 0);    setDefaultBarFgColor(Color.red, 1);    addBand(0, PS_SOLID, 1, Color.brown);        setStudyMax(101);    setStudyMin(-101);    var x=0;    fpArray[x] = new FunctionParameter("LenCMO", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(9);    }    fpArray[x] = new FunctionParameter("LenAvg", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(9);    }   }var xCMO = nullvar xCMO_WMA = null;function main(LenCMO, LenAvg) {var nBarState = getBarState();var nCMO = 0;var nCMOavg = 0;    if (nBarState == BARSTATE_ALLBARS) {        if (LenCMO == null) LenCMO = 9;        if (LenAvg == null) LenAvg = 9;    }           if (bInit == false) {        xCMO = efsInternal("Calc_CMO", LenCMO);        xCMO_WMA = wma(LenAvg, xCMO);        bInit = true;    }    nCMO = xCMO.getValue(0);    nCMOavg = xCMO_WMA.getValue(0);    if (nCMOavg == null) return;    return new Array(nCMO, nCMOavg);}var xSecondInit = false;var xSMA = null;var xMOM = null;function Calc_CMO(LenCMO) {var nRes = 0;    if(xSecondInit == false){        xSMA = sma(LenCMO, efsInternal("Calc_Price"));        xMOM = mom(LenCMO);        xSecondInit = true    }    var nSMA = xSMA.getValue(0);    if (nSMA == null) return;    nRes =  100 * (xMOM.getValue(0) / (nSMA * LenCMO));    return nRes;    }var yMOM = null;function Calc_Price(){    if(yMOM==null) yMOM = mom(1);    return Math.abs(yMOM.getValue(0));}