Announcement

Collapse
No announcement yet.

Trade Directional Trend Index (Trade DTI)

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

  • Trade Directional Trend Index (Trade DTI)

    File Name: DTI_Trade.efs

    Description:
    Trade Directional Trend Index (Trade DTI)

    Formula Parameters:
    r : 14
    s : 10
    u : 5


    Notes:
    This is one of the techniques 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.


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

    Version:            1.0  03/19/2009

    Formula Parameters:                     Default:
        r                                    14
        s                                    10
        u                                    5

    Notes:
        This is one of the techniques 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.

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

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

    function 
    preMain() {
        
    setPriceStudy(false);
        
    setStudyTitle("Trade Directional Trend Index");
        
    setCursorLabelName("DTI Trade"0);
        
    setCursorLabelName("DTI"1);
        
    setDefaultBarFgColor(Color.green0);
        
    setDefaultBarFgColor(Color.blue1);
        
    setPlotType(PLOTTYPE_DOT0);
        
    setDefaultBarThickness(20);
        
    addBand(0PS_SOLID1Color.red);    

        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);
        }
    }

    var 
    nDTI_Ref 0;
    var 
    nDTI 0;
    var 
    xHMU null;
    var 
    xLMD null;
    var 
    xPrice null;
    var 
    xPriceAbs null;
    var 
    xuXA null;
    var 
    xuXAAbs null;

    function 
    main(rsu) {
    var 
    nVal4 0;
    var 
    nVal5 0;
    var 
    nDTI_Trade 0;
    var 
    nBarState getBarState();
        if(
    nBarState == BARSTATE_ALLBARS) {
            if (
    == null14;
            if (
    == null10;
            if (
    == null5;
        }
        if (
    nBarState == BARSTATE_NEWBAR) {
            
    nDTI_Ref nDTI;
        }
        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);
        if (
    Val2 != 0nDTI Val1 Val2;
        else 
    nDTI 0;
        
        if (((
    nDTI nDTI_Ref) > 0) && (nDTI 0)) nVal4 nDTI;
        else 
    Val4 0;
        if (((
    nDTI nDTI_Ref) < 0) && (nDTI 0)) nVal5 nDTI;
        else 
    Val5 0;
        
    nDTI_Trade nVal4 nVal5;
        if (
    nDTI_Trade == null) return;
        
        return new Array(
    nDTI_TradenDTI);
    }

    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;
    }

    var 
    xHmom null;
    var 
    xHInit false;

    function 
    Calc_HMU() {
    var 
    nRes 0;
    var 
    nHmom 0;
        if (
    xHInit == false) {
            
    xHmom mom(1,high());
            
    xHInit true;
        }
        
    nHmom xHmom.getValue(0);
        if (
    nHmom == null) return;
        if (
    nHmom 0) {
            
    nRes nHmom;
        }
        else 
    nRes 0;
        return 
    nRes;
    }

    var 
    xLmom null;
    var 
    xLInit false;

    function 
    Calc_LMD() {
    var 
    nRes 0;
    var 
    nLmom 0;
        if (
    xLInit == false) {
            
    xLmom mom(1,low());
            
    xLInit true;
        }
        
    nLmom xLmom.getValue(0);
        if (
    nLmom == null) return;
        if (
    nLmom 0) {
            
    nRes = -(nLmom);
        }
        else 
    nRes 0;
        return 
    nRes;

Working...
X