Commodity Selection Index

ICE Data Services -


CSI.efs  EFSLibrary - Discussion Board
  

File Name: CSI.efs


Description:
Commodity Selection Index


Formula Parameters:
PointValue: 50
Margin : 3000
Commission: 10
Length : 14

Notes:
The Commodity Selection Index ("CSI") is a momentum indicator. It was
developed by Welles Wilder and is presented in his book New Concepts in
Technical Trading Systems. The name of the index reflects its primary purpose.
That is, to help select commodities suitable for short-term trading.
A high CSI rating indicates that the commodity has strong trending and volatility
characteristics. The trending characteristics are brought out by the Directional
Movement factor in the calculation--the volatility characteristic by the Average
True Range factor.
Wilder's approach is to trade commodities with high CSI values (relative to other
commodities). Because these commodities are highly volatile, they have the potential
to make the "most money in the shortest period of time." High CSI values imply
trending characteristics which make it easier to trade the security.
The Commodity Selection Index is designed for short-term traders who can handle
the risks associated with highly volatile markets.

Download File:
CSI.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:            Commodity Selection IndexVersion:            1.0  12/15/2008Formula Parameters:                     Default:    PointValue                           50    Margin                               3000        Commission                           10    Length                               14Notes:    The Commodity Selection Index ("CSI") is a momentum indicator. It was     developed by Welles Wilder and is presented in his book New Concepts in     Technical Trading Systems. The name of the index reflects its primary purpose.     That is, to help select commodities suitable for short-term trading.    A high CSI rating indicates that the commodity has strong trending and volatility     characteristics. The trending characteristics are brought out by the Directional     Movement factor in the calculation--the volatility characteristic by the Average     True Range factor.    Wilder's approach is to trade commodities with high CSI values (relative to other     commodities). Because these commodities are highly volatile, they have the potential     to make the "most money in the shortest period of time." High CSI values imply     trending characteristics which make it easier to trade the security.    The Commodity Selection Index is designed for short-term traders who can handle     the risks associated with highly volatile markets.**********************************/var fpArray = new Array();var bInit = false;function preMain() {    setStudyTitle("Commodity Selection Index");     setCursorLabelName("CSI", 0);    setDefaultBarFgColor(Color.green, 0);    var x=0;    fpArray[x] = new FunctionParameter("PointValue", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(50);    }    fpArray[x] = new FunctionParameter("Margin", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(3000);    }    fpArray[x] = new FunctionParameter("Commission", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(10);    }    fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);	with(fpArray[x++]){        setLowerLimit(1);		        setDefault(14);    }    }var xATR = null;var xADX = null;var xCSI = null;function main(PointValue, Margin, Commission, Length){var nState = getBarState();    if (nState == BARSTATE_ALLBARS) {        if (PointValue==null) PointValue = 50;        if (Margin==null) Margin = 3000;            if (Commission==null) Commission = 10;        if (Length==null) Length = 14;    }        var K = 100 * ((PointValue / Math.sqrt(Margin) / (150 + Commission)));    if(bInit==false){        xATR = atr(Length);        xADX = adx(Length, Length);        xCSI = efsInternal("calcCSI", K, Length, xATR, xADX)        bInit = true;    }    if (getCurrentBarCount() < Length) return;     return xCSI.getValue(0);}function calcCSI(K, Length, xATR, xADXR){    if (xADXR.getValue(-Length) == null) return;    var nADXR = (xADXR.getValue(0) + xADXR.getValue(-Length)) * 0.5;    var nCSI = K * xATR.getValue(0) * nADXR;    return nCSI;}