time() со спецификацией сессии и таймзоны, а визуализация фона выполняется с помощью функции bgcolor(). Это позволяет гибко подсвечивать Азиатскую, Лондонскую и Нью-Йоркскую сессии на внутридневных таймфреймах.Исходный код
В алгоритмической торговле время играет ключевую роль. Понимание того, какая сессия сейчас активна, помогает фильтровать ложные пробои и учитывать волатильность. Например, при расчете Session-Anchored CVD в Pine Script v5: Полное руководство крайне важно точно определять границы сессий. В этой статье мы разберем, как написать профессиональный индикатор торговых сессий (Азия, Лондон, Нью-Йорк) с возможностью настройки часового пояса.
Ниже представлен готовый к использованию код индикатора для TradingView на языке Pine Script v5. Он поддерживает выбор таймзоны, кастомизацию цветов и времени работы каждой сессии.
//@version=5
indicator("Trading Sessions Visualizer [Finfluct]", overlay=true)
// Настройки Азиатской сессии
use_asia = input.bool(true, "Отображать Азию", group="Азиатская сессия")
asia_sess = input.session("0000-0900", "Время Азии", group="Азиатская сессия")
asia_color = input.color(color.new(#00e676, 90), "Цвет Азии", group="Азиатская сессия")
// Настройки Лондонской сессии
use_london = input.bool(true, "Отображать Лондон", group="Лондонская сессия")
london_sess = input.session("0800-1700", "Время Лондона", group="Лондонская сессия")
london_color = input.color(color.new(#29b6f6, 90), "Цвет Лондона", group="Лондонская сессия")
// Настройки Нью-Йоркской сессии
use_ny = input.bool(true, "Отображать Нью-Йорк", group="Нью-Йоркская сессия")
ny_sess = input.session("1300-2200", "Время Нью-Йорка", group="Нью-Йоркская сессия")
ny_color = input.color(color.new(#ff5252, 90), "Цвет Нью-Йорка", group="Нью-Йоркская сессия")
// Выбор часового пояса
tz = input.string("UTC", "Часовой пояс", options=["UTC", "America/New_York", "Europe/London", "Asia/Tokyo", "Europe/Moscow"], group="Общие настройки")
// Функция для проверки нахождения бара внутри сессии
in_session(sess_spec, timezone) =>
// Добавляем ":23456" для проверки только рабочих дней (пн-пт)
not na(time(timeframe.period, sess_spec + ":23456", timezone))
// Проверка активности сессий на внутридневных таймфреймах
is_intraday = timeframe.isintraday
is_asia = is_intraday and use_asia and in_session(asia_sess, tz)
is_london = is_intraday and use_london and in_session(london_sess, tz)
is_ny = is_intraday and use_ny and in_session(ny_sess, tz)
// Отрисовка фона с помощью bgcolor
bgcolor(is_asia ? asia_color : na, title="Фон Азиатской сессии")
bgcolor(is_london ? london_color : na, title="Фон Лондонской сессии")
bgcolor(is_ny ? ny_color : na, title="Фон Нью-Йоркской сессии") Разбор параметров
Давайте подробно разберем ключевые функции и параметры, использованные в коде:
input.session(): Позволяет пользователю удобно настраивать временной интервал сессии через стандартный интерфейс настроек TradingView. Передает строку формата «ЧЧММ-ЧЧММ».time(timeframe.period, sess_spec, timezone): Основная функция для работы со временем. Если текущий бар попадает в указанный интервалsess_specпри заданной таймзонеtimezone, функция возвращает UNIX-время начала бара. Если не попадает — возвращаетna.:23456: Маска дней недели, где 2 — понедельник, а 6 — пятница. Мы конкатенируем её к строке сессии, чтобы исключить отрисовку зон на выходных днях (криптовалютный рынок торгуется 24/7, но традиционные сессии к нему неприменимы в выходные).timeframe.isintraday: Логический флаг, который гарантирует, что сессии будут отрисовываться только на внутридневных графиках (минуты, часы), предотвращая визуальный хаос на дневных или недельных таймфреймах.bgcolor(): Функция закрашивает задний фон графика. Если условие истинно, применяется выбранный цвет с прозрачностью (например,color.new(#ff5252, 90), где 90 — уровень прозрачности), иначе возвращаетсяna, и фон остается стандартным.
Как запустить
Чтобы запустить этот индикатор на платформе TradingView, выполните следующие шаги:
1. Откройте любой внутридневной график (например, EURUSD, таймфрейм 5m или 15m) на сайте TradingView.
2. В нижней части экрана найдите и откройте вкладку Pine Editor.
3. Полностью удалите стандартный шаблон кода и вставьте скопированный выше исходный код.
4. Нажмите кнопку Save (Сохранить), укажите имя скрипта, а затем нажмите Add to chart (Добавить на график).
5. Теперь вы увидите цветные зоны сессий. Вы можете зайти в настройки индикатора (иконка шестеренки), чтобы изменить часовой пояс, цвета или точное время работы сессий под вашу торговую стратегию.
Если вы хотите создавать более сложные алгоритмы, например, динамически менять логику в зависимости от внешних факторов, рекомендуем ознакомиться с нашей статьей про Динамический bgcolor по фазам луны в Pine Script v5. А для построения полноценных торговых систем вам обязательно пригодится руководство по настройке Мульти-лимитный Take Profit в Pine Script v5: Пошаговое руководство.




