EN
Все статьи

Так ли уж прост парный трейдинг

Исследование на фьючерсах МосБиржи и перпетуалах Bybit за 2026 год: 190 пар, 2,7 млн минутных баров. Почти каждый промежуточный результат выглядел обнадёживающе, а итог оказался отрицательным — и вот в каком месте разваливается рассуждение.

Идея, которая звучит безупречно

Две акции одного сектора ходят вместе. Разошлись — покупаем отставшую, продаём убежавшую, ждём схождения. Рынок может идти куда угодно: мы в лонге и в шорте одновременно, направление нам безразлично. Остаётся найти пары, которые ходят вместе, и собрать бота.

Я проверил это на фьючерсах на акции Московской биржи за 2026 год, а потом на бессрочных контрактах Bybit. Вышло исследование, где почти каждый промежуточный результат выглядел обнадёживающе, а итог оказался отрицательным. Ниже — что именно считалось, какие цифры получились и в каком месте разваливается исходное рассуждение.

Сразу оговорюсь: это не доказательство того, что парный трейдинг не работает нигде и никогда. Это проверка конкретной, самой распространённой его версии — отбираем пары по статистике прошлого, торгуем возврат спреда к среднему — на двух рынках за один год.

Что именно считалось

Данные — из ИСС Московской биржи, весь 2026 год до 12 октября. Сначала дневные итоги торгов по всем сериям FORTS — 196 торговых дней, 154 793 строки. По ним отобрана вселенная: топ-20 фьючерсов на акции по среднему дневному обороту.

Сортировка именно по обороту в рублях, а не по числу контрактов — лоты различаются в тысячу раз. По контрактам первое место занимает Самолёт (1,3 млн контрактов в день, 458 млн ₽), по обороту — Сбер (136 тыс. контрактов, 4 млрд ₽).

Что Сколько
Фьючерсов на акции на рынке 74 базовых актива
Во вселенной 20 (+6 добавленных вручную)
Пар «каждый с каждым» 190, с добавленными — 325
Минутных баров 2 742 892
Пятиминутных баров 868 497

Отдельно про источник: ИСС не отдаёт пятиминутный таймфрейм — только 1, 10 и 60 минут. Пятиминутки собираются из минутных свечей на стороне загрузчика.

По каждой паре строится спред: берётся процент изменения цены открытия к предыдущему открытию, первая нога идёт с коэффициентом +1, вторая с −β. Накопленная сумма этих рядов и есть спред. По нему считаются три вещи: t-статистика теста Дики — Фуллера (насколько статистически значим возврат), период полураспада отклонения по модели Орнштейна — Уленбека (за сколько баров отклонение сокращается вдвое) и показатель Хёрста (ниже 0,5 — возврат, 0,5 — случайное блуждание, выше — тренд).

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

Из 190 пар стационарны пять

Первый же расчёт показал то, что стоило бы увидеть до того, как писать движок: спреды не возвращаются. Порог стационарности на уровне значимости 5 % (ADF t < −2,9) прошли всего пять пар из 190.

Пара ADF t Полураспад Хёрст σ спреда
NOTKM / ROSN −3,5 918 баров 0,43 4,0 п. п.
GAZR / OZON −3,7 670 0,46 4,7
GAZPF / OZON −3,5 720 0,45 4,9
NOTKM / T −3,2 1 082 0,47 4,3
MOEX / SBRF −3,0 1 111 0,44 3,4

Полураспад 670–1 100 пятиминуток — это полторы–две с половиной недели, а не внутридневное колебание, ради которого ставят сетку на пятиминутках. Хёрст 0,43–0,46 при 0,5 у случайного блуждания: возврат есть, но слабый.

Спред MOEX / SNGR за 2026 год

Самая возвратная пара расширенного набора: колебание есть, но цикл тянется неделю, а сам спред за год поднялся на 5 п. п. ИСС MOEX, пятиминутные бары · расчёт автора

Здесь же всплыла первая ловушка. Я ждал увидеть в лидерах классику — обычку и префы одного эмитента. Они оказались хуже случайных пар: у Сургута ADF −0,6 при сносе 24,5 п. п. на размахе 36, у Сбера −1,9. Префы весь год сокращали дисконт к обычке — это не колебание вокруг среднего, а переоценка в одну сторону. Аргумент «один эмитент, одна выручка, значит сойдутся» на данных не подтвердился.

91 % прибыльных циклов и минус по итогу

Первый прогон сетки на паре MOEX / SNGR выглядел как мечта: 717 циклов, из них 658 вышли по тейку. Прибыльными, правда, оказались не все 658, а 655 — часть тейков съели издержки. Девять сделок из десяти в плюс. Итог года — минус 277 тысяч рублей.

