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:
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)
JavaO 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)
JavaSe 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.