Os usuários de contas Premium podem agora obter preenchimentos de ordens mais realistas em suas estratégias, usando a opção Lupa de Barra. Esta ferramenta utiliza a inspeção intrabarra para obter uma granularidade mais detalhada na movimentação de preços dentro de uma barra, permitindo preenchimentos de ordens mais precisos. Quando selecionado, o modo Lupa de Barra substitui as suposições que o emulador da corretora precisa fazer no movimento de preços por apenas valores OHLC para barras históricas.
O intervalo de tempo intrabarras usado com a Lupa de Barras se ajusta dinamicamente com o intervalo de tempo do gráfico. Esta tabela lista o intervalo de tempo intrabarras utilizado para intervalos de tempo progressivamente mais altos do gráfico:
| Tempos Gráficos, T | Intervalo de tempo intrabarra usado |
| 1S < T < 30S | 1S |
| 30S <= T < 5 | 5S |
| 5 <= T < 30 | 15S |
| 30 <= T < 60 | 1 |
| 60 <= T < 240 | 5 |
| 240 <= T < D | 15 |
| D <= T < W | 60 |
| W <= T < 2W | 120 |
| T >= 2W | D |
Tabela 1. Intervalos de tempo intrabarras utilizados
Aqui está um exemplo de uma estratégia que usa uma ordem stop sem usar a opção Lupa de Barra:
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = false)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)
O emulador da corretora coloca uma ordem stop na barra #10381 e preenche uma ordem com um preço de 157,0 na barra seguinte, assim que a condição stop = 157,0 é atendida. O emulador da corretora estima que dentro da própria barra, o preço vai de “close” para “low”, depois para “high” (acionando a entrada), depois para “close”. Após algumas barras (11 dias para o intervalo de tempo atual), a condição para sair da posição com o preço de stop = 156,0 é acionada:

Quando a lupa de barras é ativada (parâmetro use_bar_magnifier = true), os preços de saída e entrada permanecem inalterados; entretanto, a saída da posição ocorre dentro da mesma barra na qual a entrada aconteceu:
//@version=5
strategy("bar_magnifier_demo", overlay = true, use_bar_magnifier = true)
if bar_index == 10381
strategy.entry("Long", strategy.long, stop = 157.0)
strategy.exit("Exit", stop = 156.0)

Se verificarmos o gráfico no menor intervalo de tempo para o mesmo símbolo (um gráfico de 60 minutos, de acordo com a tabela de intervalo de tempo intrabarras) e encontrarmos o intervalo de tempo correspondente à barra 10382, podemos ver que no intervalo de tempo em horas, após atingir 157,0 e acionar a entrada, o preço desce abaixo de 156,0, satisfazendo a condição de stop = 156,0:

Com a Lupa de Barras ligada, o emulador da corretora tem acesso a mudanças de preço a partir de intervalos de tempo mais baixos durante o backtesting, tornando seu comportamento mais similar ao que aconteceria durante o forward testing da estratégia para o mesmo período de tempo.
Aqui está um exemplo de uma estratégia que utiliza tempos mais baixos para conseguir preenchimentos mais precisos em ordens limite e stop:
//@version=5
strategy(
title = "Magnifier On",
overlay = true,
calc_on_order_fills = true,
calc_on_every_tick = true,
precision = 3,
default_qty_type = strategy.cash,
currency = currency.USD,
default_qty_value = 1000,
initial_capital = 1000,
use_bar_magnifier = true)
trailPoints = input.int(150, "Trail Points (in ticks)")
trailOffset = input.int(100, "Trail Offset (in ticks)")
stopSize = input.int(300, "Stop Offset (in ticks)")
longCondition = bar_index % 25 == 0 and not (strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) == bar_index)
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit", loss = stopSize, trail_points = trailPoints, trail_offset = trailOffset)
Com a opção de lupa de barra ativada, os resultados da estratégia estão mais próximos do que seriam em tempo real. Os lucros para nossa estratégia de teste são 50% piores quando ela está ligada, o que é desencorajador para a própria estratégia, mas mostra como poderia ser importante utilizar dados de menor intervalo de tempo para obter os dados mais precisos do backtesting:

A opção da lupa de barras pode ser alterada selecionando a entrada correspondente na janela “Configurações/Propriedades” da estratégia:

Após desligar a opção, a estratégia é recalculada com a lógica antiga, mostrando informações menos precisas sobre o comportamento da estratégia:

Para ficar sempre por dentro das últimas novidades do Pine, fique de olho nas Notas de Lançamento do Manual do Usuário. A conta do PineCoders também divulga atualizações a partir de seu canal Squawk Box Telegram, da conta do Twitter e do chat público “Pine Script™ Q&A” no TradingView.
Esperamos que você ache estas melhorias úteis. Por favor, continue nos enviando seu feedback. Nós construímos o TradingView para nossos usuários e adoramos escutar vocês.