Сигнал внутри свечи и на закрытии: почему история отличается от реального времени
Днём на графике появилось пересечение, а вечером после обновления страницы его уже нет. Это не обязательно ошибка доставки сигнала: условие могло выполниться на незавершённой свече и перестать выполняться к её закрытию. Для алгоритмической стратегии важно заранее определить, какое из этих состояний считается основанием для действия.
Что известно в момент сигнала
Рассмотрим условную пятиминутную свечу. Цена открылась на 100, поднялась до 104, опустилась до 99 и закрылась на 101. Условие «цена выше 103» некоторое время было истинным, а условие «закрытие выше 103» по итогам свечи оказалось ложным. Алгоритм, реагирующий внутри свечи, и алгоритм по закрытию решают разные задачи.
Четыре значения OHLC также не раскрывают весь порядок движения внутри интервала. Если известны максимум 104 и минимум 99, из них самих нельзя установить, какое событие произошло раньше. Для правил с несколькими уровнями это влияет на последовательность входа, стопа и выхода.
Где возникает перерисовка
В документации TradingView перерисовка описывается как различие поведения расчётов или отображения на исторических и текущих барах. Значения незавершённой свечи могут меняться; после перезапуска скрипта история уже содержит итоговые значения. Особенно внимательно нужно проверять данные старшего таймфрейма и внутрисвечные расчёты. Подробнее — в официальном разборе repainting.
Само обновление индикатора на текущей свече не делает его бесполезным. Проблема возникает, когда стратегия тестируется по одной модели наблюдения, а запускается по другой, и это различие не учитывается при оценке результата.
Как проверить свою модель
- Запишите, когда проверяются условия: на закрытии, при обновлении данных или по другому правилу.
- Уточните, какая свеча старшего таймфрейма используется: завершённая или ещё формирующаяся.
- Сохраните время появления сигнала и известные тогда значения индикаторов.
- Сравните наблюдение с графиком после закрытия свечи и после перезагрузки.
Если значения изменились, не исправляйте историю вручную. Опишите причину: пересчёт незавершённого бара, изменение входных данных или ошибка реализации. Для проверки удобно выбрать несколько конкретных сигналов, а не сравнивать только общую прибыль за месяц.
Как учитывать это в InvestConnector
Перед бэктестом проверьте выбранный режим условий и параметры исполнения стратегии. Не считайте исторические метки доказательством того, что тот же сигнал был доступен в ту же секунду в реальном времени. Источник котировок и частота обновления также влияют на наблюдение.
Дополните проверку журналом сигналов и заявок. Если стратегия использует разные интервалы, прочитайте материал про выбор таймфрейма. Согласованная модель времени важнее красивой последовательности стрелок на истории.