Indicadores técnicos / Divergência RSI
Uma ferramenta de divergências parece simples: o preço atinge um novo extremo e o RSI não. As perguntas úteis são quais as oscilações que contam, que RSI está a ler e quantas barras têm de fechar antes de a ferramenta poder saber. Esta página responde com regras exatas, gráficos horários reais e código que pode verificar.

O que mede o RSI
O índice de força relativa compara a dimensão média dos movimentos ascendentes recentes com a dos movimentos descendentes recentes e coloca o resultado numa escala entre 0 e 100. Segundo a ajuda do MT5, Wilder recomendou 14 períodos quando apresentou o índice, e as versões de 9 períodos e de 25 períodos ganharam entretanto popularidade. A mesma ajuda refere que o RSI costuma atingir máximos acima de 70 e mínimos abaixo de 30. Ajuda do MT5: RSI
Neste ficheiro, as linhas de 30 e 70 são desenhadas apenas como orientação. Nenhuma divergência é filtrada por elas. Código
O que compara uma divergência
Uma divergência compara duas oscilações de preço com as leituras do RSI nas mesmas duas barras. A ajuda do MT5 descreve-a como um novo máximo ou mínimo do preço que o RSI não confirma com um novo máximo ou mínimo próprio. Este ficheiro transforma essa descrição em padrões exatos: Ajuda do MT5: RSI
- Regular de baixa: um máximo de oscilação mais alto no preço, com um RSI mais baixo no segundo máximo.
- Regular de alta: um mínimo de oscilação mais baixo no preço, com um RSI mais alto no segundo mínimo.
- Oculta de baixa (desativada por predefinição): um máximo de oscilação mais baixo, com um RSI mais alto no segundo máximo.
- Oculta de alta (desativada por predefinição): um mínimo de oscilação mais alto, com um RSI mais baixo no segundo mínimo.
Esta página não testa se o preço inverte a direção após uma divergência. Mostra o que as regras assinalam, quando o podem assinalar e casos reais em que o preço ultrapassou, ainda assim, a segunda oscilação. Dados do gráfico
Como este ficheiro calcula o RSI
O indicador utiliza preços de fecho e suavização de Wilder. A variação do preço de cada barra é dividida num ganho e numa perda, sendo um deles sempre zero, e ambos são suavizados. As barras são contadas a partir da barra carregada mais antiga, começando em zero:
change[t] = Close[t] − Close[t−1] gain[t] = max(change[t], 0) loss[t] = max(−change[t], 0) Valor inicial na barra N: AvgGain[N] = (gain[1] + … + gain[N]) / N AvgLoss[N] = (loss[1] + … + loss[N]) / N Barras posteriores: AvgGain[t] = (AvgGain[t−1] × (N − 1) + gain[t]) / N AvgLoss[t] = (AvgLoss[t−1] × (N − 1) + loss[t]) / N RSI[t] = 100 − 100 / (1 + AvgGain[t] / AvgLoss[t])
N é o período, 14 por predefinição. A etapa de suavização é a média móvel suavizada da ajuda do MT5: a média anterior multiplicada por N − 1, mais o novo valor, a dividir por N. A ajuda do RSI no MT5 apresenta a fórmula final, mas não indica que média utilizar, pelo que esta página explicita a que o código utiliza. Ajuda do MT5: média móvel suavizada Ajuda do MT5: RSI Código
Valor inicial e inicialização
O primeiro ganho médio e a primeira perda média são as médias simples das primeiras 14 variações, pelo que o primeiro valor do RSI precisa de 15 fechos. Nesta exportação, corresponde à barra de 2025-12-04 22:00 e é igual a 42.78. As barras anteriores ficam vazias e, com 14 barras ou menos, o indicador não desenha nada. Código Valores usados nesta página
O efeito do valor inicial diminui, mas nunca desaparece totalmente. Cada etapa conserva (N − 1) / N da média anterior, pelo que, 100 barras depois, o valor inicial ainda tem um peso de cerca de 0.06% em cada média. Um RSI que comece numa primeira barra diferente ou seja inicializado de outra forma apresenta, por isso, valores diferentes no início. Com os mesmos fechos e a mesma suavização, a diferença entre as médias diminui por esse fator em cada barra. Valores usados nesta página
Quando nada se move
Se a perda média for zero, a fórmula dividiria por zero. O código devolve 100 quando o ganho médio é positivo e 50 quando ambas as médias são zero, o que significa que o preço não se moveu. Com um ganho médio de zero e uma perda média positiva, a própria fórmula dá 0. Código
Os dados reais nunca atingiram estes casos: nenhum dos seus 4,986 valores de RSI é exatamente 0, 50 ou 100. São antes séries de preços sintéticas, constantes e unidirecionais, que os abrangem no teste. Verificação cruzada
Compare o que é comparável. Duas linhas RSI só coincidem quando os fechos, o período, a suavização, o valor inicial e a primeira barra coincidem. Duas listas de divergências também precisam das mesmas regras de pivôs e emparelhamento.
Como o indicador encontra uma divergência
Pivôs de oscilação
Uma barra é um pivô de máximo quando o seu máximo é estritamente superior aos máximos das 5 barras anteriores e não é ultrapassado pelos máximos das 5 barras seguintes. Um pivô de mínimo aplica a regra simétrica aos mínimos:
Pivô de máximo na barra p: High[p] > High[j] para j = p − L … p − 1
High[p] ≥ High[j] para j = p + 1 … p + R
Pivô de mínimo na barra p: Low[p] < Low[j] para j = p − L … p − 1
Low[p] ≤ Low[j] para j = p + 1 … p + R
L é PivotLeftBars e R é PivotRightBars. A assimetria resolve os empates: um máximo igual à direita não anula um pivô, mas um máximo igual à esquerda anula-o; assim, de dois máximos iguais ao alcance um do outro, a barra anterior torna-se o pivô. Existem empates nos dados reais. Nesta exportação, 10 pivôs de máximo e 4 pivôs de mínimo tinham um extremo igual à direita, e 14 máximos e 4 mínimos ficaram excluídos apenas por terem um extremo igual à esquerda. No total, a exportação tem 313 pivôs de máximo e 311 pivôs de mínimo. Código Contagens
Pares e teste de divergência
Quando se confirma um novo pivô, o código compara-o com o pivô anterior do mesmo tipo, e apenas com esse. O par é testado quando os dois pivôs estão separados por 5 a 60 barras e o RSI já existe no primeiro pivô. Um pivô mais próximo impede sempre a comparação com um mais antigo. Código
Regular de baixa: High[p2] > High[p1] e RSI[p2] < RSI[p1] Regular de alta: Low[p2] < Low[p1] e RSI[p2] > RSI[p1] Oculta de baixa: High[p2] < High[p1] e RSI[p2] > RSI[p1] Oculta de alta: Low[p2] > Low[p1] e RSI[p2] < RSI[p1] Assinalada na barra: c = p2 + R
Todas as comparações são estritas, pelo que preços iguais ou leituras iguais de RSI nunca originam uma divergência. Com 5 barras à esquerda e 5 à direita, dois pivôs do mesmo tipo estão sempre separados por pelo menos 6 barras, pelo que a distância mínima não é limitativa nas predefinições. Regras
Definições
Estes são os parâmetros do ficheiro. Todas as figuras desta página utilizam as predefinições, que são pontos de partida ilustrativos e não valores otimizados.
| Parâmetro | Predefinição | O que controla |
|---|---|---|
RsiPeriod |
14 | Período do RSI sobre preços de fecho com suavização de Wilder. |
PivotLeftBars |
5 | Barras anteriores a um pivô que este tem de ultrapassar estritamente. |
PivotRightBars |
5 | Barras fechadas após um pivô que não o podem ultrapassar. Este é também o atraso de confirmação. |
MinPivotDistance |
5 | Número mínimo de barras permitido entre os dois pivôs de um par. |
MaxPivotDistance |
60 | Número máximo de barras permitido entre os dois pivôs. A procura do pivô anterior termina aí. |
ShowHidden |
false | Acrescenta divergências ocultas como linhas pontilhadas com setas próprias. |
O período determina o peso de cada nova variação. A suavização de Wilder atribui-lhe um peso de 1/14 na predefinição e de 1/9 ou 1/25 nos períodos alternativos referidos na ajuda do MT5, pelo que um período mais curto reage mais a cada barra. PivotRightBars troca rapidez por confirmação: um valor maior nunca acrescenta pivôs e atrasa cada deteção pelas barras adicionais. Ajuda do MT5: RSI Valores usados nesta página
Interpretação dos exemplos reais
As figuras 2 a 4 provêm da exportação mediante regras de seleção fixas. As regras das figuras 2 e 3 ordenam as deteções pela diferença de RSI entre os pivôs e ignoram o que o preço fez depois. A figura 4 seleciona deliberadamente um caso falhado. Regras de seleção