Статья Сумма
Результат до издержек +243 042 ₽
658 выходов по тейку +481 373 ₽
58 выходов по стопу −756 846 ₽
Комиссия и проскальзывание −519 789 ₽
Чистый результат −276 747 ₽

Накопленный результат сетки MOEX / SNGR

Кривая ползёт вверх мелкими шагами и обваливается ступенями на стопах: красные точки — дни, когда сработал стоп, размер точки показывает, сколько их было за день. ИСС MOEX, пятиминутные бары · расчёт автора

Арифметика простая. Средний выигравший цикл приносит 732 рубля, средний стоп забирает 13 049. Один стоп съедает восемнадцать удачных циклов. При таком соотношении доля прибыльных сделок не говорит ничего — хоть 91 %, хоть 99 %.

Это встроенное свойство любой сетки с усреднением, а не неудачные настройки. Она берёт много маленьких побед и изредка отдаёт одну большую. Скриншот статистики с долей прибыльных сделок выше 90 % — нормальный вид такой системы в фазе набора убытка.

Издержки, которые считают неверно

Я взял комиссию 2 ₽ за контракт «по памяти» и получил минус 78 тысяч. Потом выяснилось, что ИСС отдаёт настоящие сборы в спецификации контракта, и они вдвое выше. С реальными стало минус 277 тысяч — тот же прогон, те же сделки.

Контракт Полный сбор Скальперский
SBRF-12.26 5,74 ₽ 2,87 ₽
MOEX-12.26 3,10 ₽ 1,55 ₽
SNGR-12.26 3,12 ₽ 1,56 ₽
GAZR-12.26 1,98 ₽ 0,99 ₽
SBERF (вечный) 8,47 ₽ 4,24 ₽

Биржа берёт скальперский тариф — половину, — если позиция открыта и закрыта внутри одного торгового дня, и полный — если она пережила клиринг. Для сетки с сотнями внутридневных циклов это решающая разница.

Фандинг вечных фьючерсов

У вечных контрактов MOEX (SBERF, GAZPF) есть ежедневная плата за перенос — поле SWAPRATE в дневной истории. Средние ставки за 2026 год: GAZPF — 22,7 % годовых, SBERF — 20,9 %. На фоне этого базис между вечным и квартальным контрактом на одну бумагу — в среднем 1,89 % цены — выглядит безнадёжно узким.

Прогон сетки на GAZPF / GAZR это подтвердил: 2 103 цикла, до издержек +501 878 ₽, издержки 833 796 ₽, итог −331 918 ₽. И это без учёта фандинга, который добавил бы до 134 тысяч в любую сторону.

Стоимость пункта

Квартальные контракты котируются за лот (шаг 1, стоимость шага 1 — пункт стоит рубль), вечные — за одну акцию (шаг 0,01 при той же стоимости шага, то есть пункт стоит 100 рублей). GAZPF по котировке 110 ₽ и GAZR по 11 276 ₽ — это одинаковая экономическая величина. Без приведения через step_price / min_step любая пара вечного с квартальным считалась бы в сто раз мимо.

Стоп убивает сетку, а без стопа она становится бомбой

Если стопы забирают больше, чем приносят тейки, напрашивается подобрать уровень стопа. Я прогнал сетку значений на лучшей конфигурации (минутный таймфрейм, MOEX / SNGR).

Стоп Чистыми Циклов Стопов Потери на стопах
3 ATR −330 870 ₽ 197 51 −695 338 ₽
6 ATR −138 815 ₽ 138 21 −579 960 ₽
10 ATR −256 645 ₽ 103 16 −655 428 ₽
20 ATR −171 577 ₽ 72 6 −561 657 ₽
без стопа +45 174 ₽ 52 0 —

Стоп при любом значении отдаёт 560–700 тысяч. Это не настройка, а конструктивный конфликт: сетка усредняется против движения, а стоп фиксирует убыток ровно в той точке, где схема должна дождаться возврата.

Первый плюс появился только когда стоп убрали совсем. А если ещё и поднять порог входа до 2,5 σ, получается +183 974 ₽ при просадке 92,8 тысячи и 95 % прибыльных циклов. Выглядит как победа.

Только убрать стоп в системе с усреднением — значит обменять ограниченный убыток на неограниченный. В 2026 году спред всегда возвращался; в год, когда одна из бумаг переоценится структурно, та же система досидит до margin call. Положительный результат здесь — не прибыль, а непроявившийся риск.

Проверка вне выборки: одна пара ничего не доказывает

