📊 Indicador Pronto

Indicador de Fibonacci Automático com IA — Código Pronto para TradingView

Por Dan Machado · Abril 2026 · 10 min

Retração de Fibonacci é uma das ferramentas mais usadas por traders profissionais. O problema? Desenhar manualmente em cada ativo é tedioso. A solução: um indicador que detecta os pivots automaticamente e desenha os níveis para você.

Neste post, vou te entregar o código Pine Script v5 pronto, gerado com IA, que faz exatamente isso — e explico como personalizar.

O que o indicador faz

  • Detecta automaticamente o último swing high e swing low
  • Desenha os 7 níveis de Fibonacci: 0%, 23.6%, 38.2%, 50%, 61.8%, 78.6%, 100%
  • Cada nível com cor diferente e label com o valor exato
  • Destaca os níveis mais importantes (38.2%, 50%, 61.8%) em linhas mais grossas
  • Alerta quando o preço toca o nível 61.8% (zona de reversão clássica)
  • Parâmetros 100% configuráveis

Código Completo

Pine Script v5📋 Copiar
//@version=5
indicator("Fibonacci Auto — IA Trader Pro", overlay=true, max_lines_count=20, max_labels_count=20)

// === PARÂMETROS ===
lookback = input.int(50, "Lookback (candles)", minval=10)
showLabels = input.bool(true, "Mostrar labels")
alertOn618 = input.bool(true, "Alerta no 61.8%")

// === DETECTAR SWING HIGH E LOW ===
swingHigh = ta.highest(high, lookback)
swingLow = ta.lowest(low, lookback)
range_ = swingHigh - swingLow

// === CALCULAR NÍVEIS DE FIBONACCI ===
fib0    = swingLow
fib236  = swingLow + range_ * 0.236
fib382  = swingLow + range_ * 0.382
fib500  = swingLow + range_ * 0.500
fib618  = swingLow + range_ * 0.618
fib786  = swingLow + range_ * 0.786
fib100  = swingHigh

// === DESENHAR LINHAS ===
var line l0   = na
var line l236 = na
var line l382 = na
var line l500 = na
var line l618 = na
var line l786 = na
var line l100 = na

if barstate.islast
    line.delete(l0)
    line.delete(l236)
    line.delete(l382)
    line.delete(l500)
    line.delete(l618)
    line.delete(l786)
    line.delete(l100)
    
    l0   := line.new(bar_index - lookback, fib0,   bar_index, fib0,   color=color.gray,   width=1, extend=extend.right)
    l236 := line.new(bar_index - lookback, fib236, bar_index, fib236, color=#FF9800,      width=1, extend=extend.right)
    l382 := line.new(bar_index - lookback, fib382, bar_index, fib382, color=#00E676,      width=2, extend=extend.right)
    l500 := line.new(bar_index - lookback, fib500, bar_index, fib500, color=#448AFF,      width=2, extend=extend.right, style=line.style_dashed)
    l618 := line.new(bar_index - lookback, fib618, bar_index, fib618, color=#FF5252,      width=3, extend=extend.right)
    l786 := line.new(bar_index - lookback, fib786, bar_index, fib786, color=#E040FB,      width=1, extend=extend.right)
    l100 := line.new(bar_index - lookback, fib100, bar_index, fib100, color=color.gray,   width=1, extend=extend.right)

// === LABELS ===
var label lb0   = na
var label lb236 = na
var label lb382 = na
var label lb500 = na
var label lb618 = na
var label lb786 = na
var label lb100 = na

if barstate.islast and showLabels
    label.delete(lb0)
    label.delete(lb236)
    label.delete(lb382)
    label.delete(lb500)
    label.delete(lb618)
    label.delete(lb786)
    label.delete(lb100)
    
    lb0   := label.new(bar_index + 5, fib0,   "0% (" + str.tostring(fib0, "#.####") + ")",   color=color.new(color.gray, 70),   textcolor=color.gray,   style=label.style_label_left, size=size.small)
    lb236 := label.new(bar_index + 5, fib236, "23.6% (" + str.tostring(fib236, "#.####") + ")", color=color.new(#FF9800, 70),      textcolor=#FF9800,      style=label.style_label_left, size=size.small)
    lb382 := label.new(bar_index + 5, fib382, "38.2% (" + str.tostring(fib382, "#.####") + ")", color=color.new(#00E676, 70),      textcolor=#00E676,      style=label.style_label_left, size=size.small)
    lb500 := label.new(bar_index + 5, fib500, "50% (" + str.tostring(fib500, "#.####") + ")",   color=color.new(#448AFF, 70),      textcolor=#448AFF,      style=label.style_label_left, size=size.small)
    lb618 := label.new(bar_index + 5, fib618, "61.8% (" + str.tostring(fib618, "#.####") + ")", color=color.new(#FF5252, 70),      textcolor=#FF5252,      style=label.style_label_left, size=size.small)
    lb786 := label.new(bar_index + 5, fib786, "78.6% (" + str.tostring(fib786, "#.####") + ")", color=color.new(#E040FB, 70),      textcolor=#E040FB,      style=label.style_label_left, size=size.small)
    lb100 := label.new(bar_index + 5, fib100, "100% (" + str.tostring(fib100, "#.####") + ")", color=color.new(color.gray, 70),   textcolor=color.gray,   style=label.style_label_left, size=size.small)

// === ALERTAS ===
touch618 = math.abs(close - fib618) < (range_ * 0.005)
alertcondition(alertOn618 and touch618, "Fib 61.8%", "Preço tocou o nível 61.8% — possível reversão")

Como usar

  1. Abra o TradingView → qualquer gráfico (ex: EUR/USD, Volatility 75)
  2. Clique em Pine Editor na parte inferior
  3. Apague o código padrão e cole o código acima
  4. Clique em Adicionar ao gráfico
  5. Os níveis de Fibonacci aparecem automaticamente no gráfico

Personalizando com IA

Quer adaptar o indicador? Peça à IA (ChatGPT ou Claude) para modificar. Exemplos:

  • "Mude o lookback para 100 candles e adicione o nível 127.2% de extensão"
  • "Adicione setas de compra quando o preço tocar o 61.8% em tendência de alta"
  • "Pinte o fundo do gráfico de verde quando o preço estiver entre 38.2% e 61.8%"
  • "Converta para uma estratégia com backtest"

💡 Dica

Fibonacci funciona melhor em mercados com tendência clara. Em mercados laterais, os níveis perdem significado. Combine com outros indicadores (EMA, RSI) para confirmar entradas.

🚀 Teste o indicador no TradingView e aplique na Deriv (conta demo grátis):

Abrir Conta Demo Deriv →
DM

Dan Machado

Biblioteca em Indicadores & Scripts.

⚠️ Indicador educacional. Trading envolve risco. Disclaimer.

Posts Similares