👀 PairScan

· 8 мин чтения · #risks #failure-modes #mean-reversion #pair-trading #honest

Где ratio rebalancing ломается: 4 случая когда стратегия теряет деньги

Ratio rebalancing — не free money. Вот 4 конкретных случая когда стратегия теряет деньги — с реальными примерами из крипто-рынков 2024-2026.

Большинство контента про парный трейдинг продаёт upside. Смотри этот бэктест. Смотри эти returns. Смотри наш скринер.

Этот пост — обратное. Я разберу четыре конкретных способа которыми наша стратегия теряет деньги — с реальными примерами из последних двух лет крипто-рынков, конкретными числами, и конкретными filter conditions которые должны были (или таки поймали) каждое падение.

Если читать только маркетинговый контент, можно подумать что mean-reversion — это free money. Это не так. Как любая стратегия, она работает в одних режимах и ломается в других. Вопрос не «работает ли» — вопрос «понимаешь ли ты, когда не работает, чтобы распознать этот режим когда он наступит».

Failure mode 1: сильный однонаправленный тренд

Это универсальное предупреждение. Парный трейдинг на ratio предполагает, что ratio колеблется внутри стабильного исторического диапазона. Когда один актив входит в устойчивое одностороннее движение, которое другой не повторяет, ratio вырывается из своего диапазона и bottom-zone сигнал становится ловушкой.

Конкретный пример: BTC vs SOL, конец 2023 — начало 2024.

В октябре 2023 BTC был ~$28,000, SOL ~$25. К марту 2024 BTC достиг $73,000, SOL $200. Это BTC ×2.6, SOL ×8. Ratio BTC/SOL за этот период ушёл с ~1120 до ~365 — падение 67%, монотонное, с очень малым числом разворотов.

Если бы ты гонял mean-reversion на BTC/SOL на основе предыдущего годового диапазона, ratio постоянно бил bottom-zone entry-сигналы в ноябре, декабре, январе. Каждый вход — своп SOL на BTC по этому ratio — был бы убыточной сделкой, потому что ratio продолжал падать по мере того как SOL обгонял.

Что фильтр должен поймать: - Hurst exponent на трендовом участке уходит выше 0.5 (фильтруем H < 0.5) - Slope-фильтр (|β| < 0.3) ловит устойчивые тренды - Range width включает новый low, который потом не возвращается alternation'ом к high (значит alternating-touches фильтр фейлится на следующем скрининг-цикле)

Что фильтр не ловит: - Первые 30-60 дней тренда, до того как rolling-окно накопит достаточно трендовых данных чтобы поднять Hurst выше порога. В этом раннем окне ты всё ещё можешь получить «buy» сигнал, который кровоточит деньгами.

Это самый большой failure mode и самый сложный для митигации одними фильтрами. Практическая митигация: не клади всю позицию в один своп. Scale in через сигналы. Если второй или третий bottom-zone сигнал на той же паре приходит в течение 30 дней — относись к этому как к warning'у режима, а не возможности удвоиться.

Failure mode 2: low-volume альты, где slippage съедает альфу

Математика ratio rebalancing работает на executable prices. Наш бэктест использует 0.1% taker-fee (Binance уровень) и предполагает, что можно исполниться на close-принте каждой дневной свечи. На low-volume парах в реальности — нельзя.

Конкретный пример: любая пара где у одной ноги < $1M/24h спот-объёма на её primary-бирже.

У нас была пара в раннем development'е, которая отлично выглядела в бэктесте: log-ratio между двумя mid-cap альткоинами, ширина диапазона 80%, Hurst 0.36, ADF p-value 0.18, четыре чередующихся касания на сторону. Бэктест показал +180% накопления за год на base-монете.

Когда попробовали исполнять live, slippage на $5,000 свопе иногда был 1.5%. Бэктест предполагал 0.1%. Реальные returns пришли где-то треть от бэктестовых, потому что slippage compound'ился через multiple swap'ы.

Что фильтр ловит: - Требование $1M+ дневного спот-объёма на обеих ногах (обязательное) - Когда это фейлится, пара автоматически исключается из скрина

Почему $1M — это floor: - Ниже $1M дневного объёма, типичная orderbook-глубина при ±1% от spot — в районе $5,000-15,000 - $5k своп на этой глубине ест 0.5-1.5% slippage - Два свопа на round-trip = 1-3% реальной стоимости vs 0.2% modeled - На 3-5 сделках в год это превращает +30% бэктест в flat или отрицательный реальный return