Все цифры выше измерены на тех же данных, на которых подбирались параметры. Это не результат, а описание прошлого. Делим год пополам: подбираем на январе–июне, проверяем на июле–октябре, 324 комбинации параметров.

Важная деталь: β тоже оценивается только по обучающему отрезку. Если взять её за весь период, хедж окажется подогнан под те же данные, на которых идёт проверка.

Пара Корреляция обучение↔проверка Прибыльных на проверке Лучшая по обучению → проверка
MOEX / SNGR +0,76 93 % +158 818 → +87 800
AFKS / VKCO −0,75 42 % +350 149 → −250 453
SBRF / T +0,37 17 % +35 931 → −60 360

На первой паре всё прекрасно: рейтинг параметров переносится, десять из десяти лучших остались в плюсе. Именно такой график и попадает в статьи.

На второй паре корреляция отрицательная: лучшая на истории комбинация давала +350 тысяч, на проверке — минус четверть миллиона при просадке 806 тысяч, и скатилась с первого места на 272-е из 324. Выбирать параметры по истории было хуже, чем брать наугад.

Успех MOEX / SNGR объясняется не удачным подбором, а тем, что у этой пары спред во втором полугодии продолжал возвращаться: там прибыльны 93 % любых комбинаций. Результат определялся не настройками, а тем, сохранила ли конкретная пара возвратность. Значит, предсказывать нужно именно её.

Главное: возвратность не переносится во времени

Вся схема держится на одном допущении: если пара возвращалась к среднему раньше, она будет возвращаться и дальше. Это проверяется напрямую: считаем метрики всех 300 пар отдельно за первое и второе полугодие и смотрим на ранговую корреляцию.

Метрика Корреляция полугодий
Сводная оценка −0,01
ADF t-статистика 0,08
Полураспад 0,12
β хеджа 0,93

Из десяти лучших пар первого полугодия ни одна не попала в десятку второго и ни одна не осталась стационарной. Их средняя t-статистика во втором полугодии — −1,27 против −1,75 у всех пар подряд: отобранные оказались хуже случайных.

Лучшая пара первого полугодия, RTKM / TATP, имела ADF −4,2 и полураспад 155 баров — идеальный кандидат. Во втором полугодии её t-статистика −0,7, полураспад вырос до 1 488 баров. LKOH / VKCO ушла с −2,0 до +0,2 — возврата нет вовсе.

Спред OZON / SNGR за 2026 год

Так выглядит пара, у которой возврата почти нет: размах втрое шире, а отклонение рассасывается неделями. ИСС MOEX, пятиминутные бары · расчёт автора

Может, полгода — слишком долго?

Разумное возражение: возвратность может жить неделю или месяц. Посчитал помесячно, восемь переходов с января по сентябрь.

Переносимость метрик по восьми месячным переходам

Зелёные столбики — коэффициент хеджирования: он держится высоко на каждом переходе. Всё остальное жмётся к нулю, а сводная оценка, по которой и отбирают пары, трижды уходит в минус. ИСС MOEX, минутные бары · от 122 до 288 пар в месяц · расчёт автора

Сокращение горизонта ничего не дало. Знак корреляции скачет: в трёх переходах из восьми она отрицательная.

Самое неприятное — в последнем столбце

Доля пар, проходящих порог стационарности, колеблется от 1 % до 8 %, в среднем 5 %. Это ровно уровень значимости самого теста. Тест Дики — Фуллера на уровне 5 % по построению даёт 5 % ложных срабатываний на случайных блужданиях.

Мы находим ровно столько «коинтегрированных» пар, сколько дала бы чистая случайность. Отбирая лучшие пары по ADF, мы отбираем не связанные инструменты, а те, у которых шум в прошлом месяце случайно сложился в форму возврата.

Другая площадка, тот же результат

Можно возразить: российский срочный рынок — частный случай. Повторил всю цепочку на бессрочных контрактах Bybit: другая микроструктура, круглосуточная торговля, другие участники. Топ-20 перпетуалов по обороту, 1,64 млн пятиминутных баров, 190 пар.

Крипта связана заметно сильнее акций: корреляция BTC / ETH — 0,88, BTC / SOL — 0,83, DOGE / XRP — 0,80 против 0,30–0,60 на Мосбирже. Казалось бы, идеальный материал для парной торговли.

Показатель Bybit MOEX
Средняя корреляция ног 0,65 0,30–0,60
Средний Хёрст 0,49 0,47
Корреляция оценки по полугодиям −0,08 −0,01
Корреляция ADF −0,32 0,08
β хеджа 0,85 0,93
Стационарных во втором полугодии 13 % 10 %

