Este indicador foi desenvolvido com o objetivo de visualizar tendência predominante e localizar pontos de entrada dentro dessa tendência, e não como uma solução definitiva ou sistema fechado de trading.
Ele é baseado exclusivamente em EMAs, portanto possui atraso natural (delay), característica inerente a qualquer média móvel. Justamente por isso, não é utilizado para antecipar reversões, mas sim para:

Identificar zonas de descanso (pullbacks) dentro de uma tendência dominante e buscar entradas alinhadas ao fluxo principal.
Essa lógica é fortemente inspirada na metodologia de Larry Williams, especialmente nos conceitos:
9.1
9.2
9.33
onde o foco está em entrar após correções naturais do preço, e não em perseguir rompimentos tardios.

🎯 Objetivo Central
O indicador busca responder a três perguntas fundamentais:
Qual é a tendência dominante?
O preço está em movimento ou em correção?
Estamos próximos de uma zona estatisticamente favorável para entrada?
A resposta vem através da combinação de dois timeframes simultâneos, permitindo:
Filtrar ruído do mercado
Confirmar força direcional
Visualizar zonas de pullback
Melhorar timing de entrada
🧠 Conceito Operacional

A lógica central é baseada em:
🔹 Tendência forte → esperar correção → buscar retomada
Em vez de comprar topos ou vender fundos, o indicador prioriza:

Entradas durante o descanso do preço dentro de uma tendência bem definida.
Ou seja:
Em tendência de alta → buscar compras após retrações
Em tendência de baixa → buscar vendas após correções
🧩 Estrutura do Indicador
🔹 Dois Timeframes
O indicador utiliza dois tempos gráficos simultâneos:
TF1 — Timeframe Rápido
Fornece sensibilidade e timing fino
Detecta micro movimentos, pullbacks curtos e retomadas rápidas
TF2 — Timeframe Lento
Define tendência estrutural
Funciona como filtro direcional principal

📌 Só buscamos entradas no TF1 quando o TF2 confirma tendência clara.
🔹 Conjunto Progressivo de EMAs
Ambos os timeframes utilizam múltiplas EMAs sequenciais, formando:
Canal dinâmico de tendência
Zonas naturais de pullback
Visualização clara de aceleração ou desaceleração

Esse empilhamento cria um mapa visual da estrutura do mercado, facilitando a leitura sem poluição.
🔹 Sinais Visuais de Cruzamento
O indicador marca automaticamente:
Cruzamentos entre EMAs consecutivas
Separando:
TF1 (sinais menores)
TF2 (sinais maiores e mais relevantes)
Esses sinais não devem ser interpretados isoladamente, mas como:
Confirmações de retomada da tendência após uma correção.

🟢 Lógica Inspirada em Larry Williams (9.1 / 9.2 / 9.33)
A essência da metodologia aplicada é:
Esperar o mercado descansar dentro da tendência para então entrar com risco reduzido.
O conjunto de EMAs permite:
Identificar o momento em que o preço:
desacelera
consolida
retorna à média
e volta a ganhar direção
Esse comportamento é justamente o que Larry Williams explora em seus setups clássicos.
⚠️ Considerações Importantes
❌ Não é um sistema mecânico
❌ Não é um indicador preditivo
❌ Não elimina risco
✅ É uma ferramenta visual de contexto
✅ Ajuda na leitura de fluxo
✅ Facilita timing em pullbacks
✅ Extremamente personalizável
🎛️ Altamente Personalizável
O script permite personalização completa:
Timeframes independentes
Períodos de EMAs
Cores
Espessuras
Sinais visuais
Alertas automáticos
Isso permite adaptar o indicador para:
Scalping
Day trade
Swing trade
🧠 Filosofia do Projeto
Não buscamos prever o mercado.
Buscamos acompanhar a força dominante e nos posicionar nos momentos de menor risco.

