OneYear_CumAdvDecMA.efs
EFS Library - Discussion Board
File Name: OneYear_CumAdvDecMA.efs
Description:
Low-Frequency Trading, by Ron McEwan
Formula Parameters:
OneYear_CumAdvDecMA.efs
- SMA Length: 253
- Long Position Color: lime
- Short Position Color: red
Notes:
The related article is copyrighted material. If you are not a subscriber of Stocks & Commodities, please visit www.traders.com.
Download File:
OneYear_CumAdvDecMA.efs
OneYear_CumAdvDecMA.efs
EFS Code:
OneYear_CumAdvDecMA.efs
/********************************* Provided By: eSignal (Copyright c eSignal), a division of Interactive Data Corporation. 2012. 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: Low-Frequency Trading, by Ron McEwan Version: 1.00 02/08/2013 Formula Parameters: Default: SMA Length 253 Long Position Color lime Short Position Color red 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(); function preMain() { setStudyTitle("OneYear_CumAdvDecMA"); setIntervalsBackfill(true); setCursorLabelName("Cum AD Line",0); setCursorLabelName("MA",1); setDefaultBarFgColor(Color.blue, 0); setDefaultBarFgColor(Color.purple, 1); var x = 0; fpArray[x] = new FunctionParameter("gLength", FunctionParameter.NUMBER); with(fpArray[x++]) { setName("SMA Length"); setLowerLimit(1); setDefault(253); } fpArray[x] = new FunctionParameter("gBuyColor", FunctionParameter.COLOR); with(fpArray[x++]) { setName("Long Position Color"); setDefault(Color.lime); } fpArray[x] = new FunctionParameter("gSellColor", FunctionParameter.COLOR); with(fpArray[x++]) { setName("Short Position Color"); setDefault(Color.red); } } var bInit = false; var bVersion = null; var xCumAd = null; var xSMA = null; function main(gLength,gBuyColor,gSellColor) { if (bVersion == null) bVersion = verify(); if (bVersion == false) return; if (!bInit) { xCumAd=efsInternal("getCumAd"); xSMA = sma(gLength,xCumAd); } var nCumAd = xCumAd.getValue(0); var nSMA = xSMA.getValue(0); if (nCumAd == null || nSMA == null) return; if (getCurrentBarIndex() != 0) { var bLStrategy = Strategy.isLong(); if (!bLStrategy) { if (nCumAd>nSMA) { Strategy.doLong("Enter Long", Strategy.CLOSE, Strategy.THISBAR); drawShapeRelative(0, BottomRow3,Shape.DIAMOND,null, gBuyColor, Shape.PRESET); } } else { if (nCumAd < nSMA) { Strategy.doSell("Close Long", Strategy.CLOSE, Strategy.THISBAR); drawShapeRelative(0, TopRow3,Shape.DIAMOND,null, gSellColor, Shape.PRESET); } } } return new Array(nCumAd,nSMA); } var bCumAd = false; var xAdv = null; var xDecl = null; var cumAd = 0; function getCumAd() { if (getBarState() == BARSTATE_ALLBARS) { bCumAd = false; } if(!bCumAd) { xAdv = close(sym("$ADV,D")); xDecl = close(sym("$DECL,D")); cumAd = 0; bCumAd = true; } var nAdv = xAdv.getValue(0); var nDecl = xDecl.getValue(0); if (nAdv == null || nDecl == null || (nAdv+nDecl)==0) return; var pctChg = (nAdv-nDecl)/(nAdv+nDecl)*1000; var ret = ref(-1); cumAd = ret + pctChg; return cumAd; } 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; }