Что фильтр не ловит: - Внезапное падение объёма посреди стратегии. Пара, у которой было $2M volume когда она вошла в скрин, может упасть до $500k через месяц. Мы re-screen каждые 6 часов и удаляем пару, но если ты взял позицию до падения объёма — теперь сидишь в позиции, выйти из которой дорого.

Практическая митигация: ставь свой минимум volume выше нашего, если торгуешь крупнее. Для позиций > $20k я бы хотел $5M+ дневного объёма. Для $100k+ позиций — $25M+.

Failure mode 3: делистинги и смены нарратива

Крипто-пары могут перейти из «валидной mean-reverting пары» в «полностью сломанные исторические данные» за ночь, когда один из underlying-токенов делистится, переименовывается или имеет major сдвиг нарратива.

Конкретный пример: MATIC → POL transition в 2024.

Polygon исполнил 1:1 миграцию токена с MATIC на POL в течение 2024. MATIC-тикер продолжал торговаться на большинстве бирж через transition, но с устойчиво падающим объёмом по мере миграции пользователей. К концу 2024 MATIC trading на Binance депрекейтился.

Любая пара с MATIC за этот период имела бэктест-данные, которые выглядели нормально, но исполнение ломалось непредсказуемо. «MATIC цена» в ноябре 2024 могла быть на тонком orderbook'е, не отражающем реальный market clearing.

Конкретный пример: AGIX после Singularity merger.

В июне 2024 SingularityNET (AGIX) объединился с Fetch.ai (FET) и Ocean Protocol (OCEAN) в единый ASI-токен. AGIX продолжал торговаться кратко на некоторых venue'ах перед делистом. Любые исторические данные пар с AGIX теперь contaminated событием merger'а в середине окна.

Что фильтр ловит: - Падение объёма ниже $1M threshold (часто случается за недели до делистинга) - Ширина диапазона может стать нестабильной по мере фрагментации price discovery

Что фильтр не ловит: - 30-60-дневное окно перед делистом, где всё ещё выглядит нормально, но объём фрагментируется - Бэктест-периоды, охватывающие событие, дают misleading историческую картину

Практическая митигация: вручную флагай пары которые в transition events. Следи за официальными объявлениями бирж. Мы держим manual exclusion list, обновляемый когда Binance объявляет «monitoring tag» на актив.

Failure mode 4: xStocks-specific риски

Этот новый и специфичный для cross-asset пар с tokenized equities. Три distinct риска:

4a. Peg drift при стрессе.

xStocks-токены 1:1 обеспечены реальными акциями в регулируемом custody, но trading price на Solana DEX'ах может дрейфовать от canonical share price при стресс-событиях. Дрейф до 4-6% наблюдался в low-liquidity окнах.

Если ты считаешь log(BTC/AAPLx) и AAPLx торгуется на 5% выше истинного peg'а, твой computed ratio искусственно низкий, что может триггернуть fake «bottom zone» buy-сигнал. Ты бы свопал BTC в overpriced AAPLx.

Что фильтр ловит: - Мы кросс-чекаем каждый xStocks-токен по Pyth Network oracle (canonical Equity.US.AAPL/USD feed) каждый скрининг-цикл - Если дрейф превышает 3% от canonical, пара исключается из этого цикла - Все drift-события логируются в audit-таблицу

Что фильтр не ловит: - Дрейф между скрининг-циклами (мы гоняем каждые 6 часов, дрейф может развиться и исчезнуть в этом окне) - Coordinated peg-атаки где DEX-цена и oracle-цена двигаются вместе (редко, но теоретически возможно)

4b. Redemption-паузы.

Backed Finance (issuer xStocks) приостанавливал redemptions при изолированных инцидентах в прошлом — не default-событие, а «мы паузим пока investigate» событие. Во время таких пауз secondary- market цена может decouple от canonical на часы или дни.

Что фильтр ловит: - Тот же Pyth oracle peg-check обычно флагает это - Pyth feeds которые сами становятся stale, флагнут через свои staleness-чеки

4c. Короткая история.

Tokenized equities запустились в июне 2025. На момент написания (начало 2026), у нас меньше 12 месяцев чистых исторических данных на любой cross-asset паре. Mean-reversion claims на таком коротком семпле спекулятивны.

Большая часть академической работы по парному трейдингу использует 5-30-летние бэктесты. У нас меньше года. Фильтры могут флагать «mean-reverting» пары, которые на самом деле всё ещё в начальной discovery-фазе и не развили стабильный long-term диапазон.

