Announcement

Collapse
No announcement yet.

Directional Trend Index (DTI)

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

  • Directional Trend Index (DTI)

    File Name: DTI.efs

    Description:
    Directional Trend Index (DTI)

    Formula Parameters:
    r: 14
    s: 10
    u: 5
    OB: 25
    OS: -25


    Notes:
    This technique was described by William Blau in his book "Momentum,
    Direction and Divergence" (1995). His book focuses on three key aspects
    of trading: momentum, direction and divergence. Blau, who was an electrical
    engineer before becoming a trader, thoroughly examines the relationship between
    price and momentum in step-by-step examples. From this grounding, he then looks
    at the deficiencies in other oscillators and introduces some innovative techniques,
    including a fresh twist on Stochastics. On directional issues, he analyzes the
    intricacies of ADX and offers a unique approach to help define trending and
    non-trending periods.
    Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder.
    The DM+ (a part of Directional Movement System which includes both DM+ and
    DM- indicators) indicator helps determine if a security is "trending." William
    Blau added to it a zeroline, relative to which the indicator is deemed positive or
    negative. A stable uptrend is a period when the DTI value is positive and rising, a
    downtrend when it is negative and falling.


    Download File:
    DTI.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:        
        Directional Trend Index (DTI)

    Version:            1.0  09/26/2008

    Formula Parameters:                     Default:
        r                                    14
        s                                    10
        u                                    5
        OB                                   25
        OS                                   -25

    Notes:
        This technique was described by William Blau in his book "Momentum,
        Direction and Divergence" (1995). His book focuses on three key aspects 
        of trading: momentum, direction and divergence. Blau, who was an electrical 
        engineer before becoming a trader, thoroughly examines the relationship between 
        price and momentum in step-by-step examples. From this grounding, he then looks 
        at the deficiencies in other oscillators and introduces some innovative techniques, 
        including a fresh twist on Stochastics. On directional issues, he analyzes the 
        intricacies of ADX and offers a unique approach to help define trending and 
        non-trending periods.
        Directional Trend Index is an indicator similar to DM+ developed by Welles Wilder. 
        The DM+ (a part of Directional Movement System which includes both DM+ and 
        DM- indicators) indicator helps determine if a security is "trending." William 
        Blau added to it a zeroline, relative to which the indicator is deemed positive or 
        negative. A stable uptrend is a period when the DTI value is positive and rising, a 
        downtrend when it is negative and falling. 
        

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

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

    function 
    preMain() {
        
    setPriceStudy(false);
        
    setStudyTitle("Directional Trend Index");
        
    setCursorLabelName("DTI"0);
        
    setCursorLabelName("OB"1);
        
    setCursorLabelName("OS"2);
        
    setCursorLabelName("ZeroLine"3);
        
    setDefaultBarFgColor(Color.brown0);
        
    setDefaultBarFgColor(Color.blue1);
        
    setDefaultBarFgColor(Color.red2);
        
    setDefaultBarFgColor(Color.green3);
        
        var 
    x=0;    
        
    fpArray[x] = new FunctionParameter("r"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);        
            
    setDefault(14);
        }

        
    fpArray[x] = new FunctionParameter("s"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);        
            
    setDefault(10);
        }

        
    fpArray[x] = new FunctionParameter("u"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setLowerLimit(1);        
            
    setDefault(5);
        }

        
    fpArray[x] = new FunctionParameter("OB"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setDefault(25);
        }

        
    fpArray[x] = new FunctionParameter("OS"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setDefault(-25);
        }
    }

    var 
    xHMU null;
    var 
    xLMD null;
    var 
    xPrice null;
    var 
    xPriceAbs null;
    var 
    xuXA null;
    var 
    xuXAAbs null;

    function 
    main(rsuOBOS) {

        if ( 
    bInit == false ) { 
            
    xHMU efsInternal("Calc_HMU");
            
    xLMD efsInternal("Calc_LMD");
            
    xPrice efsInternal("Calc_Price"xHMUxLMD);
            
    xPriceAbs efsInternal("Calc_PriceAbs"xPrice);
            
    xuXA ema(uema(sema(rxPrice)));
            
    xuXAAbs ema(uema(sema(rxPriceAbs)));
            
    bInit true
        } 

        if (
    getCurrentBarCount() < Math.max(Math.max(rs), u)) return;

        var 
    Val1 100 xuXA.getValue(0);
        var 
    Val2 xuXAAbs.getValue(0);
        var 
    DTI 0;
        if (
    Val2 != 0DTI Val1 Val2;
        else 
    DTI 0;
        return new Array(
    DTIOBOS0);
    }

    function 
    Calc_PriceAbs(xPrice) {
    var 
    nRes 0;
        
    nRes Math.abs(xPrice.getValue(0));
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }

    function 
    Calc_Price(xHMUxLMD) {
    var 
    nRes 0;
        
    nRes xHMU.getValue(0) - xLMD.getValue(0);
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }

    function 
    Calc_HMU() {
    var 
    nRes 0;
        if ((
    high(0) - high(-1)) > 0)
        {
            
    nRes high(0) - high(-1);
        }
        else 
    nRes 0;
        if (
    nRes == nullnRes 1;
        return 
    nRes;
    }

    function 
    Calc_LMD() {
    var 
    nRes 0;
        if ((
    low(0) - low(-1)) < 0)
        {
            
    nRes = -(low(0) - low(-1));
        }
        else 
    nRes 0;
        return 
    nRes;

Working...
X