/*********************************Provided By: Interactive Data Corporation (Copyright ???? 2013) All rights reserved. This sample eSignal Formula Script (EFS) is for educational purposes only. Interactive Data Corporation reserves the right to modify and overwrite this EFS file with each new release. Description: The Degree Of Complexity by Oscar G. CagigasFormula Parameters: Default:Len1 40Len2 15Long Color limeShort Color redVersion: 1.00 12/05/2013Notes: The related article is copyrighted material. If you are not a subscriber of Stocks & Commodities, please visit www.traders.com.**********************************/var fpArray = new Array();function preMain(){ setStudyTitle("BasicDonchianSystem"); setPriceStudy(true); var x = 0; fpArray[x] = new FunctionParameter("fpLen1", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Len1"); setLowerLimit(20); setUpperLimit(40); setDefault(40); } fpArray[x] = new FunctionParameter("fpLen2", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("Len2"); setLowerLimit(5); setUpperLimit(30); setDefault(15); } fpArray[x] = new FunctionParameter("gLongColor", FunctionParameter.COLOR); with(fpArray[x++]) { setName("Long Color"); setDefault(Color.lime); } fpArray[x] = new FunctionParameter("gShortColor", FunctionParameter.COLOR); with(fpArray[x++]) { setName("Short Color"); setDefault(Color.red); } }var bInit = false;var bVersion = null;var xHHV1 = null;var xLLV1 = null;var xHHV2 = null;var xLLV2 = null;var xHigh = null;var xLow = null;var xOpen = null;function main(fpLen1,fpLen2,gLongColor,gShortColor) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; if (!bInit) { xHigh = high(); xLow = low(); xOpen = open(); xHHV1 = hhv(fpLen1, xHigh); xLLV1 = llv(fpLen1, xLow); xHHV2 = hhv(fpLen2, xHigh); xLLV2 = llv(fpLen2, xLow); bInit = true; } var nBuyStop = xHHV1.getValue(-1); var nSellStop = xLLV2.getValue(-1); var nShortStop = xLLV1.getValue(-1); var nCoverStop = xHHV2.getValue(-1); var nHigh = xHigh.getValue(0); var nLow = xLow.getValue(0); var nOpen = xOpen.getValue(0); if (nBuyStop == null || nSellStop == null || nShortStop == null || nCoverStop == null || nHigh == null || nLow == null || nOpen == null) return; nPrice=null; if (getCurrentBarIndex() != 0) { // Entry Strategy if (!Strategy.isInTrade()) { //LONG ENTRY if (nHigh > nBuyStop) { Strategy.doLong("Enter Long", Strategy.CLOSE, Strategy.THISBAR); drawTextRelative(0, BelowBar2, "Long", Color.black, gLongColor, Text.PRESET, null, null); } else { //SHORT ENTRY if (nLow < nShortStop) { Strategy.doShort("Enter Short", Strategy.CLOSE, Strategy.THISBAR); drawTextRelative(0, AboveBar2, "Short", Color.black, gShortColor, Text.PRESET, null, null); } } } // Exit Strategy if (Strategy.isInTrade()) { //EXIT if ((nLow < nSellStop) && Strategy.isLong()) { Strategy.doSell("Exit", Strategy.CLOSE, Strategy.THISBAR); drawTextRelative(0, AboveBar2, "Exit", Color.black, gShortColor, Text.PRESET, null, null); } else { //COVER if ((nHigh > nCoverStop) && Strategy.isShort()) { Strategy.doCover("Cover", Strategy.CLOSE, Strategy.THISBAR); drawTextRelative(0, BelowBar2, "Cover", Color.black, gLongColor, Text.PRESET, null, null); } } } } return;}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;} |