SCRIPT
Copie e cole o script em seu tradingview para fazer uma avaliação prática do que estamos falando - gostou? Comenta aqui e lembre-se este indicador deve ser uma base e não a principal decisão sobre seus trades
//@version=5
indicator("MyCoinPilot | Dual TF - TREND AND REST", shorttitle="DTF EMA", overlay=true, max_lines_count=500)
// ─────────────────────────────────────────────// INPUTS - TIMEFRAMES// ─────────────────────────────────────────────tf1 = input.timeframe("1", title="⏱ Timeframe 1 (linhas finas)", group="⚙️ Configuração de Timeframes")tf2 = input.timeframe("15", title="⏱ Timeframe 2 (linhas grossas)", group="⚙️ Configuração de Timeframes")
// ─────────────────────────────────────────────// INPUTS - EMA BASE VALUES TF1// ─────────────────────────────────────────────tf1_e1 = input.int(27, title="EMA 1 (TF1)", group="📐 Períodos EMA – Timeframe 1")tf1_e2 = input.int(54, title="EMA 2 (TF1)", group="📐 Períodos EMA – Timeframe 1")tf1_e3 = input.int(72, title="EMA 3 (TF1)", group="📐 Períodos EMA – Timeframe 1")tf1_e4 = input.int(144, title="EMA 4 (TF1)", group="📐 Períodos EMA – Timeframe 1")tf1_e5 = input.int(288, title="EMA 5 (TF1)", group="📐 Períodos EMA – Timeframe 1")
// ─────────────────────────────────────────────// INPUTS - EMA BASE VALUES TF2// ─────────────────────────────────────────────tf2_e1 = input.int(9, title="EMA 1 (TF2)", group="📐 Períodos EMA – Timeframe 2")tf2_e2 = input.int(18, title="EMA 2 (TF2)", group="📐 Períodos EMA – Timeframe 2")tf2_e3 = input.int(36, title="EMA 3 (TF2)", group="📐 Períodos EMA – Timeframe 2")tf2_e4 = input.int(45, title="EMA 4 (TF2)", group="📐 Períodos EMA – Timeframe 2")tf2_e5 = input.int(72, title="EMA 5 (TF2)", group="📐 Períodos EMA – Timeframe 2")
// ─────────────────────────────────────────────// INPUTS - CORES TF1 (linhas finas)// ─────────────────────────────────────────────c1_1 = input.color(color.new(#00E5FF, 0), title="Cor EMA1 TF1", group="🎨 Cores – Timeframe 1")c1_2 = input.color(color.new(#00B0FF, 0), title="Cor EMA2 TF1", group="🎨 Cores – Timeframe 1")c1_3 = input.color(color.new(#2979FF, 0), title="Cor EMA3 TF1", group="🎨 Cores – Timeframe 1")c1_4 = input.color(color.new(#651FFF, 0), title="Cor EMA4 TF1", group="🎨 Cores – Timeframe 1")c1_5 = input.color(color.new(#D500F9, 0), title="Cor EMA5 TF1", group="🎨 Cores – Timeframe 1")
// ─────────────────────────────────────────────// INPUTS - CORES TF2 (linhas grossas)// ─────────────────────────────────────────────c2_1 = input.color(color.new(#FFD600, 0), title="Cor EMA1 TF2", group="🎨 Cores – Timeframe 2")c2_2 = input.color(color.new(#FF9100, 0), title="Cor EMA2 TF2", group="🎨 Cores – Timeframe 2")c2_3 = input.color(color.new(#FF3D00, 0), title="Cor EMA3 TF2", group="🎨 Cores – Timeframe 2")c2_4 = input.color(color.new(#F50057, 0), title="Cor EMA4 TF2", group="🎨 Cores – Timeframe 2")c2_5 = input.color(color.new(#C51162, 0), title="Cor EMA5 TF2", group="🎨 Cores – Timeframe 2")
// ─────────────────────────────────────────────// INPUTS - SINAIS// ─────────────────────────────────────────────show_signals_tf1 = input.bool(true, title="Mostrar sinais de cruzamento TF1", group="🔔 Sinais de Cruzamento")show_signals_tf2 = input.bool(true, title="Mostrar sinais de cruzamento TF2", group="🔔 Sinais de Cruzamento")
// ─────────────────────────────────────────────// REQUEST TIMEFRAME DATA// ─────────────────────────────────────────────src = close
// TF1 EMAs (calculadas no TF1, exibidas no gráfico atual)tf1_ema1 = request.security(syminfo.tickerid, tf1, ta.ema(src, tf1_e1), lookahead=barmerge.lookahead_off)tf1_ema2 = request.security(syminfo.tickerid, tf1, ta.ema(src, tf1_e2), lookahead=barmerge.lookahead_off)tf1_ema3 = request.security(syminfo.tickerid, tf1, ta.ema(src, tf1_e3), lookahead=barmerge.lookahead_off)tf1_ema4 = request.security(syminfo.tickerid, tf1, ta.ema(src, tf1_e4), lookahead=barmerge.lookahead_off)tf1_ema5 = request.security(syminfo.tickerid, tf1, ta.ema(src, tf1_e5), lookahead=barmerge.lookahead_off)
// TF2 EMAstf2_ema1 = request.security(syminfo.tickerid, tf2, ta.ema(src, tf2_e1), lookahead=barmerge.lookahead_off)tf2_ema2 = request.security(syminfo.tickerid, tf2, ta.ema(src, tf2_e2), lookahead=barmerge.lookahead_off)tf2_ema3 = request.security(syminfo.tickerid, tf2, ta.ema(src, tf2_e3), lookahead=barmerge.lookahead_off)tf2_ema4 = request.security(syminfo.tickerid, tf2, ta.ema(src, tf2_e4), lookahead=barmerge.lookahead_off)tf2_ema5 = request.security(syminfo.tickerid, tf2, ta.ema(src, tf2_e5), lookahead=barmerge.lookahead_off)
// ─────────────────────────────────────────────// PLOTS – TF1 (espessura 1)// ─────────────────────────────────────────────plot(tf1_ema1, title="TF1 EMA " , color=c1_1, linewidth=1, style=plot.style_line)plot(tf1_ema2, title="TF1 EMA ", color=c1_2, linewidth=1, style=plot.style_line)plot(tf1_ema3, title="TF1 EMA ", color=c1_3, linewidth=1, style=plot.style_line)plot(tf1_ema4, title="TF1 EMA ", color=c1_4, linewidth=1, style=plot.style_line)plot(tf1_ema5, title="TF1 EMA " , color=c1_5, linewidth=1, style=plot.style_line)
// ─────────────────────────────────────────────// PLOTS – TF2 (espessura 3)// ─────────────────────────────────────────────plot(tf2_ema1, title="TF2 EMA " , color=c2_1, linewidth=2, style=plot.style_line)plot(tf2_ema2, title="TF2 EMA " , color=c2_2, linewidth=2, style=plot.style_line)plot(tf2_ema3, title="TF2 EMA " , color=c2_3, linewidth=2, style=plot.style_line)d2 =plot(tf2_ema4, title="TF2 EMA " , color=c2_4, linewidth=2, style=plot.style_line)e2 = plot(tf2_ema5, title="TF2 EMA ", color=c2_5, linewidth=2, style=plot.style_line)
// ─────────────────────────────────────────────// CRUZAMENTOS – TF1// ─────────────────────────────────────────────// Cruzamentos bullish (rápida cruza acima da lenta) → triângulo verde pequeno (▲)// Cruzamentos bearish (rápida cruza abaixo da lenta) → triângulo vermelho pequeno (▼)
// TF1: EMA1 x EMA2cross_tf1_12_bull = show_signals_tf1 and ta.crossover(tf1_ema1, tf1_ema2)cross_tf1_12_bear = show_signals_tf1 and ta.crossunder(tf1_ema1, tf1_ema2)
// TF1: EMA2 x EMA3cross_tf1_23_bull = show_signals_tf1 and ta.crossover(tf1_ema2, tf1_ema3)cross_tf1_23_bear = show_signals_tf1 and ta.crossunder(tf1_ema2, tf1_ema3)
// TF1: EMA3 x EMA4cross_tf1_34_bull = show_signals_tf1 and ta.crossover(tf1_ema3, tf1_ema4)cross_tf1_34_bear = show_signals_tf1 and ta.crossunder(tf1_ema3, tf1_ema4)
// TF1: EMA4 x EMA5cross_tf1_45_bull = show_signals_tf1 and ta.crossover(tf1_ema4, tf1_ema5)cross_tf1_45_bear = show_signals_tf1 and ta.crossunder(tf1_ema4, tf1_ema5)
// ─────────────────────────────────────────────// CRUZAMENTOS – TF2// ─────────────────────────────────────────────// TF2: EMA1 x EMA2cross_tf2_12_bull = show_signals_tf2 and ta.crossover(tf2_ema1, tf2_ema2)cross_tf2_12_bear = show_signals_tf2 and ta.crossunder(tf2_ema1, tf2_ema2)
// TF2: EMA2 x EMA3cross_tf2_23_bull = show_signals_tf2 and ta.crossover(tf2_ema2, tf2_ema3)cross_tf2_23_bear = show_signals_tf2 and ta.crossunder(tf2_ema2, tf2_ema3)
// TF2: EMA3 x EMA4cross_tf2_34_bull = show_signals_tf2 and ta.crossover(tf2_ema3, tf2_ema4)cross_tf2_34_bear = show_signals_tf2 and ta.crossunder(tf2_ema3, tf2_ema4)
// TF2: EMA4 x EMA5cross_tf2_45_bull = show_signals_tf2 and ta.crossover(tf2_ema4, tf2_ema5)cross_tf2_45_bear = show_signals_tf2 and ta.crossunder(tf2_ema4, tf2_ema5)
// ─────────────────────────────────────────────// PLOTAGEM DOS SINAIS TF1 – pequenos, abaixo/acima da barra// ─────────────────────────────────────────────// Bull: triângulo verde abaixo da barra (▲ shape=triangleup)// Bear: triângulo vermelho acima da barra (▼ shape=triangledown)
// Para evitar sobreposição exata, cada par usa offset de tamanho diferenteplotshape(cross_tf1_12_bull, title="TF1 12 Bull", location=location.belowbar, style=shape.triangleup, color=color.lime, size=size.tiny, text="1×2", textcolor=color.lime)plotshape(cross_tf1_12_bear, title="TF1 12 Bear", location=location.abovebar, style=shape.triangledown, color=color.red, size=size.tiny, text="1×2", textcolor=color.red)
plotshape(cross_tf1_23_bull, title="TF1 23 Bull", location=location.belowbar, style=shape.triangleup, color=color.aqua, size=size.tiny, text="2×3", textcolor=color.aqua)plotshape(cross_tf1_23_bear, title="TF1 23 Bear", location=location.abovebar, style=shape.triangledown, color=color.orange, size=size.tiny, text="2×3", textcolor=color.orange)
plotshape(cross_tf1_34_bull, title="TF1 34 Bull", location=location.belowbar, style=shape.triangleup, color=color.green, size=size.tiny, text="3×4", textcolor=color.green)plotshape(cross_tf1_34_bear, title="TF1 34 Bear", location=location.abovebar, style=shape.triangledown, color=color.fuchsia,size=size.tiny, text="3×4", textcolor=color.fuchsia)
plotshape(cross_tf1_45_bull, title="TF1 45 Bull", location=location.belowbar, style=shape.triangleup, color=color.teal, size=size.normal, text="4×5", textcolor=color.teal)plotshape(cross_tf1_45_bear, title="TF1 45 Bear", location=location.abovebar, style=shape.triangledown, color=color.maroon, size=size.normal, text="4×5", textcolor=color.purple)
// ─────────────────────────────────────────────// PLOTAGEM DOS SINAIS TF2 – maiores, mais destacados (size.small)// ─────────────────────────────────────────────plotshape(cross_tf2_12_bull, title="TF2 12 Bull", location=location.belowbar, style=shape.triangleup, color=color.new(color.green, 0), size=size.large, text="TF2\n1×2", textcolor=color.yellow)plotshape(cross_tf2_12_bear, title="TF2 12 Bear", location=location.abovebar, style=shape.triangledown, color=color.new(color.red, 0), size=size.large, text="TF2\n1×2", textcolor=color.yellow)
plotshape(cross_tf2_23_bull, title="TF2 23 Bull", location=location.belowbar, style=shape.diamond, color=color.new(color.orange, 0), size=size.small, text="TF2\n2×3", textcolor=color.orange)plotshape(cross_tf2_23_bear, title="TF2 23 Bear", location=location.abovebar, style=shape.diamond, color=color.new(color.orange, 0), size=size.small, text="TF2\n2×3", textcolor=color.orange)
plotshape(cross_tf2_34_bull, title="TF2 34 Bull", location=location.belowbar, style=shape.square, color=color.new(color.red, 0), size=size.small, text="TF2\n3×4", textcolor=color.red)plotshape(cross_tf2_34_bear, title="TF2 34 Bear", location=location.abovebar, style=shape.square, color=color.new(color.red, 0), size=size.small, text="TF2\n3×4", textcolor=color.red)
plotshape(cross_tf2_45_bull, title="TF2 45 Bull", location=location.belowbar, style=shape.cross, color=color.new(color.fuchsia, 0), size=size.small, text="TF2\n4×5", textcolor=color.fuchsia)plotshape(cross_tf2_45_bear, title="TF2 45 Bear", location=location.abovebar, style=shape.cross, color=color.new(color.fuchsia, 0), size=size.small, text="TF2\n4×5", textcolor=color.fuchsia)
color_fill_trend_tf2 = tf2_ema1>tf2_ema2?color.new(#00ff00, 75): color.new(#ff0000, 75)fill(d2,e2,color_fill_trend_tf2)
color_fill_trend_tf1 = tf1_ema1>tf1_ema2?color.new(#00ff00, 75): color.new(#ff0000, 75)fill(d2,e2,color_fill_trend_tf1)
// ─────────────────────────────────────────────// ALERTAS (opcional)// ─────────────────────────────────────────────alertcondition(cross_tf1_12_bull or cross_tf1_23_bull or cross_tf1_34_bull or cross_tf1_45_bull, title="TF1 Cruzamento Bullish", message="TF1 – EMA cruzamento de alta detectado")alertcondition(cross_tf1_12_bear or cross_tf1_23_bear or cross_tf1_34_bear or cross_tf1_45_bear, title="TF1 Cruzamento Bearish", message="TF1 – EMA cruzamento de baixa detectado")alertcondition(cross_tf2_12_bull or cross_tf2_23_bull or cross_tf2_34_bull or cross_tf2_45_bull, title="TF2 Cruzamento Bullish", message="TF2 – EMA cruzamento de alta detectado")alertcondition(cross_tf2_12_bear or cross_tf2_23_bear or cross_tf2_34_bear or cross_tf2_45_bear, title="TF2 Cruzamento Bearish", message="TF2 – EMA cruzamento de baixa detectado")