Tempo de leitura: … min

Backtest de estratégias Pine Script no TradingView

Escreva uma estratégia em Pine Script com o Claude ou ChatGPT, insira-a em um gráfico do TradingView e execute o Strategy Tester integrado antes de arriscar capital real. O Strategy Tester é o filtro mais rápido e barato que você tem.

Este guia aborda o fluxo de trabalho focado em IA para escrever a estratégia, executar o backtest, analisar de forma realista as abas Performance Summary e List of Trades, e colocar a estratégia validada em produção via webhook do TradingView para um receptor de broker hospedado na TradingHost.

Seção 01 · Como tudo se conecta

Escrever, testar, enviar

Três etapas. Você escreve uma estratégia. O TradingView faz o backtest. Um webhook envia a estratégia validada para execução em conta real. O Strategy Tester fica entre a criação e a execução como um filtro de baixo custo; a única coisa mais cara do que um backtest ruim é não fazer backtest nenhum.

  • O que você escreve

    Estratégia em Pine Script

    Um script strategy() que declara entradas, saídas e dimensionamento de lote. O Strategy Tester executa apenas scripts strategy(); scripts indicator() não podem ser testados.

  • Onde você valida

    Strategy Tester

    O painel integrado do TradingView que executa a estratégia em todo o histórico disponível do gráfico e exibe as abas Performance Summary, List of Trades e Properties.

  • Como é enviado

    Webhook para conta real

    Assim que o backtest for validado, a mesma estratégia envia alertas para uma URL de webhook hospedada na TradingHost, que chama a API do broker e executa as ordens reais.

Da ideia à estratégia testada

  1. Descreva a estratégia em linguagem simples para o Claude ou ChatGPT; peça um script de estratégia em Pine Script v6.
  2. Cole o script no Pine Editor do TradingView, adicione-o ao gráfico e abra o painel do Strategy Tester.
  3. Analise a aba Performance Summary; verifique a aba List of Trades para entender o padrão e a frequência das execuções; confirme se as premissas de comissão e slippage na aba Properties condizem com a realidade.
  4. Ajuste o script com a IA até que a estratégia sobreviva a um backtest honesto em dados fora da amostra (out-of-sample).
  5. Crie um alerta no TradingView para a estratégia com uma URL de webhook apontando para o ambiente de execução da TradingHost; coloque o script validado em produção.

Seção 02 · Resumo rápido

Resumo rápido

Fluxo de trabalho
Escreva uma estratégia em Pine Script com IA, valide no Strategy Tester do TradingView e coloque em produção via webhook
Linguagem
Pine Script v6 (versão atual da linguagem do TradingView)
Declaração do script
Deve ser strategy(), não indicator(); apenas scripts de estratégia rodam no Strategy Tester
Strategy Tester
Integrado a todas as contas do TradingView; abre como um painel abaixo do gráfico
Abas principais
Performance Summary, List of Trades, Properties
Métricas de desempenho
Lucro líquido, lucro bruto, prejuízo bruto, profit factor, drawdown máximo, porcentagem de acerto, média por operação
Limite de barras
O intervalo do backtest é limitado pelas barras carregadas no gráfico; o Deep Backtesting em planos pagos vai além do intervalo visível
Ferramentas de IA
Claude, ChatGPT, Gemini (qualquer modelo treinado na referência do Pine Script v6)
Ambiente de edição
TradingView Pine Editor; edições mais profundas no Cursor com Pine v6 no prompt
Caminho para operação real
Alerta do TradingView com URL de webhook apontando para um runtime da TradingHost que chama a API da corretora
Papel da TradingHost
Runtime receptor de webhooks quando a estratégia entra em operação real (não utilizado durante o backtest em si)
Afiliação
A TradingHost é independente e não é afiliada ao TradingView

Seção 03 · Escreva a estratégia com IA

Descreva a estratégia e receba o Pine Script pronto

Abra o Claude ou o ChatGPT e descreva o que você quer que a estratégia faça em linguagem simples. Seja explícito sobre três coisas: o tempo gráfico e o ativo, as regras de entrada e saída, e o dimensionamento da posição. Peça um script de estratégia em Pine Script v6 (não um indicador) para que o resultado rode no Strategy Tester e exponha os placeholders de strategy.* mais tarde, quando você configurar os alertas.

Leia cada linha. A função strategy() do Pine Script aceita parâmetros que alteram silenciosamente o comportamento do backtest (initial_capital, default_qty_type, commission_type, process_orders_on_close) e a IA nem sempre escolhe os valores que você usaria. Peça para o modelo explicar cada parâmetro definido e ajuste-os para corresponder à forma como você realmente operaria.

