Um indicador apenas mostra sinais no gráfico. Uma estratégia (strategy) no Pine Script v5 vai além: ela abre e fecha posições simuladas e gera um relatório de backtest com lucro, drawdown e taxa de acerto. O coração de qualquer estratégia são duas funções: strategy.entry, que abre a posição, e strategy.exit, que define stop loss, alvo e saída. Este guia mostra a sintaxe, um exemplo completo de cruzamento de médias pronto para copiar, e — com honestidade — os cuidados para não se enganar com resultados de backtest bons demais para ser verdade.
Validou a estratégia no backtest? O próximo passo é executá-la sozinha, sem emoção e sem atraso.
Ver o bot de automação →Declarando uma estratégia
Tudo começa trocando indicator() por strategy() no cabeçalho. É nele que você define capital inicial, tamanho de ordem e comissões — parâmetros que tornam o backtest realista.
commission_value e, se possível, slippage. Backtests sem custos parecem lucrativos e enganam — no mundo real, taxa e spread comem boa parte do resultado.
strategy.entry: abrindo posições
strategy.entry() envia uma ordem de entrada. Os parâmetros essenciais são o id (um nome único para a ordem) e direction, que pode ser strategy.long ou strategy.short.
Se você chama strategy.entry("Venda", strategy.short) estando comprado, o Pine inverte a posição automaticamente — fecha a compra e abre a venda na mesma ordem. Esse comportamento é ótimo para estratégias de “sempre no mercado” (always in the market).
strategy.exit: stop, alvo e trailing
strategy.exit() fecha uma posição aberta. Ele precisa apontar para o from_entry (o id da entrada que vai encerrar) e aceita stop loss e take profit em pontos (loss/profit) ou em preço (stop/limit).
strategy.close() fecha a posição a mercado (por exemplo, num sinal contrário), enquanto strategy.exit() coloca ordens de stop/alvo que ficam ativas. Use os dois com critério — misturá-los sem cuidado gera saídas duplicadas.
Exemplo completo: cruzamento de médias
Estratégia clássica: compra quando a média rápida cruza acima da lenta, vende quando cruza abaixo, com stop e alvo definidos.
Cole no editor Pine, abra a aba Testador de Estratégia (Strategy Tester) e o TradingView mostra lucro líquido, número de trades, taxa de acerto e drawdown máximo.
Cuidado com o overfitting
Aqui vai o conselho mais importante e o que quase nenhum tutorial diz com clareza: um backtest bonito não garante lucro futuro. É fácil ajustar parâmetros até o gráfico do passado ficar perfeito — isso se chama overfitting, e a estratégia costuma desmoronar com dados novos.
- Teste em vários ativos e períodos diferentes, não só no que “deu certo”.
- Separe uma parte dos dados que você nunca usou para ajustar (validação fora da amostra).
- Desconfie de taxas de acerto acima de 70% e de curvas de capital suaves demais.
- Sempre inclua comissão e slippage no
strategy().
FAQ
Qual a diferença entre strategy.exit e strategy.close?
strategy.exit registra ordens de stop loss e take profit que ficam pendentes. strategy.close fecha a mercado imediatamente, geralmente num sinal contrário.
Posso usar mais de uma saída por entrada?
Sim. Você pode escalonar saídas usando o parâmetro qty_percent em múltiplas chamadas de strategy.exit apontando para a mesma entrada.
Por que minha ordem não executa no candle do sinal?
Por padrão, ordens são processadas no fechamento do candle e executadas na abertura do próximo. Isso é mais realista. Ative calc_on_every_tick apenas para testes em tempo real.
O resultado do backtest vale para opções binárias?
Não diretamente. O Strategy Tester simula compra/venda de ativos com stop e alvo, não o formato de payout fixo das opções binárias. Use-o para validar a lógica do sinal, não para projetar retorno em binárias.
Aviso: opções binárias e trading alavancado são produtos de altíssimo risco e podem resultar na perda total do capital investido. Este conteúdo é estritamente educacional e não constitui recomendação de investimento. Resultados de backtest não garantem desempenho futuro. Teste sempre qualquer estratégia em conta demo antes de operar com dinheiro real.
