Announcement

Collapse
No announcement yet.

Commodity Selection Index

Collapse
This topic is closed.
X
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Commodity Selection Index

    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:
    PHP 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 Index

    Version:            1.0  12/15/2008

    Formula Parameters:                     Default:
        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.

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

    function 
    preMain() {
        
    setStudyTitle("Commodity Selection Index"); 
        
    setCursorLabelName("CSI"0);
        
    setDefaultBarFgColor(Color.green0);

        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(PointValueMarginCommissionLength){
    var 
    nState getBarState();
        if (
    nState == BARSTATE_ALLBARS) {
            if (
    PointValue==nullPointValue 50;
            if (
    Margin==nullMargin 3000;    
            if (
    Commission==nullCommission 10;
            if (
    Length==nullLength 14;
        }    

        var 
    100 * ((PointValue Math.sqrt(Margin) / (150 Commission)));

        if(
    bInit==false){
            
    xATR atr(Length);
            
    xADX adx(LengthLength);
            
    xCSI efsInternal("calcCSI"KLengthxATRxADX)
            
    bInit true;
        }

        if (
    getCurrentBarCount() < Length) return; 

        return 
    xCSI.getValue(0);
    }

    function 
    calcCSI(KLengthxATRxADXR){
        if (
    xADXR.getValue(-Length) == null) return;
        var 
    nADXR = (xADXR.getValue(0) + xADXR.getValue(-Length)) * 0.5;
        var 
    nCSI xATR.getValue(0) * nADXR;
        return 
    nCSI;

Working...
X