Отрицательная корреляция по ADF означает, что лучшие пары первого полугодия систематически оказывались хуже во втором. LINK / SUI: ADF −3,9 → −1,7, полураспад 1 219 → 6 972. SOL / XRP: −2,7 → −0,9.

И финальная проверка на BTC / ETH — 324 комбинации, обучение январь–июнь, проверка июль–октябрь:

  • ранговая корреляция обучение↔проверка — −0,73
  • прибыльных комбинаций на проверке — 0 из 324
  • лучшая по обучению: +11 742 → −33 768, место 321 из 324

Отдельно про фандинг, который обычно считают главной бедой крипты. Средние ставки за 2026 год: BTC — 2,45 % годовых, ETH — 2,40 %, DOGE — 2,80 %, SOL — −0,09 %. Против 21–23 % у вечных фьючерсов МОЕХ это мелочь, да и в парной конструкции ставки двух ног частично гасят друг друга. Убивает другое — комиссия 0,055 % от оборота при сотнях циклов и тысячах доборов.

Что всё же переносится

В обеих таблицах есть одна строка с высокой корреляцией — коэффициент хеджирования β. Он держится на 0,85–0,93 на всех горизонтах и на обеих площадках.

Соотношение ног действительно устойчиво: если в первом полугодии на один рубль движения первой ноги приходилось 0,34 рубля второй, во втором будет примерно столько же. Бету можно считать по прошлому окну и доверять ей.

Только заработка из этого не следует. Бета убирает направленную экспозицию — то есть делает конструкцию нейтральной к рынку. Но нейтральность — это способ не терять на движении рынка, а не способ заработать. Заработок должен прийти от возврата спреда — а именно он и не переносится.

Получается парадокс: надёжно предсказуема ровно та часть конструкции, которая не приносит денег.

Грабли, на которые я наступил сам

Пять ошибок по ходу работы. Каждая какое-то время давала правдоподобные цифры — именно этим они опасны.

Стоимость пункта. Вечные фьючерсы МОЕХ котируются за акцию, квартальные — за лот. Без приведения пара считается в сто раз мимо. У меня это проявилось как отказ подобрать объёмы ног — повезло.

Биржевые сборы по памяти. Взятые с потолка 2 ₽ за контракт занизили издержки вдвое. Биржа отдаёт точные значения в спецификации каждой серии, вместе со скальперским тарифом.

Бета с подглядыванием в будущее. Если β оценена по всему периоду, хедж подогнан под те же данные, на которых измеряется результат. В проверке вне выборки β считается только по обучающему отрезку.

Тихий обрыв загрузки. Загрузчик Bybit при лимите частоты выходил из постраничного обхода и отдавал то, что успел. У ADAUSDT загрузилось 4 дня из 285, у DOGEUSDT — полгода. Усечённый ряд внешне неотличим от короткого, поэтому метрики посчитались «успешно». Заметил случайно: длины рядов оказались кратны 1000 — размеру страницы API.

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

Есть и шестая, не ошибка, а ограничение модели. Точные максимум и минимум спреда внутри бара из экстремумов ног не восстановить: неизвестно, в какой момент каждая нога была на своём экстремуме. Значит, либо осторожная оценка (спред ходил только между открытием и закрытием), либо минутные данные.

Что с этим делать

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

На двух рынках за 2026 год это допущение не подтвердилось. Отбор пар по прошлой коинтеграции даёт результат не лучше случайного, а местами хуже.

Что проверить до того, как писать бота

  1. Переносится ли свойство, по которому вы отбираете. Посчитайте метрики за два соседних периода и посмотрите ранговую корреляцию. Около нуля — дальше можно не идти.
  2. Сравните долю стационарных пар с уровнем значимости теста. Если вы находите 5 % при пороге 5 % — вы нашли ровно те ложные срабатывания, которые тест обязан дать.
  3. Возьмите настоящие издержки из спецификаций. Биржевой сбор, скальперский тариф, стоимость пункта, фандинг — всё это есть в API биржи.
  4. Не смотрите на долю прибыльных сделок. У сетки она всегда высокая. Смотрите на средний выигрыш против среднего убытка.
  5. Закладывайте проверку вне выборки в инструмент сразу. И смотрите не на лучшую строку, а на корреляцию рейтингов и медиану по всем комбинациям.

Где парная торговля всё же работает

Отрицательный результат получен для конкретной версии подхода: отбор по статистике прошлого плюс торговля возврата к среднему. Он не закрывает другие:

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

Общее у этих случаев одно: там есть причина сходиться, а не только наблюдение, что раньше сходились. Если вся аргументация строится на тесте Дики — Фуллера по истории, стоит сначала проверить переносимость, а уже потом писать движок.