Indicadores: LSMA

 

LSMA:

Uma média móvel típica.

Fig.1 Indicador LSMA

Autor: Nikolay Kositsin

 
Se eu definir um período de suavização diferente de 50, o indicador desaparecerá do gráfico. Por que isso pode acontecer?
 

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

A questão é que o algoritmo do autor em si é corcunda e, portanto, o movimento do gráfico na vertical se afasta muito!

 

Há um bug/erro nesse indicador: inserir um valor numérico entre 21 e 49 para a "profundidade de suavização" fará com que a posição da linha LSMA seja deslocada para cima. Além disso, há um erro de digitação de um caractere extra no rótulo de deslocamento vertical:

input int PriceShift=0; // deslocamento vertical do indicador em pontosх
 
xtemer deslocamento vertical:

Não tenho certeza se isso é realmente um bug nesse indicador antigo ou se é um comportamento alterado do compilador/cálculos internos do MT (o Metaquotes gosta de fazer isso;)

O problema aqui é a divisão entre 2 int's em um double, em que o resultado é sempre arredondado para o valor int, por exemplo, com um ponto final é um int de 51:

double length = (period + 1) / 3;   // (51 + 1) / 3 = 17,0, enquanto 
double length = (period + 1) / 3.0; // (51 + 1) / 3.0 = 17.3333...

De qualquer forma, você pode usar minha versão até que apareça uma correção.

Arquivos anexados:
LSMA.mq5  10 kb
 

This indicator is not working in several periods