Индикаторы: LSMA

 

LSMA:

Скользящая средняя, рассчитываемая методом наименьших квадратов.

Расчет:

LSMA[i]=Sum/L2

где:

Sum[i] = (Period - N)*Price[i] + (Period - N - 1)*Price[i-1] + … + (1 - N)*Price[i-Period+1],
N = (Period + 1)/3,
L2 = Period*(Period + 1)/6

Автор: Scriptor

 
for(i = length; i >= 1 ; i--) //LSMA цикл
{
lengthvar = length + 1; & nbsp; //lengthvar = 21
lengthvar /= 3; & nbsp; //lengthvar = 7 nbsp; //lengthvar = 7
tmp = 0; //lengthvar = 21
tmp = ( i - lengthvar)*Close[length-i+shift]; //tmp = 20 - 7 * close[20-i+shift]
sum[1]+=tmp;
}

wt[shift] = sum[1]*6/(length*(length+1));


В чем смысл этого вычисления?

 
Программа рисует LSMA с периодом (2), но не рисует с периодами 3 и 4, рисует с 5, но не рисует с 6 и 7, снова рисует с 8. И продолжает рисовать по одному каждые 3 периода, я тестировал только до 50. Но я не понимаю MQL5 настолько, чтобы исправить ошибку.