O que é o modo backtesting da Lupa de Barras?

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, TIntervalo de tempo intrabarra usado
1S < T < 30S1S
30S <= T < 55S
5 <= T < 3015S
30 <= T < 601
60 <= T < 2405
240 <= T < D15
D <= T < W60
W <= T < 2W120
T >= 2WD

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=5strategy("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)//@version=5strategy("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)
Java

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=5strategy("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)
Java

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.

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


Note que esta opção tem uma limitação: a estratégia não pode solicitar mais do que 100.000 barras a partir do menor tempo gráfico. Esta opção pode ser para símbolos com muitos dados históricos (onde Número de barras no gráfico * Número de barras do menor tempo gráfico por barra do gráfico > 100000), as primeiras negociações no gráfico podem não ser afetadas pela lupa de barras. O número de barras, a partir do final do gráfico, que podem ser afetadas pela lupa de barras pode ser calculado de forma aproximada:

último_bar_index - (100000 / ( 1 / Número de barras do menor tempo gráfico por barra do gráfico)

O valor resultante será uma aproximação grosseira, pois o número de barras do menor tempo gráfico pode diferir de uma barra para outra.