Indicador de Fibonacci Automático com IA — Código Pronto para TradingView
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
//@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
- Abra o TradingView → qualquer gráfico (ex: EUR/USD, Volatility 75)
- Clique em Pine Editor na parte inferior
- Apague o código padrão e cole o código acima
- Clique em Adicionar ao gráfico
- 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 →📚 Relacionados
→ Como Criar Indicadores com IA (Guia Completo)
→ 10 Indicadores Pine Script Prontos
→ Comece Aqui