O que é o modo backtesting da Lupa de Barras

Você pode obter preenchimentos de ordens mais realistas no backtesting da sua estratégia usando a opção "Lupa de Barra". Essa ferramenta utiliza inspeção intrabarra para fornecer uma visão mais detalhada do movimento do preço dentro de uma barra, resultando em preenchimentos de ordem mais precisos.

Quando ativado, o modo Lupa de Barra faz com que o emulador de corretora use apenas os valores OHLC das barras históricas, em vez de assumir como o preço se movimentou.

O intervalo intrabarra usado com a Lupa de Barra se ajusta dinamicamente ao intervalo do gráfico. A tabela a seguir lista os intervalos intrabarra usados para intervalos de gráfico progressivamente maiores.

Tempos gráficos, maiores 

que ou iguais a (T >=)

Tempo gráfico intrabarra usado

1S

1S

30S

5S

1

10S

5

30S

10

1

15

2

30

5

60

10

240

30

1D60
3D240
WD

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 #10,381 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: A estratégia não pode solicitar mais de 200.000 barras do tempo gráfico inferior.

Para símbolos com muitos dados históricos (quando Nº de Barras no Gráfico × Nº de Barras de Tempo Gráfico Inferior por Barra do Gráfico > 200.000), as primeiras negociações no gráfico podem não ser afetadas pela Lupa de Barra.

O número de barras, começando a partir do final do gráfico, que pode ser afetado pela Lupa de Barra pode ser aproximadamente calculado usando a seguinte fórmula:

last_bar_index - (200000 / Nº de Barras de Tempo Gráfico Inferior por Barra do Gráfico)

O valor resultante será uma aproximação, porque o número de barras de tempo gráfico inferior pode variar de uma barra para outra.

Leia também: