Теория хаоса в трейдинге: Sharpe 3.3 или переподгонка?
Суть идеи
Автор берёт аппарат теории хаоса — прежде всего показатель Хёрста (Hurst exponent) и фрактальную размерность — и пытается превратить их в торговые сигналы на FX. Идея не нова: показатель Хёрста H < 0.5 говорит о mean-reversion, H > 0.5 — о трендовости (persistence), H ≈ 0.5 — случайное блуждание. Если уметь оценивать H на скользящем окне, можно динамически переключаться между стратегиями возврата к среднему и следования тренду.
Механизм, который должен работать: рынки меняют режим между трендом и флэтом, и если режим детектируется достаточно быстро, можно избежать применения трендовой системы в боковике и наоборот. Фрактальная размерность (связана с H как D = 2 − H) добавляет второй угол зрения на ту же идею — насколько «заполнен» ценовой путь.
Заявленный Sharpe 3.275 на FX — цифра, которая сразу поднимает флаг. Даже лучшие систематические FX-дески редко видят Sharpe выше 1.5–2.0 out-of-sample на длинных горизонтах. Детали выборки, длина истории, transaction costs и slippage в статье не раскрыты в аннотации — это само по себе проблема.
Применимость к крипте
BTC и ETH — благодатная почва для режимных фильтров: рынок явно чередует трендовые фазы (бычий/медвежий цикл) и затяжные боковики с высокой волатильностью. Показатель Хёрста на rolling-окне (например, 30–90 дней на дневных данных) можно посчитать на споте BTC/ETH и использовать как фильтр для переключения между momentum и mean-reversion сигналами.
Дополнительно: режимный сигнал Хёрста можно комбинировать с нашими рядами — ATM IV (высокая IV часто совпадает с трендовым режимом), GEX (отрицательный GEX усиливает тренд), funding rate (экстремальный фандинг — признак перегрева, т.е. возможного mean-reversion). Это даёт более богатую картину, чем один Hurst.
Замена FX → крипта: ликвидность ниже, bid-ask шире, особенно на деривативах. Режимы короче и резче. Оценка H на коротких окнах будет шумной — нужна осторожность с длиной окна.
Тестируемо ли
Да, технически — rolling Hurst exponent считается на чистом Python (библиотека hurst или ручная R/S-анализ). На нашем движке: берём дневной BTC spot с 2017 года, считаем rolling H на окне 60 дней, делим историю на режимы H > 0.55 (тренд) и H < 0.45 (mean-reversion), прогоняем соответствующие сигналы в каждом режиме.
Чего нет напрямую: внутридневные данные с нормальным bid-ask для оценки реальных transaction costs на крипте до 2020 года — скудно. Walk-forward обязателен, иначе выбор порогов H — чистая подгонка.
Сомнения
Sharpe 3.275 без деталей по OOS — классический признак in-sample overfit. Показатель Хёрста чувствителен к длине окна: разные окна дают разные H на одних и тех же данных, и выбор «лучшего» окна постфактум — прямой data-snooping. Фрактальная размерность на финансовых рядах оценивается с большой погрешностью — независимых режимных переходов в любой разумной истории мало, статистическая мощность низкая. Наконец, FX-результаты не переносятся автоматически на крипту: другая микроструктура, другие участники, другие драйверы режимов.
Следующий шаг
Поставить walk-forward тест на BTC daily (2017–2024): rolling Hurst (окно 60 дней, шаг 1 день), порог переключения режима H = 0.5 ± 0.05 (мёртвая зона), in-sample 2 года → OOS 6 месяцев, повторить 10 раз. Сравнить Deflated Sharpe режимной стратегии против простого momentum и buy-and-hold. Если режимный фильтр не добавляет значимо — идея не работает на крипте.
Результаты тестов
Дописано 2026-09-04 — прогнали «Следующий шаг» этой карточки на BTC и ETH, дневки 2017–2026. Фильтр в нашем стенде не добавляет, а отнимает; знак у механизма вышел обратным заявленному. Плюс отдельная находка про сам инструмент: на окне 60 наивная реализация показателя Хёрста вешает метку «тренд» на две трети дней случайного блуждания.
Оговорка о провенансе. Оригинал по ссылке уже недоступен (редирект Quantocracy отдаёт 400), поэтому ниже — прогон ИДЕИ по её аннотации, а не репликация авторских чисел: набор валютных пар, окно истории, издержки и точная форма правила у автора нам неизвестны. Всё, что следует, — наш стенд, наши определения и крипта вместо FX.
Стенд и предрегистрация
Binance, дневные close (перп + спот-бэкфилл левее сентября 2019), BTC и ETH, 2017-08-17 … 2026-09-03, 3305 баров. Издержки — 6 бп на единицу оборота, фандинг перпа вычитается с удерживаемой позиции. Правило по букве карточки: pos = +моментум при H > hi, pos = −моментум при H < lo, ноль в мёртвой зоне.
Сетка объявлена ДО прогона: 4 оценщика H (классический R/S; R/S с поправкой Аниса–Ллойда; DFA; вариационное отношение) × 4 окна {30, 60, 90, 120} × 3 длины моментума K {5, 20, 60} × 5 семейств порогов = 240 режимных конфигураций на актив плюс 7 баз (B&H, три моментума, три контр-тренда). Пятым оценщиком идёт фрактальная размерность по Хигучи — она нужна отдельно, ради проверки тезиса про «второй угол зрения». Порог берётся в трёх видах: авторский абсолютный (0.45/0.55), калиброванный по собственному нулю оценщика и скользящий перцентиль своей истории.
Сначала мы измерили сам измеритель
Прежде чем спрашивать «что говорит H», стоит спросить «а что он говорит, когда говорить не о чем». Переставляем доходности случайным образом — память разрушена по построению, любой честный оценщик обязан дать 0.5 — и смотрим, что выдаёт роллинг-оценка на окне 60:
| оценщик | E[H] на безпамятном ряде | P(H > 0.55) там же | доля дней H > 0.55 у BTC |
|---|---|---|---|
| классический R/S | 0.592 | 0.652 | 0.732 |
| R/S + поправка Аниса–Ллойда | 0.481 | 0.280 | 0.287 |
| DFA | 0.470 | 0.312 | 0.323 |
| вариационное отношение | 0.464 | 0.181 | 0.128 |
Это и есть главная ловушка темы. Классический R/S — ровно то, что отдают библиотека hurst и типовые блог-реализации, — на коротком окне смещён вверх настолько, что метку «персистентность» получают две трети дней монетки. Независимая проверка другим кодом на чистых гауссовых окнах даёт ещё выше: 0.617 при 70% дней «тренда». Порог «0.5 ± 0.05» из аннотации в этом случае измеряет не рынок, а смещение оценщика; учебный центр 0.5 к нему просто не относится.
Отсюда первый практический вывод, переносимый далеко за пределы Хёрста: у любого оконного индикатора с «известным» нейтральным уровнем этот уровень надо брать не из учебника, а из перестановки собственных данных.
Длинной памяти в дневках BTC/ETH мы не нашли
Тот же нуль отвечает и на содержательный вопрос. Сравниваем фактическое среднее H с этим нулём в единицах его же разброса: по 5 оценщикам × 4 окнам × 2 активам расхождение не превышает +0.18 стандартного отклонения, а у вариационного отношения и Хигучи оно вовсе отрицательное. BTC на классическом R/S с окном 60: факт 0.605 против нуля 0.592 при sd = 0.128.
То есть переключать нечего: величина, по которой предлагается детектировать режим, на дневках наших активов статистически неотличима от той же величины у ряда без памяти.
Правило карточки: −0.64 Sharpe и ноль ячеек из 240
Главный вопрос сформулирован в самой карточке — добавляет ли режимный фильтр к простому моментуму. Считаем разницу Sharpe каждой режимной конфигурации против её же моментума (тот же K, те же издержки), полная выборка:
| BTC | ETH | |
|---|---|---|
| B&H | +0.69 | +0.59 |
| моментум K=20 / K=60 | +0.72 / +0.74 | +0.48 / +0.72 |
| медиана Sharpe режимной сетки | −0.16 | −0.49 |
| ΔSharpe к своему моментуму, медиана | −0.64 | −0.89 |
| доля конфигураций с ΔSharpe > 0 | 0.04 | 0.00 |
| лучшая ΔSharpe в сетке | +0.19 | −0.06 |
У ETH правило не обошло свой же моментум ни разу из 240 попыток. Поправка на множественность (студентизированный ротационный max-T по всей объявленной сетке) не оставляет выживших ни на одном активе: 0 из 247 при эмпирическом пороге E[max Sharpe] ≈ 0.78 годовых.
Walk-forward ровно по букве карточки — обучение 730 дней, проверка 182, десять повторов подряд:
| BTC | ETH | |
|---|---|---|
| средний Sharpe на обучении | +1.70 | +1.16 |
| средний Sharpe вне выборки | +0.13 | +0.38 |
| там же простой моментум | +0.16 | +0.59 |
| там же B&H | +0.51 | +0.31 |
| равновесная корзина всей сетки, вне выборки | −0.38 | −1.33 |
Обучение стабильно рисует 1.2–1.7, проверка — примерно ноль. Собственное решающее правило карточки («если режимный фильтр не добавляет значимо — идея не работает на крипте») выполняется с запасом.
Механизм оказался развёрнут
Это интереснее простого нуля. Спросим напрямую, в обход правила, порогов и мёртвой зоны: связан ли сегодняшний H с тем, как моментум отработает дальше? Берём форвардный P&L моментума на горизонте h и считаем ранговую корреляцию с H; нуль — циклический сдвиг только ряда H, чтобы скважность и гладкость обоих рядов остались настоящими.
| актив | оценщик | K | горизонт | IC(H, форвардный P&L) | p |
|---|---|---|---|---|---|
| BTC | R/S | 20 | 63 дня | −0.213 | 0.000 |
| BTC | DFA | 20 | 63 дня | −0.206 | 0.017 |
| ETH | R/S + Анис–Ллойд | 20 | 63 дня | −0.184 | 0.000 |
| ETH | R/S | 60 | 63 дня | −0.147 | 0.030 |
| BTC | R/S | 20 | 21 день | −0.072 | 0.290 |
Знак отрицательный на обоих активах и всех трёх оценщиках. В лоб: P(моментум прибылен в следующие 63 дня | H > 0.55) = 0.63 против 0.83 при H < 0.45 у BTC. Высокий Хёрст на дневках предвещает моментуму скорее худший квартал, чем лучший — противоположно тому, ради чего фильтр и строится. На месячном горизонте связи нет вовсе (|IC| ≤ 0.08).
Соблазн развернуть правило мы проверили сразу же — и он ничего не даёт: обратное отображение (высокий H → контр-тренд) даёт медиану Sharpe −0.09 у BTC и +0.28 у ETH, обе ниже и B&H, и простого моментума. Разворот знака после того, как знак увиден в данных, — это ровно тот ход, от которого и защищают поправки на множественность.
Дело не в качестве оценки H
Естественное возражение: «H на 60 днях шумный, возьмите оценщик получше». Проверяем предельным случаем — подставляем в правило H, посчитанный по будущему окну, то есть идеальное знание режима того периода, который предстоит торговать. Sharpe: BTC 0.74 → −0.10, ETH −0.25 → +0.03 при простом моментуме 0.74 и 0.72. Идеальный H конструкцию не поднимает — упирается не в оценку, а в само отображение «H → какой рулём торговать». Улучшать оценщик здесь бессмысленно.
Откуда берётся Sharpe 3.3
Полезно знать цену этой цифры заранее. Считаем потолок конструкции: оракул, знающий будущее, поблочно выбирает лучшее из {моментум, контр-тренд, вне рынка}:
| длина блока решения | Sharpe оракула на BTC |
|---|---|
| 1 день | 16.3 |
| 5 дней | 6.0 |
| 21 день | 3.0–3.2 |
| 63 дня | 1.6–1.7 |
| 126 дней | 1.0–1.3 |
Заявленные 3.275 попадают ровно в клетку «ясновидящий переключатель с горизонтом решения около месяца». Отдельная проверка: гейт, построенный напрямую из будущих доходностей, даёт на BTC 3.22. Это не доказывает ничего про авторскую работу — у неё другой рынок и, возможно, другой дизайн. Но как ориентир полезно: на дневном горизонте с месячным переключением такой Sharpe — координата оракула, а не рабочий диапазон.
Что осталось от лучшей ячейки
Одна конфигурация BTC всё же обошла свой моментум: классический R/S, окно 60, K=60, авторские пороги — Sharpe 0.93 против 0.74. Разбираем. Гейт в ней включён 73% времени, то есть это в основном «моментум, который иногда выключается». Накладываем тот же гейт на постоянную позицию: 0.55 при B&H 0.69. Значит перед нами график присутствия на растущем активе, а не взаимодействие с сигналом. Её pMax = 0.62 — на фоне всей сетки она неотличима от лучшего результата случая. У ETH тот же контроль ещё нагляднее: гейт, торгуемый как самостоятельное направление, даёт 0.71 — выше самой режимной стратегии (0.66).
Издержки здесь ни при чём: безубыточная комиссия лучшей ячейки 85 бп при площадке в 6 (у простого моментума K=60 — 146 бп). Идея умирает в предсказании, а не в исполнении, и на нулевых комиссиях преимущество к моментуму не появляется.
Каким должен быть рынок, чтобы это работало
Отрицательный результат обязан сопровождаться ответом «а что мы вообще способны увидеть». Строим мир, где идея верна по построению: скрытый двухрежимный процесс, в трендовой фазе доходности с положительной автокорреляцией φ, в боковой — с отрицательной −φ.
| φ | ΔSharpe (режим − моментум) | AUC: различает ли H режимы |
|---|---|---|
| 0.05 | −0.03 … −0.09 | 0.50–0.52 |
| 0.10 | −0.03 … +0.01 | 0.51–0.53 |
| 0.20 | +0.22 … +0.35 | 0.54–0.59 |
| 0.30 | +0.56 … +0.91 | 0.56–0.63 |
Конструкция оживает начиная примерно с |φ| = 0.2 — и даже там роллинг-H различает режимы едва-едва. Факт нашего мира: автокорреляция дневных доходностей BTC −0.050, ETH −0.059; по скользящим 60-дневным окнам разброс от −0.27 до +0.18. Персистентности порядка 0.2, устойчиво держащейся неделями, на дневках BTC/ETH за девять лет мы не нашли. Наш вердикт поэтому звучит так: на дневном масштабе эффект, если он есть, слабее того, что эта конструкция способна показать — и он к тому же смотрит не в ту сторону.
«Второй угол зрения» им не является
Фрактальная размерность подаётся как независимый взгляд на ту же природу. Если брать её как D = 2 − H, это тождественный пересчёт: новой информации нет по построению. Если же оценивать D независимо (метод Хигучи), согласия с R/S не возникает вовсе: корреляция +0.13 на окне 30 и −0.70 на окне 120 — знак переворачивается от длины окна. Это не второй угол зрения, это второй шум.
Санитария
Реализация R/S перепроверена независимой наивной версией (расхождение 4·10⁻¹⁶), P&L — второй реализацией (10⁻⁴, конвенция ddof). Гейт, собранный из будущих доходностей, поднимает Sharpe с 0.93 до 3.22 — значит стенд лукахед видит и молчаливо его не проглотил бы. Мир из чистого шума, прогнанный через ту же сетку, даёт лучший Sharpe 0.83 при pMax 0.144 и ноль выживших: машинерия значимости мусор не пропускает.
Где копаем дальше
Мы закрыли конкретное утверждение в конкретной форме: роллинг-Хёрст на дневках BTC/ETH как переключатель между моментумом и возвратом к среднему. Это не приговор всей теме, и вот три направления, которые наш стенд не проверял.
Первое — масштаб. Все выводы получены на дневных барах и окнах 30–120 дней. Микроструктурная память живёт на минутах и секундах, где автокорреляция знака сделки заведомо ненулевая; там и оценщик ведёт себя иначе, и переключение стоит других денег. Второе — отрицательный знак, который мы нашли: он выглядит как «после периода, похожего на тренд, моментум работает хуже», и это ближе к обычному эффекту разворота после сильного хода, чем к теории хаоса. Развести эти два объяснения (память ряда против силы недавнего движения) — отдельная работа, и она интереснее исходной гипотезы. Третье — идея из этой же карточки комбинировать режимный сигнал с волатильностью, GEX и фандингом: она осталась непроверенной, потому что первый же множитель оказался нулевым, но сама по себе она от нашего результата не пострадала.
Если вы гоняли похожее на других инструментах или на внутридневных данных — особенно если знак у вас вышел положительным — напишите, интересно сверить стенды. Пока же на дневной крипте у нас так: переключать нечего, а если бы и было чем, переключало бы оно не в ту сторону.