Что такое режим тестирования с детализацией баров

Владельцы подписок Premium могут получить более реалистичное исполнение заявок при тестировании своих стратегий на исторических данных с помощью функции детализации баров. Данный режим использует более подробную информацию о движении цены внутри бара, что позволяет исполнять заявки с большей точностью. Функция позволяет эмулятору брокера использовать нижние временные интервалы для повышения точности тестирования. 

Для бара главной серии запрашивается массив детализирующих баров из нижнего временного интервала согласно таблице:


Интервал инструмента (больше или равно)

Нижний интервал

1S

1S

30S

5S

1

10S

5

30S

10

1

15

2

30

5

60

10

240

30

1D60
3D240
WD

Таблица 1.  Нижние интервалы

Рассмотрим пример стратегии, в которой используется стоп-заявка без использования функции детализации баров:

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

Эмулятор брокера создает стоп-заявку на баре № 10381 и заполняет заявку с ценой 157.0 на следующем баре, как только условие stop = 157.0 выполняется. Внутри самого бара цена движется от открытия до минимума, затем до максимума (открывая позицию) и до закрытия. Через несколько баров (11 дней для текущего временного интервала) срабатывает условие для выхода из позиции с ценой stop = 156.0:

Когда функция детализации баров включена (параметр use_bar_magnifier = true) цена входа и выхода из позиции не меняется, однако выход из позиции происходит внутри того же бара, в котором размещен вход в позицию:

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

Если отобразить график с нижним временным интервалом (60-минутный интервал согласно Таблице 1) для данного инструмента за время, соответствующее бару 10382, то можно увидеть, что на часовом интервале происходит изменение цены, удовлетворяющее условию stop = 156.0:

На историческом участке эмулятор стратегии получает доступ к изменениям цены в нижних интервалах — аналогично тому, как если бы это происходило в реальном времени для текущего бара при тестировании стратегии.

Функцию можно включать и отключать с помощью соответствующей галочки в окне параметров стратегии:

Обратите внимание, что у этого режима есть ограничение: стратегия может запрашивать не более 100 000 баров из нижнего интервала. Для символов с большим количеством исторических данных (где количество баров на графике * количество баров нижнего интервала на бар графика > 100000), первые сделки на графике могут быть не затронуты режимом детализации. Количество баров, начиная с конца графика, на которые может повлиять данный режим, можно примерно рассчитать как:

last_bar_index - (100000 / ( 1 / количество баров нижнего интервала на бар графика)

Полученное значение является грубым приближением, так как количество баров нижнего интервала может отличаться от одного бара к другому.