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

ICE Data Services -


MAandDMIStrategy.efs  EFSLibrary - Discussion Board
  

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:



/*********************************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 KerstensVersion:            1.0  06/08/2009Formula 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 www.traders.com.**********************************/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(2, 0);    setDefaultBarFgColor(Color.green, 0);    setCursorLabelName("DMI Plus", 0);         setPlotType(PLOTTYPE_LINE);    setDefaultBarThickness(2, 1);    setDefaultBarFgColor(Color.red, 1);    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_MA, Length_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 == null) bVersion = verify();    if (bVersion == false) return;       if (getCurrentBarIndex() == 0) return;        setPriceBarColor(Color.black);    if (nBarState == BARSTATE_ALLBARS) {        if (Length_MA == null) Length_MA = 30;        if (Length_DMI == null) Length_DMI = 14;    }        if (bInit == false) {         xMA = sma(Length_MA);        xPDI = pdi(Length_DMI, 1);        xNDI = ndi(Length_DMI, 1);        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(0, TopRow1, " LONG", Color.white, Color.green, Text.PRESET|Text.CENTER|Text.FRAME, "Arial Black", 10, "b"+(getCurrentBarCount()), -5);         Strategy.doLong("Enyry Long", Strategy.CLOSE, Strategy.THISBAR);    }        if (bMDIShort && bMAShort && Strategy.isLong()) {        drawTextRelative(0, BottomRow1,  " EXIT", Color.white, Color.red, Text.PRESET|Text.CENTER|Text.FRAME, "Arial Black", 10, "b"+(getCurrentBarCount()), -5);         Strategy.doSell("Exit Long", Strategy.CLOSE, Strategy.THISBAR);    }    	if(Strategy.isLong())        setBarBgColor(Color.lime, 0, 0, 100);    return new Array(nPDI, nNDI);}function verify() {    var b = false;    if (getBuildNumber() < 779) {        drawTextAbsolute(5, 35, "This study requires version 8.0 or later.",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "error");        drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp",             Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,            null, 13, "upgrade");        return b;    } else {        b = true;    }    return b;}