Announcement

Collapse
No announcement yet.

Trend Direction Index (TDI)

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

  • Trend Direction Index (TDI)

    File Name: TDI.efs

    Description:
    TDI (Trend Direction Index)

    Formula Parameters:
    Period : 12

    Notes:
    The Trend Detection Index (TDI) was introduced by M. H. Pee. TDI is used
    to detect when a trend has begun and when it has come to an end. The TDI
    can be used as a stand-alone indicator or combined with others; it will
    perform well in detecting the beginning of trends. TDI should be used in
    conjunction with protective stops as well as trailing stops. These stops
    are required to protect against large losses when the indicator generates
    a losing trade. The TDI can trade a diverse portfolio of markets profitably
    over many years, using the same parameters throughout.
    To calculate the 20-day trend detection index, first find the value of the
    momentum indicator. After the market closes, calculate today's 20-day momentum
    by subtracting the close 20 days ago from that of today. Next, find the 20-day
    absolute momentum, which is defined as the absolute value of today's 20-day momentum.
    More details can be found in the formula section above.
    The trend detection index will signal a trend if it shows a positive value and a
    consolidation if it shows a negative value. As a trend-follower, the position should
    be entered in the direction of the trend when the TDI is positive. To determine the
    current direction of the trend, the direction indicator can be used, which is defined
    as the sum of the 20-day momentum of the last 20 days. An uptrend is signaled by a positive
    direction indicator value, whereas a downtrend is signaled by a negative value. Basically,
    it comes down to this: Enter long tomorrow at the open if both the TDI and direction indicator
    are positive after today's close or enter short at the open if the TDI is positive and the
    direction indicator is negative.


    Download File:
    TDI.efs



    EFS Code:
    PHP 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:        
        TDI (Trend Direction Index)
        
    Version:            1.0  05/19/2009
         
    Formula Parameters:                     Default:
        Period                              12
            
    Notes:
        The Trend Detection Index (TDI) was introduced by M. H. Pee. TDI is used 
        to detect when a trend has begun and when it has come to an end. The TDI 
        can be used as a stand-alone indicator or combined with others; it will 
        perform well in detecting the beginning of trends. TDI should be used in 
        conjunction with protective stops as well as trailing stops. These stops 
        are required to protect against large losses when the indicator generates 
        a losing trade. The TDI can trade a diverse portfolio of markets profitably 
        over many years, using the same parameters throughout.
        To calculate the 20-day trend detection index, first find the value of the 
        momentum indicator. After the market closes, calculate today's 20-day momentum 
        by subtracting the close 20 days ago from that of today. Next, find the 20-day 
        absolute momentum, which is defined as the absolute value of today's 20-day momentum. 
        More details can be found in the formula section above.
        The trend detection index will signal a trend if it shows a positive value and a 
        consolidation if it shows a negative value. As a trend-follower, the position should 
        be entered in the direction of the trend when the TDI is positive. To determine the 
        current direction of the trend, the direction indicator can be used, which is defined 
        as the sum of the 20-day momentum of the last 20 days. An uptrend is signaled by a positive 
        direction indicator value, whereas a downtrend is signaled by a negative value. Basically, 
        it comes down to this: Enter long tomorrow at the open if both the TDI and direction indicator 
        are positive after today's close or enter short at the open if the TDI is positive and the 
        direction indicator is negative. 
    **********************************/
    var fpArray = new Array();
    var 
    bInit false;

    function 
    preMain(){
        
    setStudyTitle("Trend Detection Index");
        
    setCursorLabelName("TDI",0);
        
    setDefaultBarFgColor(Color.blue,0);
        
    addBand(0PS_SOLID1Color.lightgrey);
        var 
    0;
        
    fpArray[x] = new FunctionParameter("Period"FunctionParameter.NUMBER);
        
    with(fpArray[x++]) {
            
    setLowerLimit(1);
            
    setDefault(12);
        }    
    }

    var 
    xTDI null;

    function 
    main(Period) {
    var 
    nBarState getBarState();
    var 
    nTDI 0;
        if (
    nBarState == BARSTATE_ALLBARS) {
            if(
    Period == null)    Period 12;
        }    
        if (
    bInit == false) {
            
    xTDI efsInternal("Calc_TDI"Period);
            
    bInit true;
        }    
        
    nTDI xTDI.getValue(0);
        if (
    nTDI == null) return;
        return 
    nTDI;
    }

    var 
    bSecondInit false;
    var 
    xmom null;

    function 
    Calc_TDI(Period) {
    var 
    nRes 0;
    var 
    MomSum 0;
    var 
    MomSumAbs 0;
    var 
    MomAbsSum 0;
    var 
    MomAbsSum2 0;
        if (
    getCurrentBarCount() <= Period 2) return;
        if (
    bSecondInit == false) {
            
    xmom mom(Period);
            
    bSecondInit true;
        }    
        for(
    Period 2i--; >= 0) {    
            
    nRes xmom.getValue(-i);
            if (
    Period) {
                
    MomSum += nRes;
                
    MomAbsSum += Math.abs(nRes);
            }    
            
    MomAbsSum2 += Math.abs(nRes);    
        }    
        
    MomSumAbs Math.abs(MomSum);
        
    nRes MomSumAbs - (MomAbsSum2 MomAbsSum);
        return 
    nRes;

Working...
X