Na figura 2, o segundo máximo está 0.00039 acima do primeiro, enquanto o RSI está 18.99 pontos abaixo. As duas séries são construídas a partir de preços diferentes: os pivôs utilizam máximos e mínimos, o RSI utiliza fechos. A barra que fez o segundo máximo fechou em 1.16168, 0.00420 abaixo do seu próprio máximo e 0.00212 abaixo do fecho anterior, pelo que o RSI registou uma perda precisamente na barra que estabeleceu o novo máximo. Valores usados nesta página

O segundo mínimo da figura 3 está apenas 0.00009 abaixo do primeiro, o que corresponde a 9 pontos com o incremento de preço de 0.00001 deste símbolo, enquanto o RSI está 26.22 pontos acima. A regra não tem dimensão mínima, pelo que uma diferença tão pequena conta como qualquer outra. Também aqui a barra do pivô fechou longe do seu extremo: em 1.16176, 0.00355 acima do seu mínimo e 0.00272 acima do fecho anterior. Valores usados nesta página
Nenhum dos exemplos foi escolhido pelo seu resultado. Após a confirmação na figura 2, nenhum máximo nas 24 barras seguintes ultrapassou o pivô 2. Após a confirmação na figura 3, o preço desceu abaixo do pivô 2 em 2026-05-21 16:00, com um mínimo de 1.15757, 18 barras após a barra de confirmação. Registos do gráfico

