baykovpro

← Quant

Что важнее в крипто-бэктесте: вход или выход?

11 сентября 2026 · 11 мин · бэктест, mean-reversion, методология, крипта

Суть идеи

Авторы прогнали 99,75 млн комбинаций параметров на крипто-данных, варьируя входы, выходы и периоды индикаторов. Главный вывод: win rate оказался значительно чувствительнее к логике выхода из позиции — во всех десяти тестируемых рыночных режимах. Максимальная просадка, напротив, определялась преимущественно входом. Это нетривиально: большинство трейдеров тратят 80% времени на оптимизацию точки входа, считая выход второстепенным.

Второй ключевой результат: замена самого типа индикатора (например, RSI → MACD) меняет характеристики стратегии несравнимо сильнее, чем подбор периода внутри одного индикатора. Авторы предупреждают: если вы «тюнингуете вход», но при этом перебираете и тип индикатора, и его период — вы смешиваете два принципиально разных уровня свободы. Это прямой путь к data-snooping.

Методология: массовый grid-search по крипто-рынкам (предположительно BTC/ETH spot), десять «работ» (jobs) по направлению рынка — вероятно, бычий/медвежий/боковой режимы и их комбинации. Конкретные индикаторы и активы в аннотации не раскрыты полностью, но масштаб выборки внушает доверие к статистической устойчивости выводов.

Применимость к крипте

Исследование изначально проводилось на крипто-данных — адаптация минимальна. Для нашего стека это означает следующее: при построении стратегий на ATM IV, GEX, skew или funding нужно в первую очередь думать о структуре выхода (тейк-профит, стоп, временной выход), если цель — улучшить win rate. Если же приоритет — контроль просадки (что для опционных стратегий критично из-за гамма-риска), то фокус на входном фильтре оправдан.

Практически: при разработке, например, VRP-стратегии (продажа волатильности при высоком IV/RV-спреде) стоит зафиксировать тип входного сигнала и методично тестировать выходы — delta-хедж триггер, фиксированный DTE-выход, выход по реализованной vol. Это структурно совпадает с выводами статьи.

Тестируемо ли

Да, и хорошо ложится на наш Python-движок. Нужны: BTC/ETH OHLCV (есть), rolling-z для нормализации сигналов (есть), walk-forward с фиксированными окнами. Можно воспроизвести логику: зафиксировать один вход (например, RSI-z > 1.5), перебрать выходы (фиксированный % / ATR-стоп / временной), замерить win rate и max drawdown. Затем — зафиксировать выход и перебрать типы входных индикаторов. Данных для этого достаточно; единственное ограничение — отсутствие внутридневных тиков, если авторы тестировали на минутках.

Сомнения

Масштаб в 99 млн тестов — это одновременно сила и слабость. При таком переборе Deflated Sharpe и поправка на множественное тестирование обязательны, иначе любой «лучший» параметр — артефакт. Авторы говорят о чувствительности, а не об оптимальных значениях, что методологически честнее — но всё равно: выводы получены на конкретном историческом окне крипты (скорее всего, 2018–2024), которое включает несколько структурно разных режимов. Устойчивость разбивки «выходы → win rate, входы → просадка» в OOS не гарантирована. Кроме того, аннотация не раскрывает, учитывались ли транзакционные издержки и проскальзывание — в крипте на малых таймфреймах это меняет картину кардинально.

Следующий шаг

Поставить в bt_engine двухуровневый эксперимент на дневных BTC OHLCV (2019–2024, walk-forward 180/60 дней): зафиксировать три типа входных сигналов (RSI-z, MACD-cross, BB-touch), для каждого перебрать пять схем выхода (фиксированный %, ATR×2, временной N-дней, трейлинг-стоп, выход по противосигналу). Замерить win rate и max drawdown отдельно. Проверить гипотезу: дисперсия win rate по выходам > дисперсии по входам — и наоборот для просадки.

Результаты тестов

Проверено на наших данных до публикации (2026-09-05) — повторили дизайн автора на его же пяти перпах и его же окне: 2016 пар условий × 125 выходов × 10 работ, около 25 миллионов бэктестов, и прогнали ту же машинерию через три мира без всякой структуры. Карта чувствительности воспроизводится почти число в число. И ровно так же она воспроизводится на рядах, в которых предсказывать нечего. Это карта конструкции «тейк-профит, стоп, время жизни», а не карта крипты.

Провенанс. Статья открыта, дизайн раскрыт полностью: рынки, окно, сетка, издержки, фолды. Редкий случай, когда можно повторить, а не гадать. Отличия нашего стенда: 8 семейств индикаторов × 8 периодов (64 вариации, 2016 пар) вместо 20 × 20 у автора (79 800 пар); условия семейств наши, так как у автора они не раскрыты (SMA, ROC, RSI, z-score, Bollinger, Williams %R, CCI, фильтр объёма); CCI с упрощённым mean deviation. Остальное по букве: часовые бары BTC, ETH, BNB, XRP, SOL, окно 2021-05-28 … 2026-07-21, long и short отдельно, TP {1, 2, 4, 8, 16%} × SL {то же} × TTL {12, 48, 168, 504, 1512 баров}, 0.04% комиссии + 0.01% проскальзывания за филл, фандинг, вход по открытию бара после сигнала, выход возможен в баре входа, ничья TP и SL в одном баре — в пользу TP (реплей SL-first отдельно), фильтр «не меньше 30 сделок», OOS-прокси = walk-forward efficiency × ln(1 + total return) по его формуле, чувствительность = IQR медиан по своему блоку, делённый на IQR всех результатов работы, классификация 0.80 / 1.25.

Карта автора воспроизводится

метрика R = выходы ÷ входы, у нас (автор) работы entry / tie / exit, у нас (автор)
win rate 20.7 (20.8) 0 / 0 / 10 (0 / 0 / 10)
число сделок 0.46 (0.39) 10 / 0 / 0 (10 / 0 / 0)
максимальная просадка 0.49 (0.34) 8 / 2 / 0 (10 / 0 / 0)
total return 0.81 (0.40) 5 / 2 / 3 (7 / 3 / 0)
OOS-прокси 1.15 (0.53) 3 / 5 / 2 (6 / 3 / 1)

Одношаговые изменения одной ручки, |Δ| / IQR работы (у нас / у автора):

ручка OOS-прокси total return просадка win rate сделки
индикатор одной ноги 0.55 / 0.53 0.39 / 0.43 0.46 / 0.37 0.04 / 0.04 0.50 / 0.28
период ±1 шаг 0.20 / 0.16 0.10 / 0.11 0.12 / 0.08 0.01 / 0.01 0.02 / 0.01
TP ±1 шаг 0.32 / 0.28 0.21 / 0.19 0.23 / 0.14 0.37 / 0.36 0.10 / 0.10
SL ±1 шаг 0.34 / 0.29 0.18 / 0.19 0.21 / 0.16 0.36 / 0.34 0.19 / 0.08
TTL ±1 шаг 0.21 / 0.13 0.13 / 0.08 0.12 / 0.06 0.07 / 0.07 0.05 / 0.01

Узкий стоп (1–2%) против широкого (8–16%): +483 сделки и −29.8 п.п. win rate (у автора +324 и −31.3). Всё, что автор описал, у нас на месте. Вопрос в том, что это описывает.

Три мира без структуры дают ту же карту

Берём те же пять рынков и три раза уничтожаем в них всё, что можно предсказать: (1) знаковая рандомизация часовых доходностей — сохранены среднее, траектория волатильности и форма каждого бара, убита автокорреляция; (2) перестановка баров в случайном порядке; (3) чистое геометрическое броуновское движение с той же средней и σ. Все 10 работ, вся сетка, та же статистика:

реальные данные знаки перестановка GBM автор
win rate: R, работы 20.7, 0/0/10 20.4, 0/0/10 23.2, 0/0/10 19.3, 0/0/10 20.8, 0/0/10
сделки: R, работы 0.46, 10/0/0 0.37, 10/0/0 0.39, 10/0/0 0.22, 10/0/0 0.39, 10/0/0
просадка: R, работы 0.49, 8/2/0 0.63, 6/3/1 0.58, 8/2/0 0.54, 8/2/0 0.34, 10/0/0
total return: работы 5/2/3 4/2/4 5/2/3 3/5/2 7/3/0
OOS-прокси: работы 3/5/2 4/3/3 3/6/1 3/6/1 6/3/1
индикатор против периода (OOS) 0.55 / 0.20 0.61 / 0.20 0.66 / 0.25 0.64 / 0.23 0.53 / 0.16
взаимодействие OOS, медиана 0.68 0.80 0.84 0.73 0.91
узкий стоп: Δсделок, Δwin rate +483, −29.8 +434, −30.0 +491, −31.8 +363, −32.3 +324, −31.3

