Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 14
- Avaliação:
- Publicado:
-
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance
Filtro de tendência de Kalman adaptativo com faixas de regime
Breve descrição: Um filtro de Kalman de estado único que redimensiona seu próprio ruído de processo pela Razão de Eficiência de Kaufman a cada barra, ajustando-se mais ao preço durante tendências e suavizando mais intensamente em períodos de volatilidade, plotado com faixas de regime que se expandem e se contraem na mesma leitura.
Autor: ADEDAYO GBADEBO
A ideia por trás disso
Um filtro de Kalman simples tem uma fraqueza que, mais cedo ou mais tarde, aparece em todos os gráficos: o ruído do processo (Q) e o ruído de medição (R), que determinam a rapidez com que o filtro confia nos novos dados de preço, são fixos. Se Q for definido em um valor baixo, a linha permanece suave em períodos de oscilação, mas apresenta um atraso significativo assim que uma tendência real começa. Se Q for definido como alto, ele acompanha as tendências com precisão, mas apresenta oscilações bruscas em todos os períodos de variação lateral. Este indicador elimina esse compromisso tornando Q adaptativo: em cada barra, ele calcula o Índice de Eficiência de Kaufman (ER) — o movimento direcional líquido em um período de análise dividido pela soma dos movimentos de barra a barra nessa mesma janela — e o utiliza para ajustar Q entre um multiplicador mínimo e um máximo. Quando o ER está próximo de 1 (ação direcional clara do preço), o ruído do processo do filtro aumenta até seu máximo, de modo que o ganho de Kalman aumenta e a linha acompanha o preço de perto. Quando o ER está próximo de 0 (barras sobrepostas e sem direção), Q cai em direção ao seu mínimo, o ganho diminui e a linha suaviza o ruído em vez de persegui-lo.
O mesmo Índice de Eficiência também determina as duas faixas de regime traçadas ao redor do filtro. Sua largura é o desvio padrão móvel do resíduo (preço menos a linha de Kalman) multiplicado por um fator definido pelo usuário, e esse fator é ainda mais ampliado à medida que o ER cai; assim, as faixas ficam naturalmente mais estreitas em um regime de tendência e mais largas em um regime de oscilação. Como todo o filtro é um único estado recursivo transportado de barra em barra (sem repintura, sem antecipação), ele funciona em qualquer símbolo e período de tempo; ele foi desenvolvido e testado principalmente nos pares EURUSD e GBPUSD nos gráficos H1 e H4, onde a oscilação entre períodos de tendência e de consolidação é frequente o suficiente para que a adaptabilidade seja relevante.
Como interpretá-lo
- Linha de Kalman — a estimativa da tendência principal, traçada como uma linha codificada por cores diretamente no gráfico. Ela assume uma cor enquanto o preço está em um regime de tendência qualificado e se move para cima, uma segunda cor enquanto a tendência é de queda e uma terceira cor, neutra, sempre que o Índice de Eficiência estiver abaixo do limiar do regime e o mercado for classificado como em consolidação.
- Ruído do processo adaptativo — internamente, o Q do filtro é recalculado a cada barra como uma mistura linear entre InpMinQMultiplier e InpMaxQMultiplier, ponderada pelo Índice de Eficiência atual. É isso que confere à linha seu baixo atraso nas tendências sem sacrificar a suavidade em períodos de oscilação, ao contrário de uma média móvel de parâmetros fixos.
- Faixas de Regime Superior/Inferior — linhas pontilhadas que delimitam a linha de Kalman a uma distância proporcional à volatilidade residual recente. Faixas estreitas indicam uma tendência de baixo ruído e alta eficiência; faixas que permanecem largas e praticamente planas indicam um trecho instável, com reversão à média, em que a cor da tendência não deve ser considerada confiável para indicar a direção.
- Lógica do sinal — uma mudança de cor na linha de Kalman (de cinza para direcional ou de direcional para cinza) só ocorre em uma barra fechada, portanto, não é repintada. Uma mudança para uma cor direcional enquanto o preço se mantém próximo da faixa externa sugere que o regime de tendência é recente; uma mudança para a cor neutra/de oscilação após um movimento prolongado é um indício precoce de que o momentum está enfraquecendo antes que o próprio preço mude de direção.
- Uso prático — os seguidores de tendência podem tratar uma cor direcional sustentada como o sinal de “permanecer na posição” e sair ou apertar os stops assim que a linha se tornar cinza neutro. Os traders de reversão à média podem fazer o oposto: dar preferência a posições de fade em direção à linha de Kalman especificamente enquanto a cor estiver neutra e o preço estiver testando uma das bandas externas, e ficar à margem assim que a linha se tornar direcional.
Variáveis externas (entradas)
| Entrada | Padrão | Finalidade |
|---|---|---|
| InpPriceType | PRICE_CLOSE | Preço aplicado inserido no filtro de Kalman. |
| Ruído do processo de base de entrada | 0,005 | Ruído do processo Kalman de base (Q) antes do redimensionamento do regime. |
| InpMeasurementNoise | 0,80 | Ruído de medição de Kalman (R); valores mais altos suavizam ainda mais a linha e reduzem o ganho. |
| InpMinQMultiplier | 0,5 | Limite inferior aplicado a Q quando a Razão de Eficiência está próxima de zero (variação). |
| InpMaxQMultiplier | 5,0 | Limite superior aplicado a Q quando o Índice de Eficiência está próximo de um (tendência). |
| InpEfficiencyPeriod | 20 | Janela de análise retrospectiva utilizada para calcular o Índice de Eficiência de Kaufman. |
| InpBandPeriod | 20 | Janela de análise para o desvio-padrão residual móvel por trás das faixas. |
| InpBandMultiplier | 1,5 | Multiplicador base aplicado à volatilidade residual para definir a distância da banda em relação à linha. |
| InpRegimeThreshold | 0,40 | Limite do Índice de Eficiência acima do qual o regime é classificado como tendo tendência, em vez de oscilação lateral. |
Uso recomendado
Carregue o indicador em um modelo de gráfico vazio com a largura da linha aumentada para 2 ou 3 para melhor visibilidade e mantenha o conjunto de cores padrão, adequado para escala de cinza, ou substitua-o por suas próprias cores para tendência de alta, tendência de baixa e oscilação. Em gráficos H1–H4, comece com os períodos padrão e apenas reduza o InpEfficiencyPeriod se você negociar um instrumento mais ágil, que alterna entre os regimes mais rapidamente. Combine o estado da cor com uma confirmação secundária, como um rompimento da máxima ou mínima anterior do swing, antes de considerar uma nova reversão de direção como uma entrada, e trate duas ou três barras consecutivas com cores neutras próximas a uma banda como a indicação mais forte de reversão à média fornecida pelo indicador. Como o filtro nunca repinta as cores das barras fechadas, também é razoável fazer um backtest das regras de sinal construídas diretamente com base no estado de cor do buffer.

Fig. 1. A linha de Kalman muda de uma leitura neutra tracejada para uma tendência direcional contínua à medida que o Índice de Eficiência ultrapassa o limiar do regime, enquanto as faixas superior e inferior pontilhadas se contraem durante o trecho de tendência de alta eficiência e se alargam novamente nos segmentos voláteis de ambos os lados.
Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/76149
BMP Chart Wallpaper
Fundo de tela com gráfico BMP para o MT5
Custom Simple Moving Average
Uma média móvel adaptativa de duas etapas (média básica + suavização secundária) que muda de cor de acordo com a inclinação e marca os cruzamentos entre o preço e a média com setas.
Accumulation/Distribution
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
Accelerator Oscillator (AC)
O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.