Se Python é a porta de entrada pra bots de exchange, o Pine Script é a porta de entrada pra automação de gráfico. É a linguagem nativa do TradingView, foi desenhada especificamente pra análise técnica, e tem uma vantagem enorme pra quem está começando: você programa, plota e faz backtest na mesma tela, sem instalar nada. Este tutorial usa a versão atual, Pine Script v5.
01O que é Pine Script (e por que começar por ele)
Pine Script é uma linguagem de script criada pelo TradingView pra dois propósitos: criar indicadores personalizados (que se plotam no gráfico) e criar estratégias (que geram sinais de compra/venda e podem ser testadas no histórico). É simples, específica e roda na nuvem do TradingView — você não precisa de servidor nem instalação.
Por que é ótimo pra aprender: o ciclo escrever→plotar→testar é instantâneo e visual. Você vê o resultado no gráfico na hora. Comparado a montar todo o pipeline de dados em Python, é muito mais rápido pra validar uma ideia de estratégia.
02Seu primeiro indicador
No TradingView, abra o Pine Editor (aba na parte inferior do gráfico). Todo script começa declarando a versão e o tipo. Vamos plotar uma média móvel simples:
//@version=5 indicator("Minha Primeira MM", overlay=true) // input: deixa o período ajustável pela interface periodo = input.int(20, "Período da Média") // calcula a média móvel simples do fechamento media = ta.sma(close, periodo) // plota no gráfico plot(media, "MM", color=color.aqua, linewidth=2)
Clique em Adicionar ao gráfico. Pronto — sua média aparece sobre os candles. O overlay=true é o que faz o indicador desenhar sobre o preço (em vez de num painel separado embaixo).
03Os conceitos que você precisa entender
A série de tempo
No Pine, variáveis como close, open, high, low não são um número só — são séries. O script roda uma vez pra cada candle do gráfico, e close sempre se refere ao fechamento do candle atual naquela passagem. Pra acessar candles anteriores, use colchetes: close[1] é o fechamento do candle anterior, close[2] o de dois atrás.
Funções da biblioteca ta
A biblioteca ta (technical analysis) tem tudo pronto: ta.sma() (média simples), ta.ema() (exponencial), ta.rsi(), ta.macd(), ta.crossover() (cruzamento pra cima), ta.crossunder() (cruzamento pra baixo). Você raramente precisa calcular indicador na mão.
04De indicador a estratégia
A diferença crucial: indicator() só desenha; strategy() simula operações e gera relatório de backtest. Vamos transformar a média num sistema de cruzamento que opera:
//@version=5 strategy("Cruzamento de Médias", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // parâmetros ajustáveis rapida = input.int(9, "MM Rápida") lenta = input.int(21, "MM Lenta") ma_rapida = ta.ema(close, rapida) ma_lenta = ta.ema(close, lenta) // detecta os cruzamentos cruzaCima = ta.crossover(ma_rapida, ma_lenta) cruzaBaixo = ta.crossunder(ma_rapida, ma_lenta) // regras de operação if cruzaCima strategy.entry("Compra", strategy.long) if cruzaBaixo strategy.close("Compra") // visualizar as médias plot(ma_rapida, "Rápida", color=color.lime) plot(ma_lenta, "Lenta", color=color.orange)
Ao adicionar ao gráfico, o TradingView abre automaticamente o Strategy Tester embaixo — com lucro líquido, número de trades, taxa de acerto, drawdown máximo e a curva de capital. Você acabou de fazer backtest sem escrever uma linha de código de teste.
Quer estratégias prontas pra adaptar?
Veja nossa coletânea de estratégias clássicas com a lógica explicada — prontas pra virar código.
05Adicionando stop loss e take profit
Estratégia sem gestão de risco é incompleta. No Pine, você define stop e alvo no momento da entrada:
// dentro do bloco de entrada if cruzaCima strategy.entry("Compra", strategy.long) // stop 2% abaixo, alvo 4% acima (risco:retorno 1:2) strategy.exit("Saida", "Compra", stop = close * 0.98, limit = close * 1.04)
Dica: o Strategy Tester recalcula tudo quando você muda esses valores. Use pra ver como diferentes níveis de stop/alvo afetam o resultado — mas cuidado com overfitting (otimizar demais pro passado).
06Alertas: a ponte pra automação
Pine Script roda no TradingView e não executa ordens sozinho na sua corretora. A ponte pra automação são os alertas. Você adiciona um alerta no código, e quando a condição dispara, o TradingView pode enviar um webhook (uma requisição HTTP) pra um servidor que executa a ordem na corretora.
// dispara alerta no cruzamento if cruzaCima alert("COMPRA BTCUSDT", alert.freq_once_per_bar_close) if cruzaBaixo alert("VENDA BTCUSDT", alert.freq_once_per_bar_close)
Duas formas de transformar o alerta em ordem real: (1) integração nativa — corretoras que suportam TradingView (como a Pepperstone) executam direto do gráfico; (2) webhook + servidor — o alerta chama seu servidor (ex: um script Python que recebe o webhook e envia a ordem via API, como mostramos no tutorial da Binance).
Atenção: automação via webhook adiciona pontos de falha (servidor cai, requisição se perde, latência). Pra estratégias sensíveis a tempo, a integração nativa da corretora é mais confiável. Teste exaustivamente em conta demo antes de automatizar com dinheiro real.
07Próximos passos pra dominar
- Estude a biblioteca
tainteira — RSI, MACD, Bollinger, ATR. Cada uma abre novas estratégias. - Aprenda arrays e
varpra manter estado entre candles (ex: rastrear um nível de suporte). - Detecte padrões de SMC — order blocks e fair value gaps podem ser codificados em Pine (veja nosso guia de Smart Money Concepts).
- Leia o manual oficial do Pine v5 — é a melhor referência e tem exemplos pra tudo.
08Perguntas frequentes
O que é Pine Script?
É a linguagem de programação do TradingView, pra criar indicadores personalizados e estratégias com backtest direto na plataforma. Roda na nuvem — não precisa instalar nada.
Pine Script é difícil?
Não. É simples e específica pra análise de gráficos. Quem já programou aprende em horas; iniciantes pegam o básico em poucos dias. O ciclo visual escrever→plotar→testar acelera muito o aprendizado.
Dá pra operar de verdade com Pine Script?
Pine gera sinais e alertas. Pra executar ordens reais automaticamente, você conecta os alertas a um webhook (que envia ordem à corretora via API) ou usa a integração nativa de corretoras que suportam TradingView.
Pine Script ou Python pra automação?
Pine é melhor pra prototipar e fazer backtest visual rápido. Python dá controle total e roda independente do TradingView, ideal pra execução robusta. Muitos usam Pine pra desenhar a estratégia e Python pra executá-la.
Preciso pagar TradingView pra usar Pine?
O plano gratuito permite criar e testar scripts com limitações (número de indicadores simultâneos, alertas). Pra automação séria com vários alertas, os planos pagos liberam mais recursos.