Что такое режим тестирования с детализацией баров
Владельцы подписок Premium могут получить более реалистичное исполнение заявок при тестировании своих стратегий на исторических данных с помощью функции детализации баров. Данный режим использует более подробную информацию о движении цены внутри бара, что позволяет исполнять заявки с большей точностью. Функция позволяет эмулятору брокера использовать нижние временные интервалы для повышения точности тестирования.
Для бара главной серии запрашивается массив детализирующих баров из нижнего временного интервала согласно таблице:
Таблица 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 / количество баров нижнего интервала на бар графика)
Полученное значение является грубым приближением, так как количество баров нижнего интервала может отличаться от одного бара к другому.