Laguerre RSI
Интересный индикатор. Реализация для AmiBroker
function LRSI(array, gamma)
{
L0 = array;
L1 = array;
L2 = array;
L3 = array;
LRSIValue = array;
for(i = 1; i < BarCount; i++)
{
L0[i] = (1 - gamma)*array[i] + gamma*L0[i-1];
L1[i] = - gamma * L0[i] + L0[i-1] + gamma * L1[i-1];
L2[i] = - gamma * L1[i] + L1[i-1] + gamma * L2[i-1];
L3[i] = - gamma * L2[i] + L2[i-1] + gamma * L3[i-1];
CU = 0;
CD = 0;
if (L0[i] >= L1[i]) CU = L0[i] - L1[i]; else (CD = L1[i] - L0[i]);
if (L1[i] >= L2[i]) CU = CU + L1[i] - L2[i]; else CD = CD + L2[i] -L1[i];
if (L2[i] >= L3[i]) CU = CU + L2[i] - L3[i]; else CD = CD + L3[i] -L2[i];
if (CU + CD != 0) LRSIValue[i] = CU / (CU + CD);
}
return LRSIValue;
}
Gamma_1 = Param("Gamma1", 0.5, 0.1, 1, 0.01);
Plot(LRSI(C, Gamma_1), "Laguerre RSI", colorRed, styleLine|styleThick);