Hoje vamos falar sobre o UltraAbsolutelyNoLagLwma, um indicador que se baseia no AbsolutelyNoLagLwma e na análise de suas múltiplas linhas de sinal. O algoritmo de cálculo das linhas de sinal funciona assim: qualquer valor de período das diversas linhas de sinal é calculado usando uma progressão aritmética:
SignalPeriod(Number) = StartLength + Number * Step
O valor da variável Number varia de zero até StepsTotal. Os valores obtidos para os períodos são adicionados a um array de variáveis e são utilizados a cada tick do indicador para gerar um array dos valores suavizados do indicador. Com base nesse array, as direções da tendência atual são calculadas para cada suavização, e os números de tendências positivas e negativas são encontrados para todo o array dos valores suavizados do AbsolutelyNoLagLwma.
Os números finais de tendências positivas e negativas são suavizados e utilizados como as linhas do indicador que formam um histograma colorido exibido usando a classe DRAW_COLOR_HISTOGRAM2. A direção da tendência neste indicador é determinada pela cor do histograma, enquanto sua força é determinada pela largura do histograma.
Para indicar a tendência, são utilizadas quatro cores para cada uma das duas direções de tendência: se os valores do histograma não entram nas áreas de sobrecompra/venda, as cores do indicador são mais escuras, enquanto se tornam mais claras quando os níveis de sobrecompra/venda são ultrapassados.
Parâmetros de Entrada do Indicador
//+----------------------------------------------+ //| Parâmetros de entrada do indicador | //+----------------------------------------------+ input uint FLength=7; // profundidade da suavização input Applied_price_ IPC=PRICE_CLOSE_; // constante de preço //---- input Smooth_Method W_Method=MODE_JJMA; // Método de suavização input int StartLength=3; // Período inicial de suavização input int WPhase=100; // Parâmetro de suavização //---- input uint Step=5; // Passo de mudança de período input uint StepsTotal=10; // Número de mudanças no período //---- input Smooth_Method SmoothMethod=MODE_JJMA; // Método de suavização input int SmoothLength=3; // Profundidade da suavização input int SmoothPhase=100; // Parâmetro de suavização //---- input uint UpLevel=80; // Nível de sobrecompra em %% input uint DnLevel=20; // Nível de sobrevenda em %% input color UpLevelsColor=Blue; // Cor do nível de sobrecompra input color DnLevelsColor=Blue; // Cor do nível de sobrevenda input STYLE Levelstyle=DASH_; // Estilo dos níveis input WIDTH LevelsWidth=Width_1; // Espessura dos níveis
Os algoritmos de suavização podem ser selecionados entre dez versões possíveis:
- SMA - Média Móvel Simples;
- EMA - Média Móvel Exponencial;
- SMMA - Média Móvel Suavizada;
- LWMA - Média Móvel Ponderada Linear;
- JJMA - Média Adaptativa JMA;
- JurX - Média Ultraponderada;
- ParMA - Suavização Parabólica;
- T3 - Suavização Exponencial Múltipla de Tillson;
- VIDYA - Suavização pelo algoritmo de Tushar Chande;
- AMA - Suavização com o algoritmo de Perry Kaufman.
É importante ressaltar que os parâmetros do tipo Phase para diferentes algoritmos de suavização têm significados totalmente diferentes. Para o JMA, é uma variável externa de fase que varia de -100 a +100. Para o T3, é uma razão de suavização multiplicada por 100 para melhor visualização; para o VIDYA, é o período do oscilador CMO; e para o AMA, é o período da média móvel exponencial lenta. Em outros algoritmos, esses parâmetros não afetam a média. Para o AMA, o período da média móvel exponencial rápida é fixo e igual a 2 por padrão. A razão de potência também é igual a 2 para o AMA.
O indicador utiliza classes da biblioteca SmoothAlgorithms.mqh (copie-a para <terminal_data_folder>\MQL5\Include). O uso das classes foi descrito detalhadamente no artigo "Medição de Séries de Preços para Cálculos Intermediários Sem Usar Buffers Adicionais".

Fig 1. Indicador UltraAbsolutelyNoLagLwma
Publicações relacionadas
- iMFISignAlert: O Indicador para MetaTrader 5 que Gera Alertas
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- iDeMarkerSignAlert: O Indicador de Sinalização para MetaTrader 5
- Utilitário de Informações de Séries e Taxas para MetaTrader 5: Maximize Seu Trading