A função ta.atr é uma das ferramentas mais úteis (e mais mal usadas) do Pine Script. Ela calcula o Average True Range — uma medida de volatilidade que serve para dimensionar stops, alvos e tamanho de posição de forma proporcional ao “tamanho do movimento” do ativo. Neste guia honesto você vai ver a sintaxe correta no Pine Script v5, um exemplo de código pronto para colar no TradingView e os erros mais comuns de quem está começando.

Quer transformar um indicador do TradingView em execução automática de ordens? Veja como conectar sinais a uma plataforma de opções binárias com Python.

Automatizar com a API em Python →

O que é o ATR e por que ele importa

O ATR mede a amplitude média das velas em um período, considerando os gaps entre o fechamento anterior e a abertura atual (o “true range”). Ao contrário de indicadores de direção, o ATR não diz se o preço vai subir ou cair — ele apenas diz o quanto o preço costuma se mover. Isso é precioso para definir um stop que não seja estourado por ruído normal de mercado, ou para reduzir posição quando a volatilidade dispara.

Regra prática: ATR alto = velas grandes = stops precisam de mais espaço e a posição deveria ser menor. ATR baixo = mercado comprimido, muitas vezes antes de uma expansão.

Sintaxe de ta.atr no Pine Script v5

A assinatura é simples — recebe apenas o comprimento (número de velas) e devolve uma série com o ATR suavizado por RMA:

ta.atr(length) → series float // length: int — número de períodos (ex.: 14) // retorno: o ATR como série de ponto flutuante

Internamente, ta.atr(14) equivale a ta.rma(ta.tr(true), 14). Saber disso ajuda quando você quer trocar a suavização (por exemplo, usar ta.ema no lugar do RMA padrão).

Exemplo pronto: ATR no painel + stops dinâmicos

Cole este código no editor do Pine no TradingView. Ele plota o ATR em um painel separado e calcula níveis de stop a partir do preço atual:

//@version=5 indicator(“ATR + Stops Dinamicos”, overlay=false) length = input.int(14, “Periodo ATR”, minval=1) mult = input.float(1.5, “Multiplicador”, step=0.1) atr = ta.atr(length) // Stops dinamicos baseados no fechamento stopLong = close – atr * mult stopShort = close + atr * mult plot(atr, “ATR”, color=color.orange, linewidth=2) hline(0, “Zero”, color=color.gray) // Mostrar os valores em uma tabela simples var table t = table.new(position.top_right, 1, 2) if barstate.islast table.cell(t, 0, 0, “Stop Long: ” + str.tostring(stopLong, “#.#####”)) table.cell(t, 0, 1, “Stop Short: ” + str.tostring(stopShort, “#.#####”))
Dica: para opções binárias com expiração fixa, o ATR é mais útil como filtro de entrada (evitar operar quando a volatilidade está fora do normal) do que como stop, já que nesse produto não existe stop loss tradicional.

Usando ATR para tamanho de posição

Em mercados onde você controla o tamanho da posição (forex, índices, cripto), uma abordagem comum é arriscar uma fração fixa do capital por trade e deixar o ATR definir a distância do stop:

// Risco de 1% do capital, stop a 2x ATR capital = 1000.0 riscoPct = 0.01 atr = ta.atr(14) distancia = atr * 2 // Tamanho = risco em dinheiro / distancia do stop tamanho = (capital * riscoPct) / distancia plot(tamanho, “Tamanho sugerido”)

Esse cálculo automatiza a ideia de “arriscar sempre o mesmo” independentemente de o ativo estar calmo ou agitado. Ainda assim, trate o número como ponto de partida, não como verdade absoluta.

Erros comuns com ta.atr

Três armadilhas aparecem o tempo todo. Primeira: usar length curto demais (1 a 3), o que deixa o ATR nervoso e sem valor estatístico. Segunda: comparar o ATR de ativos diferentes em valor absoluto — um ATR de 0,5 no ouro e de 0,0005 num par de moedas não se comparam diretamente; normalize dividindo pelo preço se precisar. Terceira: esperar que o ATR preveja direção. Ele é volatilidade pura.

FAQ

Qual o melhor período para o ta.atr? O padrão 14 funciona bem na maioria dos timeframes. Períodos menores (7-10) reagem mais rápido; maiores (20-30) são mais estáveis.

ta.atr funciona em qualquer timeframe? Sim. O valor muda conforme o gráfico — o ATR de um candle de 1 minuto é muito menor que o de um candle diário.

Posso usar ta.atr dentro de uma estratégia (strategy)? Sim, exatamente da mesma forma. Em scripts strategy() ele costuma alimentar strategy.exit com stops e alvos baseados em ATR.

ta.atr dá repaint? Não no fechamento da vela. Como qualquer indicador, o valor da vela atual ainda em formação pode mudar até ela fechar.

Aviso: opções binárias e trading alavancado são produtos de altíssimo risco e a maioria dos investidores de varejo perde dinheiro. Este conteúdo é educacional, não constitui recomendação de investimento e não garante qualquer resultado. Teste sempre qualquer indicador ou estratégia em conta demo antes de arriscar dinheiro real.

Posts Similares