Загружаем список сделок...

Склейка фьючерсов: что это такое, методы построения и устранение гэпов

Полный гид по непрерывным фьючерсам (Continuous Contracts): разница между склейкой с гэпами и сглаживанием, влияние контанго/бэквордации на бэктесты и настройка в терминалах.

Вы не выставили оценку
1 просмотров0 комментариев
Культ Профита GEG1CH
Опубликовано:30.08.2026Обновлено:30.08.2026

Склейка фьючерсов (Continuous Futures): как работает непрерывный контракт, методы сглаживания гэпов и настройка для тестов

Оглавление

  • Что такое склеенный фьючерс и зачем он нужен
  • Почему деривативы экспирируются и как возникает непрерывный ряд
  • Природа экспирационного гэпа: базис, контанго и бэквордация
  • Триггеры ролловера: алгоритмы смены контрактов
  • Методы построения склеенных графиков
  • Настройка непрерывных графиков в торговых терминалах
  • Расчет рисков и перенос позиции (Rollover)
  • Нестандартные рыночные сценарии (Edge Cases)
  • Сшивка данных в Backtrader (Python)
  • Типичные ошибки трейдеров при работе со склейками
  • План действий: выбор режима склейки под задачу
  • Чек-лист проверки перед отправкой биржевой заявки
  • Ответы на частые вопросы (FAQ)

Что такое склеенный фьючерс и зачем он нужен

Склеенный фьючерс (Continuous Futures Contract) — это непрерывный синтетический график, собранный из цепочки последовательно сменяющих друг друга срочных контрактов, подобно тому как короткие отрезки кинопленки сшиваются в единый полнометражный фильм. Он объединяет разрозненные фазы обращения деривативов, решая проблему ограниченного срока жизни инструментов и фрагментации ликвидности для долгосрочного технического анализа и бэктестинга стратегий.

Главное правило трейдера: Глобальный контекст рынка, уровни, скользящие средние и осцилляторы рассчитываются по склеенному графику, а торговые заявки отправляются исключительно в биржевой стакан текущего рабочего контракта с конкретной датой экспирации. Торговать тикером склейки напрямую невозможно.

