Click Image To Enlarge. Please Rate And Comment.
_SECTION_BEGIN("Ehlers ITrend");
SetBarsRequired(200, 0);
// Ehlers ITrend
// from Ehlers, John F. Cybernetic Analysis for Stocks and Futures. Wiley. 2004.
// Chapter 3, p. 21. Code on p. 24.
function ITrend(array, alpha)
{
// initialize early array values and declare as array
it = array;
//it = (array[2] - 2*array[1] + array[0])/4; This initialization takes a long time to converge.
for(i = 2; i < BarCount; i++)
{
it[i] = (alpha - alpha*alpha/4)*array[i] +
.5*alpha*alpha*array[i-1] -
(alpha - .75*alpha*alpha)*array[i-2] +
2*(1 - alpha)*it[i-1] -
(1 - alpha)*(1 - alpha)*it[i-2];
}
return it;
}
function ITrendTrigger(array)
{
trigger = 2*array - Ref(array, -2);
return trigger;
}
Med = (H+L)/2;
// Instantaneous Trend
Plot(Med, "", colorBlack, styleLine);
trend = ITrend(Med, .07);
Plot(trend, "ITrend", colorBlue, styleLine);
Plot(ITrendTrigger(trend), "", colorRed, styleLine);
_SECTION_END();
Sell = Cross(trend,ITrendTrigger(trend));
Buy = Cross(ITrendTrigger(trend),trend);
PlotShapes(Buy*shapeUpTriangle,colorYellow);
PlotShapes(Sell*shapeDownTriangle,colorYellow);