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:

  1. Qual é a tendência dominante?

  2. O preço está em movimento ou em correção?

  3. 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")