A deteção na figura 4 estava correta segundo as regras: um máximo mais alto com o RSI 17.88 pontos abaixo. O que falhou foi a expectativa de uma inversão. Após uma descida até um mínimo de 1.15237 em 2026-04-07 05:00, o preço avançou para o máximo mais alto. Registos do gráfico Valores usados nesta página
O que mostra a amostra
Nas definições predefinidas, a exportação contém 73 deteções regulares: 29 de baixa e 44 de alta. Com ShowHidden ativado, acrescentam-se 43 deteções ocultas de baixa e 29 ocultas de alta, 145 no total. Estas contagens descrevem esta amostra segundo estas regras. Não são taxas de acerto e não foi testado qualquer desempenho de negociação. Contagens
Uma divergência descreve duas oscilações que já ocorreram. O que o preço faz a seguir é uma questão distinta.
Quando uma divergência se torna conhecida
O atraso de confirmação
Um pivô precisa de 5 barras fechadas à sua direita, pelo que o detetor não pode saber da existência do pivô 2 antes de fechar a última dessas barras. O código coloca a seta nessa barra de confirmação, e não no pivô 2, e a linha entre as duas leituras de RSI surge no mesmo momento. A barra mais recente do gráfico é tratada como ainda em formação, pelo que nunca confirma um pivô. Código