Характеристика Биржевой контракт (Specific Month) Склейка без коррекции (Unadjusted / !) Сглаженная склейка (Back-Adjusted / #)
Срок жизни на экране 1–3 месяца активной фазы Полная история инструмента за все годы Полная история инструмента за все годы
Точность цен Фактические котировки реальных сделок Реальные исторические цены каждого периода Смещены на величину прошлых экспирационных ступеней
Стыковые гэпы Отсутствуют внутри серии Присутствуют искусственные разрывы Устранены математической корректировкой
Торговые операции Доступны (покупка и продажа) Заблокированы (только режим аналитики) Заблокированы (только режим аналитики)
Основная задача Исполнение ордеров, расчет ГО и стоп-приказов Поиск исторических уровней поддержки и сопротивления Расчет индикаторов (RSI, MA), алгоритмический бэктестинг

Почему деривативы экспирируются и как возникает непрерывный ряд

В отличие от бессрочных акций, каждый биржевой фьючерс имеет фиксированную дату расчетов — экспирацию, работающую по принципу срока годности билета на поезд или проездного документа. Квартальные инструменты (например, фьючерс на курс валютной пары «доллар-рубль» Si или индекс Мосбиржи MIX) обращаются циклами по 3 месяца, а товарные контракты на нефть Brent или природный газ NG рассчитываются ежемесячно.

Жизненный цикл любого фьючерса подчиняется выраженной кривой распределения ликвидности:

  • Эмиссия: Биржа запускает инструмент за 6–12 месяцев до расчетов, однако биржевой стакан остается пустым, а спред — широким.
  • Фронтальная активность: Основной биржевой оборот концентрируется в ближайшем контракте (Front Month).
  • Миграция ликвидности: За 3–5 дней до даты расчетов торговый объем лавинообразно перетекает в следующий инструмент цепочки (Next Active), после чего старый контракт выводится из обращения.

Такая дискретность создает техническую проблему: трейдер не может применить 200-периодную скользящую среднюю на часовом таймфрейме или провести многолетний бэктест алгоритма внутри единого тикера — массив котировок обрывается каждый квартал. Склейка решает эту задачу, сшивая периоды наивысшей активности инструментов в единый поток данных.

skleykafutures1.png

Природа экспирационного гэпа: базис, контанго и бэквордация

Котировки смежных фьючерсных серий практически никогда не совпадают. Разница между спотовой ценой базового актива и стоимостью производного инструмента формирует базис (Basis), определяемый стоимостью удержания позиции (Cost of Carry) — межбанковскими процентными ставками, дивидендными отсечками и складскими расходами:

  • Контанго (Pnext > Pcurrent): дальний контракт торгуется с премией к ближнему, формируя на стыке искусственную ценовую ступень вверх.
  • Бэквордация (Pnext < Pcurrent): следующий контракт котируется со скидкой, вызывая визуальный провал графика вниз.

Простая стыковка баров разных контрактов без поправок накапливает критическую погрешность, искажая показания технических индикаторов.

Эффект накопления ложных движений: 8 кварталов фьючерса на Индекс РТС (RI)

Истекающий контракт Новый активный контракт Цена закрытия старого (Pold), п. Цена закрытия нового (Pnew), п. Искусственный гэп (ΔP), п.
RIH2 RIM2 173 605 168 415 -5 190
RIM2 RIU2 131 525 130 870 -655
RIU2 RIZ2 157 700 157 200 -500
RIZ2 RIH3 150 020 150 020 0
RIH3 RIM3 154 070 150 000 -4 070
RIM3 RIU3 128 210 126 870 -1 340
RIU3 RIZ3 140 170 140 030 -140
RIZ3 RIH4 139 400 139 350 -50
ИТОГО -11 945 пунктов

Искажение ценового массива за два года составило почти 12 000 пунктов несуществующего рыночного падения. Осцилляторы и трендовые фильтры (RSI, MACD, Bollinger Bands) воспринимают подобные скачки как реальные ценовые импульсы, генерируя серии ложных сигналов на вход и переворот позиций.

skleykafutures2.png

Триггеры ролловера: алгоритмы смены контрактов

Момент переключения источника котировок с текущего инструмента на следующий называется ролловером (Rollover). Торговые терминалы и исследовательские платформы используют три базовых механизма:

Механика триггера Логика срабатывания Практическое преимущество Риск исполнения
Fixed Calendar Day Жесткая дата (например, третий четверг месяца экспирации) Абсолютная календарная детерминированность алгоритма Риск остаться в неликвидном стакане за несколько часов до клиринга
Volume Crossover Дневной объем нового фьючерса превысил объем старого (Vnew > Vold) Поток котировок всегда берется из наиболее ликвидного стакана Ложные переключения при разовых крупных адресных сделках в дальнем контракте
Open Interest Crossover Открытый интерес новой серии превысил старую (OInew > OIold) Четкая фиксация переноса позиций институциональными игроками Запаздывание на 1–2 торговые сессии относительно первичного всплеска объема
def should_rollover(current_contract, next_contract, days_to_expiry: int) -> bool:
    """Проверка условий для переноса ценового потока на следующий контракт."""
    volume_condition = next_contract.daily_volume > current_contract.daily_volume
    time_window_condition = days_to_expiry <= 4
    
    if volume_condition and time_window_condition:
        return True  # Переключить continuous feed на next_contract
    return False     # Удерживать текущий фронтальный контракт

Методы построения склеенных графиков

Для устранения ступеней на стыках экспираций в индустрии применяются три метода:

  • Стык-в-стык (Unadjusted / !): прямое последовательное соединение свечей без коррекции. Сохраняет фактические исторические цены сделок, но образует ценовые гэпы на экспирациях.
  • Корректировка назад (Back-Adjusted / #): смещение всей предшествующей истории на величину каждого зафиксированного гэпа ΔP. Создает гладкий ряд для индикаторов, но изменяет исторические абсолютные уровни.
  • Линейная интерполяция: плавное сглаживание баров внутри заданного временного окна. Устраняет локальные швы, формируя синтетические расчетные цены.

skleykafutures3.png

1. Метод без коррекции (Unadjusted / !)

Контракты сшиваются «встык» по факту наступления даты переключения. Исторические свечи сохраняют те котировки, по которым фактически проходили торги.

Преимущество: Сохранение точных исторических уровней поддержки, сопротивления и глобальных экстремумов.

Недостаток: Экспирационные ступени искажают расчеты индикаторов и ломают бэктесты.

2. Корректировка назад (Back-Adjusted / #)

Текущий активный контракт сохраняет реальные биржевые цены, а вся предшествующая история баров смещается на величину каждого накопленного гэпа:

ΔP = Pnew - Pold

Преимущество: Бесшовный ценовой ряд; математически корректный расчет волатильности, трендовых индикаторов и осцилляторов.

Недостаток: Искажаются абсолютные исторические котировки прошлого. На рынках с многолетним контанго (например, фьючерс на природный газ NG) регулярное вычитание базиса способно увести котировки прошлых лет в отрицательную зону. Это следствие математической поправки, а не ошибка торгового терминала.

3. Линейная интерполяция свечей

Внутри заданного переходного окна (N дней) расчетная цена бара вычисляется как взвешенная сумма котировок двух контрактов:

Pinterpolated = Pold · (1 - w) + Pnew · w, где w = k / N

(k — порядковый номер дня переходного окна, N — общая продолжительность сглаживания).

Преимущество: Плавный локальный переход между сериями без тотального сдвига многолетней истории.

Недостаток: Генерирует искусственные котировки, по которым на бирже фактически не заключались сделки.

Метод склейки Механика построения Плюсы Минусы Оптимальное применение
Стык-в-стык (Unadjusted) Соединение баров без модификации котировок Сохранение реальных биржевых цен Ложные гэпы ломают бэктесты и фильтры Ручной графический анализ, глобальные уровни
Корректировка назад (Back-Adjusted) Смещение истории на величину разрывов ΔP Непрерывный ряд, реалистичная волатильность Смещение уровней прошлого; отрицательные цены Бэктестинг алгоритмов, индикаторы MA, RSI, MACD
Линейная интерполяция Взвешенный расчет цен внутри переходного окна Локальное устранение швов без сдвига истории Генерация несуществующих цен сделок Среднесрочный статистический и волновой анализ

skleykafutures4.png

Настройка непрерывных графиков в торговых терминалах

Платформа Сегмент применения Практические плюсы Ограничения платформы
TradingView Графический и технический анализ Переключение b-adj в один клик, иконки экспираций на шкале времени Нельзя отправить торговый ордер напрямую из склейки
PRO-терминалы брокеров (Т-Банк, Альфа) Торговля контрактами срочного рынка FORTS Встроенные режимы ! и # в стандартном окне графиков Ограниченный выбор тонких параметров окна сглаживания
ATAS / TigerTrade Кластерный и объемный анализ Корректный пересчет профилей объемов и кумулятивной дельты Платная лицензия, повышенные требования к RAM
Backtrader (Python) Алгоритмический бэктестинг Полная кастомизация условий ролловера в программном коде Требуется предварительная очистка сырых CSV-файлов
StockSharp (Hydra) Хранение и сшивка L2/L3 данных Пакетная склейка тиков, стаканов и свечей в форматы SQL/HDF5 Высокий порог входа, требовательность к дисковому пространству

Синтаксис тикеров

TradingView: Si1! (ближайший активный контракт без поправки), Si2! (следующий контракт). Для активации математического сглаживания необходимо нажать кнопку b-adj (Adjust for contract changes) на нижней шкале цен.

Терминалы Мосбиржи (FORTS): Формат [Код][Номер серии][Модификатор]. Пример: Si1! — текущий контракт с гэпами; Si1# — непрерывная склейка со сглаживанием разрывов.

skleykafutures5.png

Расчет рисков и перенос позиции (Rollover)

Перенос позиции через экспирацию требует одновременного закрытия объема в истекающем контракте и открытия аналогичной позиции в новой серии. При этом необходимо учитывать разницу в гарантийном обеспечении (ГО) и стоимость шага цены.

Пример расчета параметров для фьючерса Si

  • Депозит на счете: 500 000 руб.
  • Допустимый риск на сделку (R): 1.5% от депозита (7 500 руб.).
  • Текущая позиция: SiH (март), 10 лотов.
  • Новый контракт: SiM (июнь), текущая котировка: 93 200 руб. (контанго +1 200 руб.).
  • Базовое ГО на 1 контракт: 12 500 руб.
  • Расчетный стоп-лосс на новом контракте: 600 пунктов (стоимость шага цены: 1 п. = 1 руб.).

1. Лимит позиции по риску на капитал (Nrisk):
Nrisk = Риск в рублях / Стоп-лосс на 1 лот = 7 500 руб. / (600 п. × 1 руб.) = 12.5 ⇒ 12 лотов

2. Ограничение по загрузке ГО (Kmax ≤ 50% депозита):
NГО = (Депозит × 0.50) / ГО на 1 контракт = (500 000 руб. × 0.50) / 12 500 руб. = 20 лотов

3. Итоговый безопасный объем переноса:
N = min(Nrisk, NГО) = min(12, 20) = 12 лотов

Перенос базовых 10 лотов полностью укладывается в риск-профиль: требуемое ГО составит 125 000 руб. (25% депозита), а максимальный убыток при срабатывании стоп-лосса составит 6 000 руб. (1.2% капитала).

Нестандартные рыночные сценарии (Edge Cases)

Досрочный отток ликвидности (Liquidity Drain)

Сценарий: При резких макроэкономических событиях участники торгов могут перенести ликвидность за 7–10 дней до планового срока. Алгоритм со стандартным календарным триггером рискует остаться в опустевшем стакане с расширением спреда до 0.5–1.5%.

Решение: Настроить защитный триггер: если спред во фронтальном стакане расширяется более чем в 3 раза относительно 20-дневной медианы, система принудительно переключает поток котировок на дальний контракт.

Отрицательные исторические цены на сырьевых деривативах

Сценарий: При глубоких бэктестах Back-Adjusted рядов на сырьевых рынках вычитание положительного базиса уводит котировки прошлых лет ниже нуля.

Решение: Использовать пропорциональную/геометрическую склейку (Ratio-Adjusted), где цены прошлого умножаются на коэффициент:
k = Pnew / Pold
Это полностью исключает появление отрицательных значений на графике.

Сшивка данных в Backtrader (Python)

import backtrader as bt

def check_volume_trigger(d0, d1) -> bool:
    """Ролловер: объем нового контракта (d1) превысил объем активного (d0)."""
    return d0.volume[0] < d1.volume[0]

cerebro = bt.Cerebro()

# Загрузка котировок смежных квартальных серий
data_march = bt.feeds.GenericCSVData(
    dataname='SiH4_1hour.csv',
    datetime=0, open=1, high=2, low=3, close=4, volume=5, openinterest=-1
)
data_june = bt.feeds.GenericCSVData(
    dataname='SiM4_1hour.csv',
    datetime=0, open=1, high=2, low=3, close=4, volume=5, openinterest=-1
)

# Формирование непрерывного потока данных с динамическим переключением
cerebro.rolloverdata(
    data_march, 
    data_june, 
    name='Continuous_Si', 
    checkcondition=check_volume_trigger
)

Типичные ошибки трейдеров при работе со склейками

1. Выставление лимитных ордеров по ценам сглаженного ряда (#)

  • Механика: Сглаживание Back-Adjusted смещает котировки прошлого. Если уровень на графике # отображается как 85 000 п., реальные сделки в биржевом стакане могут проходить по 88 200 п.
  • Следствие: Заявка выставляется далеко от рынка и не исполняется либо исполняется с критическим проскальзыванием.
  • Решение: Определять точки входа и стоп-приказы строго по торгуемому контракту или склейке без поправок (!).

2. Отправка торгового приказа в тикер склейки

  • Механика: Инструменты Si1!, BR1#, ES1! являются виртуальными информационными потоками.
  • Следствие: Торговый сервер брокера отклонит поручение с системной ошибкой доступа к торгам.
  • Решение: Проводить анализ по склейке, а в торговом стакане выбирать физический контракт месяца (например, SiM6).

3. Оптимизация трендовых роботов на графике без поправки (!)

  • Механика: Экспирационный скачок в 2–4% алгоритм воспринимает как истинный рыночный импульс или пробой диапазона.
  • Следствие: На несклеенных данных алгоритм непрерывно генерирует ложные перевороты позиции BUY/SELL на стыках серий. Тестирование аналогичной трендовой системы на неочищенных гэпах дает просадку до 49.6% при профит-факторе 2.40, тогда как переход на Back-Adjusted ряд устраняет ложные входы, снижая максимальную просадку до 21.4% и повышая профит-фактор до 3.69.
  • Решение: Тестировать и оптимизировать роботов исключительно на сглаженных данных (Back-Adjusted / #).

План действий: выбор режима склейки под задачу

Если ваша цель... То правильное действие... Результирующий шаг
Графический анализ уровней Открыть склейку без поправки (!) Найти исторические максимумы, минимумы и горизонтальные диапазоны
Тестирование ТС и индикаторов Включить Back-Adjusted режим (# или b-adj) Рассчитать индикаторы (MA, RSI) и запустить бэктест алгоритма
Исполнение сделки на бирже Выбрать физический контракт месяца (например, SiM6) Сверить ликвидность в стакане, рассчитать ГО и отправить ордер

Чек-лист проверки перед отправкой биржевой заявки

  • [ ] Проверка тикера: В торговом стакане открыт актуальный контракт серии (например, SiM6), а не информационный тикер склейки (Si1!).
  • [ ] Запас времени: До даты экспирации выбранного инструмента остается более 3–5 рабочих дней (стакан ликвиден, спред узкий).
  • [ ] Сверка цен: Стоп-лосс и тейк-профит выставлены по фактическим котировкам стакана, а не по смещенному ряду #.
  • [ ] Контроль ГО: Суммарное гарантийное обеспечение по открытым позициям не превышает 40–50% свободного капитала.
  • [ ] Расчет риска: Объем лотов скорректирован так, чтобы потенциальный убыток при срабатывании стопа не превышал 1–2% депозита.

Ответы на частые вопросы (FAQ)

  1. Почему на сглаженном графике сырья в истории видны отрицательные цены?
    Это результат кумулятивного вычитания положительного базиса (ΔP) в условиях многолетнего контанго. Когда дальний контракт из месяца в месяц торгуется дороже ближнего, Back-Adjusted алгоритм смещает исторические бары вниз, что на горизонте нескольких лет уводит значения ниже нуля.

  2. Почему брокер отклоняет заявку при попытке купить контракт RI1!?
    Тикер RI1! — это синтетический расчетный поток данных, формируемый сервером котировок. На бирже обращаются только конкретные выпуски с датой исполнения (например, RI-6.26). Совершать сделки можно только внутри них.

  3. За сколько дней до экспирации рекомендуется переносить позицию на MOEX?
    Оптимальное окно для ликвидных инструментов (Si, MIX, Brent) — за 3–4 рабочих дня до исполнения. В этот период дневной оборот и открытый интерес нового контракта превышают показатели старого, а спреды остаются минимальными.

  4. Искажает ли сглаживание гэпов показатели индикаторов объема торгов?
    Нет. Терминалы при построении склеенного ряда переключают источник данных в момент ролловера, сохраняя фактический биржевой объем каждого бара. Профиль объема (Volume Profile) и кумулятивная дельта остаются полностью достоверными на всей протяженности истории.

Оставить комментарий
Загрузка комментариев...