¿Qué es el modo de Ampliación de Barras?

Los titulares de cuentas Premium pueden obtener ejecuciones de órdenes más realistas en sus pruebas retrospectivas de estrategias utilizando la opción Ampliación de Barras. Esta herramienta utiliza la inspección intrabarra para obtener una mayor granularidad en el movimiento de los precios dentro de una barra, lo que permite realizar ejecuciones de órdenes más precisas. Cuando se selecciona, el modo de Ampliación de Barras sustituye las suposiciones que el emulador del broker debe hacer sobre el movimiento de los precios con sólo los valores OHLC de las barras históricas. El marco temporal intrabarra utilizado con la Ampliación de Barras se ajusta dinámicamente con el marco temporal del gráfico. Esta tabla enumera el marco temporal intrabarra utilizado para los marcos temporales del gráfico progresivamente más altos:

Marco temporal del gráfico, T

Marco temporal intrabarra utilizado

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

Tabla 1. Plazos intrabares utilizados

Este es un ejemplo de una estrategia que utiliza una orden de stop sin usar la opción de Ampliación de Barras:

//@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)

El emulador del broker coloca una orden de stop en la barra #10381 y ejecuta una orden con un precio de 157,0 en la siguiente barra en cuanto se cumpla la condición de stop = 157,0. El emulador del broker estima que, dentro de la propia barra, el precio pasa de "cerrado" a "bajo", luego a "alto" (desencadenando la entrada), y después a "cerrado". Después de algunas barras (11 días para el marco temporal actual), se activa la condición de salida de la posición con el precio de parada = 156,0:

Cuando la Ampliación de Barras está activada (parámetro use_bar_magnifier = true), los precios de salida y entrada no se modifican; sin embargo, la salida de la posición se produce dentro de la misma barra en la que se produjo la entrada:

//@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)

Si comprobamos el gráfico del marco temporal inferior para el mismo símbolo (un gráfico de 60 minutos, según la tabla del marco temporal intrabarra) y encontramos el rango de tiempo correspondiente a la barra 10382, podemos ver que en el marco temporal horario, después de alcanzar 157,0 y activar la entrada, el precio baja por debajo de 156,0, satisfaciendo la condición de stop = 156,0:

Con la Ampliación de Barras activada, el emulador del broker tiene acceso a los cambios de precios de los marcos temporales más bajos durante el backtesting, lo que hace que su comportamiento sea más similar a lo que ocurriría durante la prueba a plazo de la estrategia para el mismo periodo de tiempo.

La opción de Ampliación de Barras se puede conmutar activando la entrada correspondiente en la ventana "Ajustes/Propiedades" de la estrategia:

Tenga en cuenta que esta opción tiene una limitación: la estrategia no puede solicitar más de 100.000 barras del marco temporal inferior. Esto puede ser para símbolos con muchos datos históricos (donde el número de barras en el gráfico * número de barras del marco temporal inferior por barra del gráfico > 100000), las primeras operaciones en el gráfico podrían no verse afectadas por la lupa de barras. El número de barras, empezando por el final del gráfico, que pueden verse afectadas por la Lupa de Barras puede calcularse aproximadamente como

last_bar_index - (100000 / ( 1 / Num of Lower Timeframe Bars per Chart Bar)

El valor resultante será una aproximación, ya que el número de barras del marco temporal inferior puede variar de una barra a otra.