Três sutilezas do Pine Script que valem a sua atenção. Primeiro, repintura (repainting): por padrão, o Pine plota valores intra-barra que recalculam a cada tick, de modo que uma estratégia que "passou" em um teste real pode ter se baseado em valores que não existiam de fato no fechamento da barra. Indicadores que repintam mostram um sinal no backtest e outro diferente quando a barra fecha em tempo real; em tempos gráficos intradiários, essa divergência é suficiente para transformar um backtest vencedor em uma estratégia real perdedora. Use proteções com barstate.isconfirmed na lógica da estratégia, configure o alerta para disparar "Uma vez por fechamento de barra" ao colocar a estratégia em produção e prefira indicadores que explicitamente não repintem. Segundo, o viés de antecipação (lookahead bias) é fácil de introduzir acidentalmente se um script fizer referência a valores futuros; peça ao modelo para confirmar que nenhuma referência histórica utiliza dados que vazem o futuro. Terceiro, premissas de execução de ordens: por padrão, o Pine executa ordens a mercado na abertura da próxima barra, não no fechamento da barra de sinal. Se o seu backtest entra na mesma barra em que o sinal dispara, defina process_orders_on_close = true e aceite que essa é uma premissa mais restrita do que a execução real entregará.

Se você prefere uma IDE em vez do TradingView Pine Editor, escreva o mesmo script no Cursor com o Claude ou GPT e cole o resultado no TradingView quando estiver pronto. A página do fluxo de trabalho do Cursor aborda a parte da IDE.

Seção 04 · Execute o Strategy Tester

Adicione a estratégia a um gráfico e abra o Strategy Tester

Abra um gráfico do TradingView no ativo e tempo gráfico que sua estratégia visa. Cole a estratégia no Pine Editor na parte inferior do gráfico e clique em Adicionar ao gráfico. Se o script declarar strategy(), o TradingView abrirá automaticamente o painel do Strategy Tester abaixo do Pine Editor.

O Strategy Tester executa a estratégia com base nas barras atualmente carregadas no gráfico. Role para a esquerda para carregar mais histórico antes de executar novamente se quiser uma janela de backtest mais longa. Nos planos pagos do TradingView, a opção Deep Backtesting estende o testador para além do intervalo de barras visível no gráfico; a versão gratuita limita você ao que está carregado no gráfico.

Ajuste as configurações da estratégia (ícone de engrenagem ao lado do nome do script) antes de ler os resultados. Capital inicial, tamanho da ordem, pirâmide (pyramiding), comissão e slippage são os fatores que alteram significativamente o relatório; os valores padrão raramente são o que você deseja. Alinhe a comissão e o slippage com o que a corretora na qual você pretende operar realmente cobra.

Seção 05 · Leia o relatório

As três abas que importam

O Strategy Tester exibe um Performance Summary, uma List of Trades e uma aba Properties. Leia as três. O Performance Summary informa se a estratégia gerou lucro na simulação. A List of Trades mostra se a estratégia disparou as operações que você realmente queria. A aba Properties indica se as premissas por trás dessas operações são realistas.

Uma estratégia que apresenta um excelente lucro líquido no Performance Summary, mas só dispara quatro operações por ano, sob comissões e slippage irrealistas, não é uma estratégia. É uma anomalia gráfica. As três abas juntas são a sua salvaguarda.

As métricas que valem a pena analisar

Lucro líquido
Lucro e prejuízo total de todas as operações simuladas, na moeda da conta e como uma porcentagem do capital inicial.
Fator de lucro (Profit factor)
Lucro bruto dividido pelo prejuízo bruto. Acima de 1 significa que a estratégia gerou retorno na simulação; estratégias reais realistas geralmente ficam entre 1,2 e 2.
Drawdown máximo
A maior perda patrimonial do pico ao vale durante o teste. A métrica de risco mais importante de todas.
Porcentagem de acerto
Fração de operações que fecharam com lucro. Taxas de acerto elevadas frequentemente ocultam riscos de cauda; analise isso em conjunto com a média de ganho versus a média de perda.
Resultado médio por operação
Resultado médio por operação. Se este valor for menor do que a sua estimativa real de comissão mais slippage, a estratégia não será lucrativa na prática.
Sharpe / Sortino
Medidas de retorno ajustado ao risco. Exibidas na aba Performance Summary quando ativadas.
List of Trades
Cada operação simulada com entrada, saída, tamanho, resultado e run-up/drawdown. Leia isso para confirmar se a estratégia dispara da forma esperada.
Properties
As configurações utilizadas para a execução: capital inicial, tamanho da ordem, comissão, slippage, pirâmide (pyramiding). Confirma o que você testou antes de tomar qualquer decisão com base no resultado.