O indicador redesenha os sinais?
Depois de registada, uma deteção permanece no mesmo sítio enquanto o histórico fechado não mudar. O teste nativo reproduz todas as 5,000 barras, uma de cada vez, primeiro com um tick intermédio alterado na barra mais recente e depois com os seus valores finais, e verifica em cada etapa que as deteções só aparecem na sua barra de confirmação e nunca mudam depois. O valor do RSI da barra mais recente continua a variar a cada tick, como em qualquer RSI. Se o próprio histórico de preços mudar, por exemplo ao descarregar um histórico mais profundo, o terminal passa zero como prev_calculated e o indicador recalcula tudo com os novos dados. Teste nativo Referência MQL5: OnCalculate
Uma oscilação não pode ser confirmada antes de fecharem as barras que a definem.
Combinação com outras ferramentas
O detetor compara duas oscilações com duas leituras de RSI, e nada mais. Qualquer acréscimo é uma regra distinta que teria de definir e testar. Este guia não testa nenhum dos seguintes acréscimos:
- Níveis de preço. A linha pontilhada nas figuras 2 a 5 prolonga o nível do pivô 2. O gráfico mostra se o preço negoceia depois para lá desse nível, e nas figuras 3 a 5 isso aconteceu.
- Níveis do RSI. Um filtro como deteções de alta apenas abaixo de 30 seria um novo parâmetro. Este ficheiro desenha as linhas de 30 e 70, mas não as utiliza como filtro.
- Outras leituras do RSI. A ajuda do MT5 também descreve máximos e mínimos, formações gráficas, oscilações de falha e suporte ou resistência na própria linha RSI. O detetor não os procura.
- Filtros de tendência e períodos temporais superiores. Um filtro de tendência, como uma média móvel, ou as mesmas regras num período temporal superior, alteraria as deteções que permanecem. Esta página não mede nenhuma das opções.
Limitações
- O detetor descreve barras passadas. Não faz previsões e não é apresentada qualquer taxa de acerto ou resultado de negociação.
- Cada deteção chega 5 barras fechadas após o pivô 2, por construção.
- As diferenças mínimas contam. Nos 621 pares avaliados, a menor diferença de preço foi 0.00001, o menor incremento de preço do símbolo, e a menor diferença de RSI foi 0.05 pontos. Ocorreram preços de pivô exatamente iguais em 1 par, que, por regra, não constituiu uma divergência.
- Os pivôs utilizam máximos e mínimos, mas o RSI utiliza fechos. Uma barra com uma sombra longa pode estabelecer um novo extremo e, ainda assim, fechar longe dele, como nas figuras 2 e 3.
- Só são comparados pivôs vizinhos, separados por, no máximo, 60 barras. Uma divergência entre oscilações não vizinhas não é assinalada.
- Os valores próximos do início do histórico carregado dependem do valor inicial e podem diferir dos de outras implementações do RSI.
- As horas correspondem ao relógio do servidor de negociação, UTC+3 no momento da captura; as alterações históricas da hora de verão não são modeladas. Os gráficos comprimem os intervalos de fim de semana e outros intervalos.
- O ficheiro MQL4 não foi compilado nem executado no MT4.
Utilizar o indicador
Os passos abaixo são para o MT5. O ficheiro .mq4 destina-se ao MT4 e não foi testado nessa plataforma.
- Descarregue o código-fonte .mq5 ou o ficheiro compilado .ex5 abaixo.
- Abra a pasta de dados (Ficheiro › Abrir pasta de dados no MetaEditor) e copie o ficheiro para a pasta MQL5\Indicators.
- Se utilizar o código-fonte, abra-o no MetaEditor e prima F7 para o compilar. Isto cria o ficheiro .ex5.
- Na janela Navigator do MT5, arraste o indicador para um gráfico. Este abre numa janela de indicador separada, com a sua própria escala, fixa entre 0 e 100.
- Mantenha as predefinições para corresponder a esta página ou altere os parâmetros da tabela de definições ao aplicar o indicador.
Pasta de dados Pasta de indicadores e compilação Aplicação de indicadores
Código-fonte MQL5
Código MQL5 nativo editável: RSI com linhas e setas de divergência numa janela separada. Sem ordens, alertas, importações de DLL ou pedidos web.
MQL5 compilado
Compilado a partir deste código-fonte com o MetaEditor: 0 erros, 0 avisos. A aplicação num gráfico em tempo real não foi testada.
Código-fonte MQL4
A mesma secção de cálculo com configuração de buffers ao estilo do MT4. Apenas revisão estática: não foi compilado nem executado no MT4.
O que foi verificado
A secção de cálculo do ficheiro MQL5 foi compilada, alterando apenas o nome da função de entrada, num programa de teste e executada no testador matemático do MT5 sobre as mesmas 5,000 barras. Uma implementação de referência independente das mesmas regras processou as mesmas linhas. As suas médias de Wilder utilizam uma média ponderada exponencialmente, uma forma aritmética diferente da mesma recorrência. Âmbito do programa de teste Referência MQL5: testes Média ponderada exponencialmente
Todos os 4,986 valores de RSI coincidem dentro de 4.97e-14 pontos, e 2,139 são idênticos bit a bit. A tolerância de aprovação foi de 1e-9 pontos: bem acima do ruído de vírgula flutuante esperado de cerca de 1e-13 pontos e muito mais fina do que as 2 casas decimais apresentadas pelo indicador. Todas as 145 deteções, com ShowHidden ativado, coincidem exatamente em tipo, barra de confirmação e ambas as barras de pivô. Nenhuma decisão ficou próxima da tolerância: a menor diferença de RSI subjacente a qualquer par avaliado foi de 0.05 pontos. Verificação cruzada Registo de compilação
O programa nativo passou 41 de 41 verificações, abrangendo inicialização e valor inicial, preços constantes e unidirecionais, máximos e mínimos iguais, divergências com resposta conhecida, histórico insuficiente, um tick repetido, uma barra em formação alterada, uma barra acrescentada, a reprodução barra a barra e a predefinição de ShowHidden. O script de verificação cruzada passou 24 de 24 comparações. Teste nativo Verificação cruzada
Estas verificações abrangem os cálculos e a lógica de atualização. Não abrangem o desenho num gráfico em tempo real, o MT4 ou resultados de negociação. Âmbito do programa de teste
Aviso de risco. A negociação envolve risco e pode perder dinheiro. Este indicador apenas assinala padrões passados de preço e RSI: não prevê preços, não coloca nem protege ordens e não gere o risco. Os exemplos ilustram as regras. Não são sinais de negociação e nada nesta página promete um resultado.
Perguntas frequentes
O que é uma divergência RSI?
É uma discordância entre duas oscilações de preço e as leituras do RSI nas mesmas duas barras. Numa divergência regular de baixa, o preço faz um máximo de oscilação mais alto, enquanto o RSI é mais baixo no segundo máximo. Numa divergência regular de alta, o preço faz um mínimo de oscilação mais baixo, enquanto o RSI é mais alto no segundo mínimo.
Como este ficheiro calcula o RSI?
Utiliza preços de fecho e suavização de Wilder com um período de 14. O primeiro ganho médio e a primeira perda média são as médias simples das primeiras 14 variações de preço; depois, cada nova variação entra com um peso de 1/14. Um RSI com suavização diferente dá valores diferentes em todo o histórico. Com a mesma suavização, mas um valor inicial ou uma primeira barra diferente, as diferenças são maiores perto do início do histórico e diminuem depois.
Porque aparece uma divergência 5 barras após a oscilação?
Uma oscilação só se torna um pivô quando as 5 barras à sua direita fecham sem a ultrapassar. O indicador assinala a divergência na última dessas barras e não a desloca para trás, para a barra do pivô, pelo que o gráfico mostra o que o indicador podia saber naquele momento.
O indicador redesenha os sinais?
Não após a confirmação, desde que o histórico fechado permaneça igual. Uma reprodução nativa de todas as 5,000 barras, com um tick intermédio em cada nova barra, não encontrou nenhuma deteção que surgisse antes do tempo, se deslocasse ou mudasse depois. O valor do RSI da barra em formação continua a mudar a cada tick, e uma alteração do histórico carregado, como o descarregamento de um histórico mais profundo, faz o indicador recalcular tudo.
O que são divergências ocultas?
Uma divergência oculta de baixa é um máximo de oscilação mais baixo com um RSI mais alto; uma divergência oculta de alta é um mínimo de oscilação mais alto com um RSI mais baixo. Estão desativadas por predefinição. Definir ShowHidden como true desenha-as como linhas pontilhadas com setas próprias. A verificação cruzada comparou-as com a opção ativada, e o teste nativo confirmou que a predefinição não desenha divergências ocultas e mantém as regulares inalteradas.
Uma divergência significa que o preço vai inverter a direção?
Esta página não demonstra isso. Descreve uma amostra segundo regras fixas, e as figuras 3, 4 e 5 mostram todas o preço a ultrapassar a segunda oscilação após a confirmação. Não foi testada qualquer taxa de acerto ou resultado de negociação.
Posso utilizar o ficheiro MQL4 no MT4?
O ficheiro .mq4 contém a mesma secção de cálculo do ficheiro MQL5 testado, com configuração de buffers ao estilo do MT4. Foi apenas revisto estaticamente: não foi compilado nem executado no MT4. Compile-o no MetaEditor incluído no MT4 e verifique se o registo do compilador apresenta erros e avisos antes de o utilizar.
Fontes e reprodutibilidade
Ajuda do MT5: índice de força relativa: intervalo, período de Wilder e alternativas populares, máximos e mínimos habituais, divergências, fórmula.
Ajuda do MT5: média móvel: fórmula da média móvel suavizada.
Referência MQL5: OnCalculate: o valor prev_calculated e o recálculo completo após alterações dos dados de preços.
Referência MQL5: copy_rates_from_pos: posições das barras na exportação; a posição zero é a barra atual, que a exportação omite.
Referência MQL5: testes: o modo de cálculos matemáticos utilizado no teste nativo.
Documentação da biblioteca de referência: média ponderada exponencialmente: a recorrência adjust=False utilizada pela verificação independente.
Ajuda do MetaEditor: estrutura da plataforma: a pasta de dados e as pastas de indicadores.
Ajuda do MT5: negociação algorítmica: a pasta MQL5\Indicators e a compilação com F7.
Ajuda do MT5: indicadores técnicos: aplicação de um indicador a partir do Navigator e janelas de indicadores separadas.
Valores usados nesta página e nos gráficos · Barras exportadas · Proveniência da exportação · RSI de referência e pivôs · Deteções de referência · Buffers MQL5 nativos · Deteções MQL5 nativas · Verificação cruzada · Execução do teste nativo · Registo de compilação · Registo do compilador · Especificação
Os gráficos comprimem os intervalos de fim de semana e outros intervalos entre barras. As horas correspondem ao relógio do servidor de negociação do terminal, tal como exportadas. Os exemplos são fixos para permitir a reprodução e não constituem comentários de mercado em tempo real.
Os produtos alavancados podem causar perdas rápidas. Em Portugal, os CFD destinados a investidores de retalho estão sujeitos a restrições.




