Quase todo trader de TradingView, mais cedo ou mais tarde, quer puxar dados de um tempo gráfico maior para o gráfico atual — por exemplo, ver a tendência do diário enquanto opera no de 15 minutos. No Pine Script v6 a função que faz isso é request.security(). Ela é poderosa, mas é também a maior fonte de repaint (sinais que mudam depois que o candle fecha). Este guia mostra a sintaxe correta, um exemplo pronto e o padrão que evita o repaint de forma confiável.

Pronto para sair do gráfico e executar de forma automatizada?

Ver automação com API em Python →

O que faz request.security

A função busca o valor de uma expressão em outro símbolo ou em outro tempo gráfico (timeframe) e o traz para o gráfico onde seu script está rodando. Com ela você cria indicadores multi-timeframe (MTF): por exemplo, exibir a EMA do gráfico de 1 hora enquanto você analisa o de 5 minutos.

Regra de ouro: pedir um timeframe maior que o do gráfico é seguro e comum. Pedir um timeframe menor traz dados intrabar e abre a porta para vieses difíceis de controlar — evite, a menos que saiba exatamente o que está fazendo.

Sintaxe

request.security(symbol, timeframe, expression, gaps, lookahead) // symbol -> syminfo.tickerid (o ativo atual) ou “BINANCE:BTCUSDT” // timeframe -> “60”, “D”, “W” … (string) // expression -> o que calcular, ex.: close, ta.ema(close, 50) // gaps -> barmerge.gaps_off (padrao) ou barmerge.gaps_on // lookahead -> barmerge.lookahead_off (padrao) ou _on

O problema do repaint

O repaint acontece quando o valor do timeframe superior ainda não fechou. Enquanto o candle de 1 hora está em formação, seu valor muda a cada tick; o gráfico histórico, porém, é desenhado já com o candle fechado. Resultado: o backtest mostra um sinal que, ao vivo, só apareceu no fim da hora — uma vantagem que não existe na prática.

O padrão correto (sem repaint)

A solução consagrada é pedir o valor da barra já fechada usando o índice [1] em conjunto com lookahead_on. Combinados, eles entregam sempre o último valor confirmado do timeframe superior:

//@version=6 indicator(“EMA Multi-Timeframe sem Repaint”, overlay=true) tfSuperior = input.timeframe(“60”, “Timeframe superior”) comprimento = input.int(50, “Período da EMA”) // funcao com a expressao que sera calculada no TF superior f_ema() => ta.ema(close, comprimento) // [1] + lookahead_on = valor da barra JA fechada (sem repaint) emaHTF = request.security(syminfo.tickerid, tfSuperior, f_ema()[1], lookahead = barmerge.lookahead_on) plot(emaHTF, “EMA HTF”, color=color.yellow, linewidth=2)

Por que lookahead_on aqui é seguro? Porque combinado com [1] você está olhando para uma barra que com certeza já fechou — nunca para o futuro. Usar lookahead_on sem o [1] é exatamente o que causa o pior tipo de repaint. Os dois andam juntos.

Exemplo prático: filtro de tendência

Um uso clássico é só comprar quando o preço está acima da EMA do timeframe maior — filtrando operações contra a tendência dominante:

tendenciaAlta = close > emaHTF corFundo = tendenciaAlta ? color.new(color.green, 90) : color.new(color.red, 90) bgcolor(corFundo)

Assim você mantém a execução no tempo gráfico curto, mas usa o contexto do tempo gráfico longo para evitar entradas ruins.

Perguntas frequentes (FAQ)

Posso usar request.security para outro ativo?
Sim. Troque syminfo.tickerid por um símbolo completo, como "BINANCE:BTCUSDT", para comparar ativos diferentes no mesmo gráfico.

Qual a diferença entre lookahead_on e lookahead_off?
lookahead_off (padrão) evita olhar o futuro, mas no histórico pode atrasar o valor do TF superior. lookahead_on alinha o valor, e por isso só deve ser usado com [1], garantindo que a barra referenciada já fechou.

Como sei se meu indicador faz repaint?
Compare o comportamento no histórico com o tempo real ao longo de alguns dias, ou recarregue o gráfico e veja se sinais antigos mudaram de lugar. Se mudarem, há repaint.

Dá para usar request.security em uma strategy?
Dá, e o cuidado com repaint é ainda mais importante: um backtest com dados futuros vazados produz resultados irreais que jamais se repetem ao vivo.

Aviso: opções binárias e trading alavancado são produtos de altíssimo risco e a maioria dos investidores de varejo perde dinheiro. Este conteúdo é educacional, não constitui recomendação de investimento e não garante qualquer resultado. Indicadores e backtests são ferramentas de estudo, não previsões. Teste sempre em conta demo antes de arriscar capital real.