// Downloaded From https://www.WiseStockTrader.com //---------------------------------------------------------- SetBarsRequired(20000,20000); function ITrend(array, alpha) { // Choose One Of the initialization : // No pre-filter : it = array; // Pre-initialize its first value and after it converge to "array" value during main recursion (so act like no pre-Filter after some times) //it = (array[2] - 2*array[1] + array[0])/4; //This initialization takes a long time to converge. // Pre-filter with classic triangular MA it = (array + Ref(array, -1) * 2 + Ref(array, -2))/4; factor = (alpha - alpha^2/4) + 5*alpha^2 - (alpha - .75*alpha^2) + 2*(1 - alpha) - (1 - alpha)^2; for(i = 4; i < BarCount; i++) { it[i] = (alpha - alpha^2/4)*array[i] + 5*alpha^2*array[i-1] - (alpha - .75*alpha^2)*array[i-2] + 2*(1 - alpha)*it[i-1] - (1 - alpha)^2*it[i-2]; it[i] = it[i]/factor; } return it; } P = ParamField("Price field",-1); alpha = Param( "Alpha", 0.3, 0, 1, 0.01 ); data = ITrend(P, alpha); Plot( data, "ITrend", ParamColor( "Color ITrend", colorCycle ), ParamStyle("Style") ); //----------------------------------------------------------