Временные фильтры
Временные фильтры
Рынок никогда не ведёт себя одинаково 24 часа в сутки. Азиатская сессия отличается от американской по объёму, спреду и характеру движений. Пятница перед закрытием торгов — не то же самое, что вторник в разгар европейской сессии. Временные фильтры позволяют стратегии «видеть» время и реагировать только в нужные моменты — без написания кода.
Как это устроено в StratBase
Каждый временной фильтр — бинарный сигнал. Движок на Rust проверяет временну́ю метку каждой свечи и возвращает:
- 1.0 — свеча попадает в заданное окно
- 0.0 — свеча находится вне окна
Фильтр подключается к стратегии как обычный индикатор через раздел Conditions. Все временны́е метки обрабатываются в UTC — независимо от вашего часового пояса. Это важно при настройке: переведите нужное местное время в UTC перед выбором фильтра.
Платформа включает 35 готовых временных фильтров, сгруппированных по смыслу:
| Группа | Кол-во фильтров | Примеры | |---|---|---| | Торговые сессии | 5 | TIME_ASIAN_SESSION, TIME_AMERICAN_SESSION | | Зоны ликвидности | 4 | TIME_NY_KILLZONE, TIME_LONDON_KILLZONE | | День недели | 7 | TIME_MONDAY … TIME_WEEKEND | | День месяца | 5 | TIME_MONTH_START, TIME_MID_MONTH | | Акции США | 2 | TIME_US_MARKET_HOURS, TIME_US_PREMARKET | | Форекс | 1 | TIME_FOREX_ACTIVE | | Крипто | 3 | TIME_CRYPTO_VOLATILITY, TIME_CRYPTO_LOW_VOLUME | | Сезонные | 8 | TIME_Q1 … TIME_Q4, TIME_JANUARY, TIME_SUMMER |
Пошаговая настройка
Разберём конкретный случай: вы тестируете стратегию на EUR/USD и хотите торговать исключительно во время перекрытия лондонской и нью-йоркской сессий — самого ликвидного окна форекс-рынка (13:00–16:00 UTC).
1. Откройте редактор стратегии и перейдите во вкладку Conditions (Entry).
2. Нажмите + Add condition. В поле Left начните вводить TIME_ — появится список всех временных фильтров с описаниями.
3. Выберите TIME_LONDON_NY_OVERLAP. Поле Operator установите в greater_than, поле Right — значение 0.
4. Сохраните условие. Теперь любой сигнал на вход будет проверяться: если текущая свеча вне окна 13:00–16:00 UTC — ордер не откроется.
5. Добавьте второй фильтр для исключения пятницы после 20:00 UTC (форекс-рынок закрывается): выберите TIME_FOREX_ACTIVE, оператор greater_than, значение 0.
6. Запустите бэктест. В отчёте перейдите в Trade Log — колонка Entry Time покажет, что все сделки открываются строго в заданных окнах.
Реальный пример: крипто + день недели
Предположим, вы тестируете стратегию на BTC/USDT с 4H-свечами. Гипотеза: волатильность выше в рабочие дни в часы пересечения крипто- и традиционных рынков.
Добавьте два условия одновременно:
{ left: "TIME_WEEKDAYS", operator: "greater_than", right: "0" }
{ left: "TIME_CRYPTO_VOLATILITY", operator: "greater_than", right: "0" }
TIME_CRYPTO_VOLATILITY охватывает 12:00–20:00 UTC — период, когда американские трейдеры активны, а крипто-объёмы традиционно растут. Комбинация с TIME_WEEKDAYS отсекает выходные, где поведение рынка системно отличается.
Запустите два отдельных бэктеста: один с фильтрами, другой без. Сравните Sharpe Ratio и Max Drawdown в разделе Performance Summary — разница часто оказывается существенной.
Практические советы
Не смешивайте сессии разных классов активов. TIME_US_MARKET_HOURS имеет смысл для акций из каталога StratBase, но не даёт преимущества при торговле форекс-парами — для них используйте TIME_FOREX_ACTIVE или зоны ликвидности.
Сезонные фильтры работают на дневных и недельных таймфреймах. Применять TIME_JANUARY на 5-минутных свечах технически можно, но статистической значимости будет мало — слишком мало уникальных январей в истории.
TIME_CRYPTO_LOW_VOLUME (02:00–06:00 UTC) — не всегда враг. Стратегии возврата к среднему на малых таймфреймах могут показывать лучшие результаты именно в низковолатильные периоды. Проверяйте гипотезу бэктестом, а не интуицией.
Зоны ликвидности — не сессии. TIME_NY_KILLZONE (13:00–15:00 UTC) — это первые два часа американской сессии, когда институциональные игроки выставляют крупные ордера. Именно здесь часто формируются дневные экстремумы. Используйте для пробойных стратегий.

