Detrended Price Oscillator (DPO) é um indicador técnico que permite identificar estados de sobrecompra e sobrevenda no mercado, além de gerar sinais de compra e venda.
Esse indicador é ótimo para analisar ciclos de movimentação de preços, filtrando tendências e focando nas oscilações de curto prazo. Para isso, a média móvel se transforma em uma linha, e as variações de preços que ficam acima ou abaixo dela se tornam um oscilador de tendência.
O DPO é especialmente útil para destacar ciclos de curto prazo, pois a análise dessas componentes pode ajudar a identificar pontos de reversão em ciclos mais longos. Vale lembrar que ele não considera ciclos de preços de longo prazo, tornando os ciclos curtos mais evidentes.
Cálculo:
Esta versão do DPO é calculada da seguinte forma:
onde:
- XMA - algoritmo de suavização;
- Price[] - preço atual de um ativo financeiro;
- SMOOTH_Period - período de suavização do indicador;
- DPO_Period - período de suavização do DPO;
- bar - índice da barra.
Trabalhando com sinais de negociação:
Quando o DPO está acima da linha zero (ou seja, o preço está acima da média móvel), é um sinal de alta. Por outro lado, se o DPO está abaixo da linha zero (o preço está abaixo da média móvel), é um sinal de baixa.
Pontos de reversão de ciclos de longo prazo (divergências):
- Se o gráfico formar um pico mais alto ou uma depressão mais profunda, é hora de esperar por uma mudança de direção do preço;
- se um pico ou fundo é mais baixo/mais alto que o anterior, o preço tende a cair.
Existem duas interpretações para os sinais de compra/venda.
Devemos comprar quando:
- o DPO cruza a linha zero para cima;
- o DPO está na área de sobrevenda, confirmado por mínimas anteriores, e ao mesmo tempo a linha superior do canal é rompida tanto pelo DPO quanto pelo preço, limitando o movimento descendente.
Devemos vender quando:
- o DPO cruza a linha zero para baixo;
- o DPO está na área de sobrecompra, confirmado por máximas anteriores, e ao mesmo tempo tanto o DPO quanto o preço estão rompendo uma linha de suporte de uma tendência ascendente.
Embora o indicador raramente seja utilizado para gerar sinais de negociação, é importante notar que ele pode ser eficaz quando utilizado em conjunto com outros indicadores. No entanto, é uma ferramenta útil para revelar ciclos e ajustar a largura de janelas de outros indicadores.
Este indicador oferece a possibilidade de selecionar algoritmos de suavização e média entre dez versões disponí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 - suavização ultralinear;
- ParMA - suavização parabólica;
- T3 - suavização exponencial múltipla de Tillson;
- VIDYA - suavização com o uso do algoritmo de Tushar Chande;
- AMA - suavização com o uso do algoritmo de Perry Kaufman.
É importante notar que os parâmetros Phase1 e Phase2 têm significados completamente diferentes para os diferentes algoritmos de suavização. 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, é um período do oscilador CMO e, para o AMA, é um período de EMA lenta. Em outros algoritmos, esses parâmetros não afetam a suavização. Para o AMA, o período de EMA rápida é um valor fixo igual a 2 por padrão. A razão de elevação também é igual a 2 para o AMA.
O indicador utiliza as classes da biblioteca SmoothAlgorithms.mqh (que devem ser copiadas para o terminal_data_folder\MQL5\Include). O uso dessas classes foi bem descrito no artigo "Averaging Price Series for Intermediate Calculations Without Using Additional Buffers".

Publicações relacionadas
- Calendário Econômico: Monitoramento e Cache para Testes de Estratégia no MetaTrader 5
- Buffers Horários para Coleta de Dados no MetaTrader 5
- Utilitário de Informações de Séries e Taxas para MetaTrader 5: Maximize Seu Trading
- Índice de Caminhada Aleatória: Um Indicador Essencial para MetaTrader 5
- Utilitário de Informações de Barras e Taxas: Como Usar no MetaTrader 5