Announcement

Collapse
No announcement yet.

2009 Aug: Combining DMI And MA For A EUR/USD Trading System, by Rombout Kerstens

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

  • 2009 Aug: Combining DMI And MA For A EUR/USD Trading System, by Rombout Kerstens

    File Name: MAandDMIStrategy.efs

    Description:
    Combining DMI And Moving Average For A EUR/USD Trading System, by Rombout Kerstens

    Formula Parameters:
    MA Length : 30
    DMI Length : 14


    Notes:
    The related article is copyrighted material. If you are not a subscriber
    of Stocks & Commodities, please visit www.traders.com.


    Download File:
    MAandDMIStrategy.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:        
        Combining DMI And Moving Average For A EUR/USD Trading System, by Rombout Kerstens

    Version:            1.0  06/08/2009

    Formula Parameters:                     Default:
        MA Length                           30
        DMI Length                          14
        
    Notes:
        The related article is copyrighted material. If you are not a subscriber
        of Stocks & Commodities, please visit [url]www.traders.com.[/url]

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

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

    function 
    preMain() {
        
    setPriceStudy(false);
        
    setShowCursorLabel(true);
        
    setShowTitleParameters(false);
        
    setStudyTitle("MA and MDI Strategy");
        
    setColorPriceBars(true);    
        
    setPlotType(PLOTTYPE_LINE);
        
    setDefaultBarThickness(20);
        
    setDefaultBarFgColor(Color.green0);
        
    setCursorLabelName("DMI Plus"0);     
        
    setPlotType(PLOTTYPE_LINE);
        
    setDefaultBarThickness(21);
        
    setDefaultBarFgColor(Color.red1);
        
    setCursorLabelName("DMI Minus"1);         
        
    askForInput();
        var 
    x=0;
        
    fpArray[x] = new FunctionParameter("Length_MA"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("MA Length");
            
    setLowerLimit(1);        
            
    setDefault(30);
        }
        
    fpArray[x] = new FunctionParameter("Length_DMI"FunctionParameter.NUMBER);
        
    with(fpArray[x++]){
            
    setName("DMI Length");
            
    setLowerLimit(1);        
            
    setDefault(14);
        }
    }

    var 
    xPDI null;
    var 
    xNDI null;
    var 
    xMA null;
    var 
    xClose null;

    function 
    main(Length_MALength_DMI) {
    var 
    nBarState getBarState();
    var 
    bMDILong false;
    var 
    bMDIShort false;
    var 
    bMALong false;
    var 
    bMAShort false;
    var 
    nPDI 0;
    var 
    nNDI 0;
    var 
    nMA 0;
    var 
    nPDI_1 0;
    var 
    nNDI_1 0;
    var 
    nMA_1 0;

        if (
    bVersion == nullbVersion verify();
        if (
    bVersion == false) return;   
        if (
    getCurrentBarIndex() == 0) return;    
        
    setPriceBarColor(Color.black);
        if (
    nBarState == BARSTATE_ALLBARS) {
            if (
    Length_MA == nullLength_MA 30;
            if (
    Length_DMI == nullLength_DMI 14;
        }    
        if (
    bInit == false) { 
            
    xMA sma(Length_MA);
            
    xPDI pdi(Length_DMI1);
            
    xNDI ndi(Length_DMI1);
            
    xClose close();
            
    bInit true
        }
        
    nPDI xPDI.getValue(0);
        
    nNDI xNDI.getValue(0);
        
    nMA xMA.getValue(0);
        
    nPDI_1 xPDI.getValue(-1);
        
    nNDI_1 xNDI.getValue(-1);
        
    nMA_1 xMA.getValue(-1);
        if (
    nMA_1 == null || nPDI_1 == null) return;
        if (
    nPDI nNDI && nPDI_1 nNDI_1) {
            
    bMDILong true;
            
    bMDIShort false;
        }    
        if (
    nPDI nNDI && nPDI_1 nNDI_1) {
            
    bMDILong false;
            
    bMDIShort true;
        }    
        if (
    xClose.getValue(0) > nMA && xClose.getValue(-1) < nMA_1) {
            
    bMALong true;
            
    bMAShort false;
        }    
        if (
    xClose.getValue(0) < nMA && xClose.getValue(-1) > nMA_1) {
            
    bMALong false;
            
    bMAShort true;
        }    
        if (
    bMDILong && bMALong && !Strategy.isLong()) {
            
    drawTextRelative(0TopRow1" LONG"Color.whiteColor.greenText.PRESET|Text.CENTER|Text.FRAME"Arial Black"10"b"+(getCurrentBarCount()), -5); 
            
    Strategy.doLong("Enyry Long"Strategy.CLOSEStrategy.THISBAR);
        }    
        if (
    bMDIShort && bMAShort && Strategy.isLong()) {
            
    drawTextRelative(0BottomRow1,  " EXIT"Color.whiteColor.redText.PRESET|Text.CENTER|Text.FRAME"Arial Black"10"b"+(getCurrentBarCount()), -5); 
            
    Strategy.doSell("Exit Long"Strategy.CLOSEStrategy.THISBAR);
        }    
        if(
    Strategy.isLong())
            
    setBarBgColor(Color.lime00100);
        return new Array(
    nPDInNDI);
    }

    function 
    verify() {
        var 
    false;
        if (
    getBuildNumber() < 779) {
            
    drawTextAbsolute(535"This study requires version 8.0 or later."
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"error");
            
    drawTextAbsolute(520"Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp"
                
    Color.whiteColor.blueText.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
                
    null13"upgrade");
            return 
    b;
        } else {
            
    true;
        }
        return 
    b;

Working...
X