Ни одна строка карты не отличает реальный рынок от мира, в котором никакой индикатор не может ничего знать. «Повторяемость во всех десяти работах», которой автор заменил p-value, здесь гарантирована механикой: одна и та же конструкция даёт один и тот же ответ на любом ряде.

Почему: win rate — это геометрия скобки

Для бездрейфового блуждания вероятность коснуться тейка раньше стопа равна SL / (TP + SL). Медианный win rate каждого из 125 выходов на реальных данных ложится на эту формулу с корреляцией 0.999 и медианной ошибкой 0.011: TP 1% при SL 16% даёт около 94% выигрышных сделок, TP 16% при SL 1% — около 6%. Вход в эту формулу не входит вовсе, поэтому IQR медиан по выходам огромен, а по входам почти нулевой, и R ≈ 20 получается до того, как вы посмотрели на рынок. Отсюда же «узкий стоп: больше сделок, ниже win rate»: стоп срабатывает чаще, позиция освобождается раньше, следующий вход наступает быстрее. Это арифметика, и она одинакова для BTC и для монетки.

Просадка и число сделок «ведутся входом» по той же причине с другой стороны: вход задаёт частоту сделок и долю времени в рынке, а серия убытков при фиксированной скобке растёт с числом попыток.

«Взаимодействие 90.8%» измеряет шум

В полной двухфакторной таблице без повторов «взаимодействие» — это остаток после вычитания строчных и столбцовых средних. Если результат зашумлён, шум и есть этот остаток. В таблице из чистого шума наших размеров (1371 входов × 125 выходов) доля взаимодействия по построению равна (r−1)(c−1)/(rc−1) = 0.99. У автора 0.91, у нас на реальных данных 0.68, в мирах без структуры 0.73–0.84. Число говорит, насколько шумен OOS-прокси, а не о том, что «комбинация важнее ручек». Практический вывод автора (проверять финалистов как полные ячейки вход–выход) от этого не становится хуже, но обоснование у него другое: не «взаимодействие велико», а «прокси шумен».

Контекст, который таблицы прячут: при 10 б.п. за круг на часовых барах прибыльны 2–9% ячеек в long-работах и 17–29% в short-работах, медианный итог за пять лет от −41% до −86%. OOS-прокси ранжирует в основном проигрышные стратегии; сама статья эджа и не обещает.

«Индикатор важнее периода» — свойство сетки

Соседние периоды одного индикатора дают почти те же сигналы, смена семейства меняет их целиком, поэтому шаг периода двигает результат меньше, чем смена индикатора, на любом ряде: 0.61–0.66 против 0.20–0.25 в мирах без структуры при 0.55 против 0.20 на реальных данных. Это верно и полезно как порядок операций (сначала структура, потом тонкая настройка), но это утверждение о том, как устроен перебор, а не о рынке.

На дневных барах карта другая

Та же сетка входов и та же скобка на дневных барах BTC и ETH (2019–2026, TTL 2–63 дня, четыре работы): просадка становится exit-led во всех четырёх (R 1.82 против 0.49 на часовых), R по win rate падает до 7.6, узкий стоп добавляет +21 сделку вместо +483. Скобка 1–16% относительно дневного хода — другая геометрия, и карта меняется вместе с ней. Автор это предвидел («дневные акции или очень короткие фьючерсы могут дать другую карту»), но причина не в активе, а в отношении размера скобки к размеру бара. Реплей SL-first меняет только тени: win rate R 18.3, просадка 7/3/0.

Санитария

Цепочки сделок для 12 ячеек пересчитаны явным циклом по барам с касаниями по high/low, TTL, ничьей, комиссиями и фандингом — совпадение до 10⁻⁹; поиск первого касания сверен с наивным сканом на 300 случайных датах; на симулированном бездрейфовом блуждании win rate выходов совпал с SL/(TP+SL) с максимальной ошибкой 0.04; повторный прогон побитово тот же; в мире знаков модули отклонений и тени баров сохранены точно, в перестановке сохранено мультимножество доходностей, в GBM — среднее и σ; условия входа на префиксе ряда совпадают с условиями на полном ряде (сигнал бара не зависит от будущего); карта чувствительности пересчитана независимой реализацией на pandas.

Что это значит и где копаем дальше

Источник: Rulyfi · оригинал на английском, разбор — авторский на русском.