No Pine Script v5 do TradingView, toda estratégia que você testa no backtest depende de duas funções centrais: strategy.entry para abrir posições e strategy.close (ou strategy.exit) para fechá-las. Entender a diferença entre elas — e como o reverse automático funciona — é o que separa um backtest confiável de números que enganam. Este guia mostra a sintaxe real, exemplos prontos e os erros que inflam falsamente seus resultados.
Validou a estratégia no TradingView e quer levá-la para execução automática? Veja como conectar a um bot:
▶ Ver automação de sinais com botstrategy.entry: abrindo posições
A função strategy.entry abre (ou inverte) uma posição. A assinatura essencial é:
Os argumentos mais usados são id (nome da ordem, string), direction (strategy.long ou strategy.short) e when (condição booleana). O detalhe crucial: se você já está comprado e chama um strategy.entry com strategy.short, o TradingView inverte a posição automaticamente — fecha a compra e abre a venda na mesma ordem.
strategy.close vs strategy.exit
As duas fecham posições, mas com propósitos diferentes:
id a mercado, quando a condição for verdadeira. Use para saídas baseadas em sinal (ex.: cruzamento contrário).
Regra prática: strategy.close para sair por sinal; strategy.exit para sair por preço (alvo/stop).
Exemplo completo: cruzamento de médias
Estratégia simples e honesta — entra na compra quando a média rápida cruza acima da lenta, sai no cruzamento contrário, com stop e alvo:
commission_value e considere slippage. Backtests sem custos parecem lucrativos e desabam ao vivo.
Erros que inflam o backtest
barstate.isconfirmed ou avalie no fechamento. Lookahead em request.security → nunca use
barmerge.lookahead_on em estratégia. Ignorar comissão e slippage → resultados irreais.
Confundir close com exit → seu stop/alvo simplesmente não dispara.
strategy.close_all e cancelamento
Para fechar tudo de uma vez (ex.: filtro de horário ou notícia), use strategy.close_all(). Para remover ordens pendentes que ainda não foram executadas, use strategy.cancel(id) ou strategy.cancel_all().
FAQ
strategy.entry abre nova ordem se já tenho posição? Se for a mesma direção e mesmo id, normalmente não acumula (depende de pyramiding). Em direção oposta, ele inverte a posição.
Posso usar strategy.close e strategy.exit juntos? Sim — é comum: exit cuida de stop/alvo e close sai por sinal. O que ocorrer primeiro fecha a posição.
Por que meu stop não funciona? Provavelmente você usou strategy.close esperando stop. Stop/alvo só existem em strategy.exit.
Backtest lucrativo garante lucro real? Não. Sobreajuste (overfitting), custos e execução real mudam tudo. Valide em forward test antes de qualquer dinheiro.
Aviso: trading e opções binárias são atividades de alto risco e a maioria dos traders de varejo perde dinheiro. Este conteúdo é educacional, não constitui recomendação de investimento, e resultados de backtest não garantem desempenho futuro. Teste sempre em conta demo antes de operar com capital real.