Um risco específico do Pine a ser destacado: o Strategy Tester é generoso por padrão nas premissas intra-barra. Se a sua estratégia entra e sai dentro da mesma barra no backtest, o alerta real precisa usar a frequência de uma vez por fechamento de barra, caso contrário as mesmas oscilações intra-barra não se reproduzirão. Alinhe a frequência do alerta com as premissas do backtest antes de operar em conta real.

Seção 06 · Migre para a operação real

Quando o backtest se provar consistente, coloque a estratégia em produção

Um backtest limpo é uma autorização para prosseguir, não uma garantia de lucro. Quando a estratégia sobrevive a um teste justo em dados fora da amostra (out-of-sample) com comissão e slippage realistas, o próximo passo é criar um alerta no TradingView com uma URL de webhook.

O Pine Script que você testou já é o script que você coloca em produção; você não precisa reescrevê-lo para operar em conta real. Você cria um alerta para a estratégia, cola a URL de webhook de um runtime da TradingHost no alerta e escreve a mensagem do alerta em formato JSON usando os placeholders de strategy.* para codificar a direção (compra/venda) e o tamanho. O container da TradingHost processa o payload e chama a API REST da corretora.

Sem MetaTrader. Sem VPS Windows. Sem licença do PineConnector. O mesmo Pine Script que rodou seu backtest dispara suas ordens reais.

Seção 08 · FAQ

Perguntas frequentes

O Strategy Tester em si está disponível em qualquer conta do TradingView. O Deep Backtesting e intervalos históricos de barras mais longos são liberados a partir do plano Plus. O envio de alertas via URL de webhook (o método que você eventualmente precisará para enviar alertas em tempo real para uma corretora) exige os planos Plus, Premium ou Ultimate; o plano Essential e a versão gratuita não incluem alertas de webhook.

Apenas scripts em Pine Script que declaram strategy() funcionam no Strategy Tester e expõem as variáveis strategy.* que você precisará mais tarde para os alertas em tempo real. Scripts com indicator() não podem ser testados.

Pine Script v6. O TradingView já declarou que as futuras atualizações da linguagem serão aplicadas exclusivamente à v6, então escrever qualquer código novo na v5 é iniciar uma migração em câmera lenta.

Role o gráfico para trás para carregar mais histórico antes de rodar o testador novamente, ou use o Deep Backtesting se o seu plano do TradingView oferecer suporte. O Deep Backtesting executa o testador com dados que vão além do intervalo de barras visível no gráfico.

Depende do tempo gráfico. Estratégias diárias e de swing trade (barras de 4 horas ou mais) costumam ficar entre 1,3 e 2,5 em backtests honestos, com comissão e slippage realistas. Estratégias intradiárias (menos de 1 hora) tendem a ficar entre 1,5 e 3 porque realizam mais operações. Qualquer valor acima de 3 em dados intradiários deve ser visto com desconfiança até que você consiga reproduzi-lo em dados fora da amostra (out-of-sample); números acima de 4 quase sempre indicam look-ahead bias, repainting ou execuções irreais.

Sim, nas propriedades da estratégia. Configure commission_type e o slippage para corresponderem ao que a corretora que você pretende usar realmente cobra. Os valores padrão subestimam os custos reais e inflam os resultados do backtest.

Sim. O Backtrader e o VectorBT são frameworks de backtest baseados em Python que lidam com análises estatísticas, dimensionamento de posição e portfólios mais sofisticados do que o Pine. A desvantagem é abrir mão do contexto visual dos gráficos do TradingView.

Analise com atenção cada referência a barras passadas ou futuras. O operador de referência histórica do Pine [n] olha para trás, mas usar acidentalmente um valor que só existe no fechamento da barra (ou um cálculo sujeito a repainting) infla artificialmente o backtest. Combine o backtest com um período de simulação (paper trading) antes de operar com dinheiro real.

Crie um alerta do TradingView na estratégia, aponte a URL do webhook para um runtime do TradingHost e escreva a mensagem em formato JSON usando as variáveis strategy.* para definir a direção (side) e o tamanho (size) da ordem. Consulte a página de fluxo de trabalho de webhooks para ver o ciclo de execução em tempo real.

Confie no fluxo de trabalho, não no resultado gerado. A IA acelera a criação do código; o backtest é a sua proteção; o alerta em tempo real é o seu mecanismo de envio. Leia cada linha, execute um backtest rigoroso e faça simulações (paper trading) antes de aumentar o tamanho da sua posição.