Что фильтр ловит: - Ничего структурного — это unavoidable ограничение категории - Мы помечаем все cross-asset пары как «экспериментальные» в скрине чтобы держать это top-of-mind - Требуем минимум 540 дней данных перед бэктестом (для cross-asset это означает synthetic extension — используем AAPL дневные closes с Yahoo для pre-xStocks периода, потом переключаемся на AAPLx onchain prices когда они становятся доступны)

Что фильтр не ловит: - Фундаментальный факт что год — недостаточно данных для уверенности в mean-reversion claims

Практическая митигация: торгуй меньшими размерами на cross-asset парах, чем на крипто-vs-крипто. Воспринимай бэктест-результаты на cross-asset как наводящие, не предиктивные. Пересмотри после того как категория накопит 3+ года данных.

Что это значит для использования скринера

Полезный фрейминг: думай о скринере как о фильтре entry-возможностей, а не как о гарантии прибыли.

Скрин говорит тебе: из 170+ пар, вот 5-15 которые проходят mean-reversion тесты прямо сейчас. Это tractable список. Но внутри этого списка тебе всё ещё надо применять human judgment про:

  • Находится ли широкий рынок в направленном режиме (failure mode 1)?
  • Держится ли объём пары (failure mode 2)?
  • Кто-то из underlying активов в transition или delisting risk окне (failure mode 3)?
  • Для cross-asset: эта пара, где короткая история делает сигнал менее надёжным (failure mode 4)?

Дальше внутри qualifying пар важны решения по position-sizing. Не клади всё в один своп. Scale in. Ставь position-size лимиты на пару на основе ликвидности. Держи «sanity floor» — если пара триггерит сигналы 3 раза за 60 дней в той же entry zone, относись к этому как к warning'у режима.

Честная дисклоза: что наши публичные результаты vs реальность

Наши бэктест-результаты предполагают:

  • 0.1% taker-fee (Binance уровень)
  • Исполнение на дневной close-print
  • Полный размер позиции (без partial fills)
  • Без exchange downtime
  • Без tax events

Реальное исполнение обычно даёт на 10-30% ниже returns, чем бэктест suggests. Так что если наш бэктест показывает +47% накопления на ETH/MSTRx за 360 дней, реальное исполнение скорее всего дало +30-40% в тот же период для кого-то торгующего at scale.

Это не флоу нашего бэктеста специфично — это универсальное свойство всех бэктестов. Но это стоит явно обозначить, потому что разрыв между бэктестом и реальностью — это место где большинство retail- стратегий реально проваливаются.

Почему мы публикуем эту статью

Резонный вопрос: зачем публиковать материал детально расписывающий когда наш продукт фейлится? Это же бьёт по продажам?

Две причины.

Во-первых, честные ожидания привлекают лучших клиентов. Пользователи, регистрирующиеся после прочтения этого поста, понимают что получают. Не ждут free money. Не винят скринер когда пара оказывается в failure mode 1. Знают что надо применять собственный judgment поверх нашего фильтрования. У этих пользователей выше retention и они дают лучший feedback.

Во-вторых, это правда. Парный трейдинг на mean-reversion — это реальная стратегия с реальным edge в некоторых режимах. Это не магия. Она fail'ит идентифицируемыми способами. Притворяться иначе было бы плохо — и этически, и коммерчески, потому что в день когда клиент hit'нет один из этих failure modes (а он hit'нет), он обнаружит что мы это скрывали.

Лучше показать свою руку upfront. Тогда люди, которые хотят такого инструмента — quant-curious, статистически грамотные, комфортные с «edge в некоторых режимах, breaks в других» — находят нас и остаются. Те кто хочет get-rich-quick приложение, идут в другое место.

Что ты можешь сделать с этой информацией

Если используешь скринер на pairscan.io:

  1. Не воспринимай каждый pass-the-filter сигнал как buy. Применяй judgment про режим, стабильность объёма, transition events.
  2. Position-size на основе ликвидности, не бэктест-энтузиазма.
  3. Относись к cross-asset (xStocks) парам как к более experimental чем чисто крипто-пары.
  4. Мониторь свои реальные результаты против бэктест-claims. Трекай gap. Если он растёт — investigate.

Если ты не используешь наш скринер, а только изучаешь методологию — open-source утилита на github.com/pairscan/ratio-mean-reversion имплементирует все четыре фильтра плюс walk-forward бэктест, MIT лицензия. Прогоняй на своих данных. Верифицируй failure modes сам.

Математика публична с 1979. Инфраструктура (data feeds, tokenized equities, oracle peg-checks) большей частью существует меньше двух лет. Мы на раннем пересечении этих двух вещей. Здесь есть edge, но и failure modes, которые не изучены так долго, как нам бы хотелось. Торгуй соответственно.