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 bot

strategy.entry: abrindo posições

A função strategy.entry abre (ou inverte) uma posição. A assinatura essencial é:

strategy.entry(id, direction, qty, limit, stop, when, comment)

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.

Por que isso importa: esse reverse implícito é a fonte número 1 de confusão. Se você esperava só fechar e acabou abrindo posição no sentido oposto, o backtest fica diferente do que você imaginou.

strategy.close vs strategy.exit

As duas fecham posições, mas com propósitos diferentes:

strategy.close(id, when) → fecha a posição aberta por aquele id a mercado, quando a condição for verdadeira. Use para saídas baseadas em sinal (ex.: cruzamento contrário).
strategy.exit(id, from_entry, profit, loss, limit, stop, trail_points) → fecha com stop loss, take profit ou trailing stop. É o método correto para gestão de risco por preço.

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:

//@version=5 strategy(“Cruzamento MM — Exemplo”, overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.05) rapida = ta.sma(close, 9) lenta = ta.sma(close, 21) plot(rapida, color=color.aqua) plot(lenta, color=color.orange) compraSinal = ta.crossover(rapida, lenta) vendaSinal = ta.crossunder(rapida, lenta) // Entrada na compra if compraSinal strategy.entry(“Long”, strategy.long) // Saída por sinal (cruzamento contrário) if vendaSinal strategy.close(“Long”) // Saída por preço: stop 2% e alvo 4% strategy.exit(“TP/SL”, from_entry=”Long”, stop=close * 0.98, limit=close * 1.04)
Atenção ao realismo: sempre defina commission_value e considere slippage. Backtests sem custos parecem lucrativos e desabam ao vivo.

Erros que inflam o backtest

Repaint por usar candle não fechado → confirme sinais com 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().

// Fecha todas as posições no fim do pregão horaFim = (hour == 17 and minute >= 55) if horaFim strategy.close_all(comment=”Fim do dia”) 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.