Друзья, пришло несколько жалоб на некорректную работу сигналов. Мы начали разбираться в проблеме и выявили следующее: используя некоторые встроенные в TradingView-библиотеках функции, можно столкнуться с такой проблемой как Repainting (перерисовка) - поведение скрипта, заставляющее исторические вычисления вести себя по-разному по сравнению с расчетами в реальном времени. Короткий пример для понимания: код отправляет сигнал, когда текущая цена бара будет выше цены открытия. Ничего не гарантирует, что цена не будет то ниже, то выше несколько раз за 45м бар. А значит можно получить уведомление, зайти, и увидеть, что сигнал пропал, ведь цена уже опустилась.
Поведение при перерисовке широко распространено и может быть вызвано многими факторами. По оценке самого TradingView, более 95% существующих индикаторов грешат этим. Широко используемые индикаторы, такие как MACD, RSI, Ишимоку, большинство скриптов и стратегий, скрипты использующие calc_on_evey_tick = true, использующие перерисовку request.security() и другие - показывают одно значение на исторических барах, но при работе в реальном времени они будут выдавать другие результаты. Это поведение нельзя протестировать на исторических барах, потому что они не хранят промежуточные значения, а только открытие, закрытие, макс и мин цены.
Отдельно хочется упомянуть индикатор VuManChu. Который, к слову, бесплатный клон Market Cipher. Там используются почти все функции, которые приводят к перерисовке. Такие как security (Запросить другой инструмент/интервал), barmerge.lookahead_on (Стратегия объединения для запрашиваемой позиции данных), на счет последнего TradingView отзывается как «недопустимый» в стратегиях.
Мы обновили скрипты и изменили все «утечки» перерисовки. Это влияет на точность сделок, однако лучше так, чем вводить в заблуждение пользователей.
Для пользователей скрипта:
Вы можете решить использовать другие индикаторы с перерисовкой, если понимаете как они ведут себя, и это поведение соответствует требованиям вашей торговой методологии. Не будьте одним из тех новичков в трейдинге, “перерисовка” сама по себе не дискредитирует скрипт. Это только показывает ваше непонимание как рассчитываются значения и бектесты.
Теперь вопрос “перерисовывается ли Reverie?” ничего не значит. Следовательно, на него нельзя дать содержательный ответ. Почему? Потому что это должно быть квалифицировано. Вместо этого можно было бы спросить:
- Вы ждете, пока закроется бар реального времени, прежде чем отображать ваши маркеры входа / выхода?
- Да. В последнем обновлении это было исправлено.
- Ждут ли оповещения окончания бара реального времени перед запуском?
- Да, хотя сам TradingView не всегда обновляет график вместе с оповещением.
- Будет ли ваш индикатор отображаться в реальном времени так же, как на исторических барах?
- Да, В последнем обновлении это было исправлено.
- Извлекаете ли вы информацию с помощью вызовов request.security()?
- Нет, это так же было исправлено и информацию из нестандартных таймфреймов или графиков мы не используем.
