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.