Cruzamento de médias, RSI saindo da sobrevenda, MACD virando — quase toda estratégia de trading depende de detectar um cruzamento entre duas séries. No Pine Script v5/v6 (2026), isso se resolve com duas funções built-in: ta.crossover e ta.crossunder. Este guia mostra a sintaxe exata, exemplos prontos para colar no TradingView e os erros mais comuns que fazem o sinal “repintar” ou disparar na hora errada.

Quer transformar esses sinais de cruzamento em operações automáticas? Veja nosso bot open-source em Python.

Ver o bot (API Quotex em Python) →

O que cada função faz

As duas funções retornam um valor booleano (true/false) avaliado a cada barra:

  • ta.crossover(a, b) → retorna true na barra em que a série a cruza b para cima (antes estava abaixo ou igual, agora está acima).
  • ta.crossunder(a, b) → retorna true na barra em que a cruza b para baixo.

Repare que o cruzamento é um evento pontual: ele é true apenas na barra exata do cruzamento, não enquanto a permanece acima de b. Para essa diferença existe a função genérica ta.cross(a, b), que detecta o cruzamento em qualquer direção.

Sintaxe básica

//@version=6 indicator(“Cruzamento de Medias”, overlay=true) fast = ta.sma(close, 9) slow = ta.sma(close, 21) compra = ta.crossover(fast, slow) // media rapida cruza a lenta para cima venda = ta.crossunder(fast, slow) // media rapida cruza a lenta para baixo plot(fast, color=color.aqua) plot(slow, color=color.orange) plotshape(compra, title=”Compra”, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small) plotshape(venda, title=”Venda”, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)
Importante: os argumentos podem ser uma série e um valor fixo. Por exemplo, ta.crossover(ta.rsi(close,14), 30) dispara quando o RSI sobe e cruza o nível 30 — útil para detectar saída de sobrevenda.

Exemplo com RSI

//@version=6 indicator(“RSI Cruzamentos”) rsi = ta.rsi(close, 14) saiuSobrevenda = ta.crossover(rsi, 30) saiuSobrecompra = ta.crossunder(rsi, 70) plot(rsi, color=color.purple) hline(30, color=color.green) hline(70, color=color.red) bgcolor(saiuSobrevenda ? color.new(color.green, 80) : na) bgcolor(saiuSobrecompra ? color.new(color.red, 80) : na)

Disparar alertas no cruzamento

Para automatizar (inclusive via webhook), combine o cruzamento com alertcondition ou alert():

compra = ta.crossover(ta.ema(close,9), ta.ema(close,21)) if compra alert(“Sinal de COMPRA: EMA9 cruzou EMA21 para cima”, alert.freq_once_per_bar_close) alertcondition(compra, title=”Compra EMA”, message=”Cruzamento de alta detectado”)
Evite repaint: use alert.freq_once_per_bar_close e baseie decisões no fechamento da barra. Cruzamentos avaliados com a barra ainda em formação podem aparecer e desaparecer (repaint) antes do fechamento, gerando sinais falsos.

Erros comuns

  • Confundir com comparação simples: fast > slow é true em todas as barras em que a rápida está acima; ta.crossover é true só na barra do cruzamento.
  • Ordem dos argumentos: ta.crossover(a, b)ta.crossover(b, a). A direção importa.
  • Esquecer o fechamento: sinais intrabar repintam. Confirme no fechamento para backtests realistas.
  • Usar em séries com na: nos primeiros candles a média pode ser na e o cruzamento não dispara — é esperado.

FAQ

Qual a diferença entre ta.cross e ta.crossover?
ta.cross detecta cruzamento em qualquer direção; ta.crossover só para cima e ta.crossunder só para baixo.

Funciona no Pine Script v5 e v6?
Sim. No v5/v6 use o prefixo ta.. Em scripts antigos (v3/v4) era apenas crossover() sem o namespace.

Posso comparar uma série com um número fixo?
Sim, como em ta.crossover(ta.rsi(close,14), 50).

Esses sinais servem para opções binárias?
Servem como gatilho de estratégia, mas cruzamento isolado gera muitos falsos sinais. Combine com filtro de tendência e teste sempre em demo.

Aviso: opções binárias são produtos de altíssimo risco e podem resultar na perda total do capital. Este conteúdo é educacional e técnico, não constitui recomendação de investimento nem consultoria financeira. Indicadores e cruzamentos não garantem resultado. Teste sempre em conta demo antes de operar com dinheiro real.