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

 

LSMA:

Типичный мувинг

Рис.1 Индикатор LSMA

Рис.1 Индикатор LSMA

Автор: Nikolay Kositsin

 
У меня, если выставляю любой период сглаживания, отличный от 50, индикатор пропадает с графика. Почему такое может происходить?
 

Clinn:
У меня, если выставляю любой период сглаживания, отличный от 50, индикатор пропадает с графика. Почему такое может происходить?

 

Да дело в том, что сам авторский алгоритм какой-то горбатый и потому мувинг с графика по вертикали сильно уплывает! 

 

В этом индикаторе есть ошибка, при вводе значения от 21 до 49 в параметр "глубина сглаживания" положение линии LSMA будет смещено вверх. Также имеется опечатка в одном лишнем символе в метке вертикального сдвига:

input int PriceShift=0; // вертикальный сдвиг индикатора в пунктахх
 
xtemer вертикального сдвига:

Я не уверен, действительно ли это баг в старом индикаторе, или же это измененное поведение компилятора / внутренних вычислений MT (Metaquotes любит это делать ;)

Проблема здесь заключается в делении 2 int на double, где результат всегда округляется до int-значения, например, с точкой получается int 51:

double length = (period + 1) / 3;   // (51 + 1) / 3 = 17,0, пока 
double length = (period + 1) / 3.0; // (51 + 1) / 3.0 = 17.3333...

В любом случае, вы можете использовать мою версию , пока не появится исправление.

Файлы:
LSMA.mq5  10 kb
 

Этот индикатор не работает в течение нескольких периодов