TSM Donchian Moving Average System
Sistema de trading que combina médias móveis com bandas estilo Keltner Channel para identificar setups de compra e venda por coloração de candles.
Autor: UDAY_C_Santhakumar (ucsgears) — Pine Wizard
Publicado: 15 de março de 2015
Fonte: TradingView Script
Tipo: Indicador (overlay no gráfico de preços)
Visão geral
O TSM Donchian Moving Average System é um indicador que combina duas médias móveis simples (SMA) com bandas de volatilidade baseadas no ATR (Average True Range), formando canais ao redor de cada média. O sinal visual é dado pela coloração dos candles:
- Candle verde → setup de compra (long)
- Candle vermelho → setup de venda (short)
O autor descreve como um trabalho em progresso (work-in-progress), sem lógica de saída implementada.
Como funciona
Componentes
| Componente | Cálculo | Finalidade |
|---|---|---|
malong | SMA(close, 20) | Tendência principal |
mashort | SMA(close, 5) | Movimento de curto prazo |
range | SMA(ATR, 20) × Band Factor | Largura dos canais |
kclupper | malong + range | Banda superior do canal lento |
kcllower | malong - range | Banda inferior do canal lento |
kcsupper | mashort + range | Banda superior do canal rápido |
kcslower | mashort - range | Banda inferior do canal rápido |
Lógica de sinal
Setup Long → close > kclupper[1] E close > kcsupper[1]
Setup Short → close < kcllower[1] E close < kcslower[1]O preço precisa fechar acima de ambas as bandas superiores para sinalizar long, ou abaixo de ambas as bandas inferiores para sinalizar short. O uso de [1] aplica um deslocamento de 1 barra, comparando com os valores do candle anterior — evitando repintura.
Parâmetros
| Parâmetro | Padrão | Descrição |
|---|---|---|
Long Period | 20 | Período da SMA lenta e do ATR |
Short Period | 5 | Período da SMA rápida |
Band Factor | 1 | Multiplicador aplicado ao ATR para largura das bandas |
Código-fonte
Script original em Pine Script v1 (sintaxe legada). Funciona no TradingView mas pode gerar avisos de depreciação.
study("TSM Donchian Moving Average System", overlay = true)
a = input(20, title = "Long Period")
b = input(5, title = "Short Period")
ca = input(1, title = "Band Factor")
// Médias móveis
malong = sma(close, a)
mashort = sma(close, b)
// Bandas de volatilidade (ATR-based)
range = sma(tr, a) * ca
kclupper = malong + range
kcllower = malong - range
kcsupper = mashort + range
kcslower = mashort - range
// Plotagem
plot(malong, offset=1, title="SMA Long")
plot(mashort, offset=1, title="SMA Short")
plot(kclupper, offset=1, title="KC Upper")
plot(kcllower, offset=1, title="KC Lower")
// Sinais por coloração de candle
setuplong = close > kclupper[1] and close > kcsupper[1] ? green : na
setupshort = close < kcllower[1] and close < kcslower[1] ? red : na
barcolor(setuplong)
barcolor(setupshort)Interpretação visual
kclupper ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
kcsupper ─ ─ ─ ─ ─ ─ ─
─────── malong (SMA 20) ───────────────
─────── mashort (SMA 5) ──────────────
kcslower ─ ─ ─ ─ ─ ─ ─
kcllower ─ ─ ─ ─ ─ ─ ─ ─ ─ ─
[candle verde] = preço acima das duas bandas superiores
[candle vermelho] = preço abaixo das duas bandas inferioresPontos de atenção
O que está implementado
- Identificação visual de setups de entrada
- Duas médias com canais de volatilidade
O que não está implementado
- Lógica de saída (stop-loss, take-profit)
- Filtro de tendência (o sistema sinaliza em qualquer contexto)
- Gestão de risco / position sizing
Antes de usar em trading real
- Defina regras de saída — por exemplo,
strategy.exit()com stop baseado em ATR - Aplique um filtro de tendência (ex: só operar longs acima da SMA 200)
- Faça backtesting com comissão e slippage configurados
- Valide em múltiplos ativos e timeframes
Adaptação para Pine Script v6
Para modernizar o script, as principais mudanças são:
//@version=6
indicator("TSM Donchian Moving Average System", overlay=true)
a = input.int(20, title="Long Period")
b = input.int(5, title="Short Period")
ca = input.int(1, title="Band Factor")
malong = ta.sma(close, a)
mashort = ta.sma(close, b)
rng = ta.sma(ta.tr, a) * ca // "range" é palavra reservada em v6
kclupper = malong + rng
kcllower = malong - rng
kcsupper = mashort + rng
kcslower = mashort - rng
plot(malong, offset=1, title="SMA Long", color=color.blue)
plot(mashort, offset=1, title="SMA Short", color=color.orange)
plot(kclupper, offset=1, title="KC Upper", color=color.new(color.blue, 60))
plot(kcllower, offset=1, title="KC Lower", color=color.new(color.blue, 60))
isLong = close > kclupper[1] and close > kcsupper[1]
isShort = close < kcllower[1] and close < kcslower[1]
barcolor(isLong ? color.green : isShort ? color.red : na)Mudanças:
sma()→ta.sma(),tr→ta.tr,input()→input.int(),rangerenomeado pararng, cores usandocolor.green/color.red.
Contexto histórico
Publicado em 2015, o script reflete a sintaxe Pine Script v1, quando a linguagem ainda estava em seus primeiros estágios. O autor UDAY_C_Santhakumar foi um dos primeiros contribuidores da comunidade Pine Wizard no TradingView. A lógica mistura conceitos de:
- Donchian Channels (canais de máximas/mínimas) — embora o nome mencione Donchian, a implementação usa canais ATR (mais próximos de Keltner Channels)
- Dual Moving Average para capturar tanto tendência primária quanto impulso de curto prazo
Aviso Legal: Conteúdo educativo. Não constitui recomendação de investimento. Resultados passados não garantem resultados futuros.
Estratégias TradingView
Coleção de estratégias Pine Script documentadas: sistemas de tendência, trailing stops e filtros de notícias econômicas.
Vantage News — Filtro de Eventos Econômicos
Biblioteca Pine Script para filtrar eventos do calendário econômico e controlar se uma estratégia deve operar, aguardar ou ser bloqueada em dias de notícias relevantes.