Trading The Trend 2 for eSignal (EFS)
anton1980 over 8 years ago eSignal (EFS)
This efs plots the indicator developed by Andrew Abraham in the Trading the Trend article of TASC September 1998
You can read more about it here
Indicator / Formula
Copy & Paste Friendly
/*********************************************************
Alexis C. Montenegro © April 2005
Use and/or modify this code freely. If you redistribute it
please include this and/or any other comment blocks and a
description of any changes you make.
**********************************************************/
//This efs plots the indicator developed by Andrew Abraham
//in the Trading the Trend article of TASC September 1998
var fpArray = new Array();
function preMain(){
setPriceStudy(true);
setStudyTitle("Trend Trader");
setCursorLabelName("Limit")
setDefaultBarFgColor(Color.red,0);
setColorPriceBars(true);
setDefaultPriceBarColor(Color.black);
var x=0;
fpArray[x] = new FunctionParameter("Length", FunctionParameter.NUMBER);
with(fpArray[x++]){
setLowerLimit(1);
setDefault(21);
}
fpArray[x] = new FunctionParameter("Multiplier", FunctionParameter.NUMBER);
with(fpArray[x++]){
setLowerLimit(0.01);
setDefault(3);
}
fpArray[x] = new FunctionParameter("Interval", FunctionParameter.STRING);
with(fpArray[x++]){
setDefault();
}
fpArray[x] = new FunctionParameter("Params", FunctionParameter.BOOLEAN);
with(fpArray[x++]){
setName("Show Parameters");
setDefault(false);
}
}
var bInit = false;
var xInterval = null
var avgTR = null;
var highestC = null;
var lowestC = null;
var xClose= null;
var Signal1 = null;
function main(Length,Multiplier,Interval,Params){
if(bInit==false){
if(Interval==null) Interval = getInterval();
xInterval = Interval+"";
avgTR = wma(Length,atr(1,inv(xInterval)));
highestC = upperDonchian(Length,close(inv(xInterval)));
lowestC = lowerDonchian(Length,close(inv(xInterval)));
xClose = close(inv(xInterval));
setShowTitleParameters(eval(Params));
bInit=true;
}
var Close1 = xClose.getValue(-1);
var highestC1 = highestC.getValue(-1);
var lowestC1 = lowestC.getValue(-1);
var avgTR1 = avgTR.getValue(-1);
if(Close1 == null || highestC1 == null || lowestC1 == null || avgTR1 == null) return;
if(getBarStateInterval(xInterval)==BARSTATE_NEWBAR){
var hiLimit1 = highestC1-(avgTR1*Multiplier);
var loLimit1 = lowestC1+(avgTR1*Multiplier);
if(Close1 > hiLimit1 && Close1 > loLimit1) Signal1 = hiLimit1;
if(Close1 < loLimit1 && Close1 < hiLimit1) Signal1 = loLimit1;
}
if(Signal1 == null) return;
if(Close1 > Signal1) setPriceBarColor(Color.blue);
if(Close1 < Signal1) setPriceBarColor(Color.red);
return Signal1;
}0 comments
Leave Comment
Please login here to leave a comment.