Что предсказывать: выбор таргета важнее архитектуры модели
Суть идеи
Cakici и Zaremba берут стандартную задачу ML-прогнозирования доходностей на акциях и задают неудобный вопрос: а что именно мы просим модель предсказывать? Сырой return в долларах? Процентный return? Ранг в кросс-секции? Z-score относительно скользящего окна? Оказывается, этот выбор — не технический нюанс, а доминирующий фактор предсказательной силы, перекрывающий эффект от смены архитектуры (линейная модель vs. градиентный бустинг vs. нейросеть).
Механизм интуитивно понятен: сырые доходности гетероскедастичны и режимозависимы — модель, обученная на спокойном рынке, видит «аномально» большие числа в кризис и теряется. Нормализованные таргеты (ранги, z-score, vol-adjusted returns) убирают этот шум и дают модели стабильный сигнал вне зависимости от абсолютного уровня волатильности. Авторы тестируют несколько вариантов представления целевой переменной и измеряют out-of-sample IC (information coefficient) и доходность long-short портфелей.
Данные у авторов — классическая акционная кросс-секция (предположительно US equities, широкая выборка), горизонт прогноза — месячный. Конкретные числа в аннотации не раскрыты, но вывод однозначный: правильно выбранный таргет даёт статистически и экономически значимый прирост качества.
Применимость к крипте
Для трейдера BTC/ETH идея переносится почти один-в-один, причём с дополнительной остротой: крипта меняет волатильностный режим радикально быстрее акций. Сырой дневной return BTC в 2021 году и в 2022-м — это буквально разные распределения. Если обучать модель на raw returns, она будет систематически недооценивать/переоценивать сигнал при смене режима.
Практическая замена: вместо raw return использовать rolling z-score доходности (окно 30–90 дней), vol-adjusted return (делить на реализованную волатильность за то же окно) или ранг среди нескольких активов (BTC, ETH, SOL и т.д.). Наш движок уже содержит rolling-z — это прямое попадание. Для опционного трейдера особенно интересен vol-adjusted таргет: он фактически предсказывает не цену, а реализованную/имплицированную волатильность в нормализованных единицах, что напрямую ложится на VRP-стратегии.
Тестируемо ли
Да, с оговорками. Наш Python-движок поддерживает rolling-z и walk-forward — это ровно то, что нужно для сравнения таргетов. Ряды: дневные/часовые споты BTC и ETH, ATM IV (для vol-adjusted версии), реализованная волатильность. Чего нет: широкой кросс-секции активов для ранговых таргетов — на двух активах ранг вырождается. Можно расширить до топ-10 ликвидных крипто-активов, но это уже другой датасет.
Важно: статья про акции, горизонт — месяц. В крипте разумный горизонт — 1–5 дней, что меняет автокорреляционную структуру. Прямой перенос числовых результатов невозможен, но методологический вывод (нормализуй таргет) — универсален.
Сомнения
Главный риск — data-snooping по выбору таргета: если перебрать 10 вариантов нормализации и выбрать лучший in-sample, OOS-деградация гарантирована. Авторы работают на акциях с длинной историей — у нас BTC с 2017 года, ETH с 2018-го, это 3–4 независимых рыночных цикла, статистика слабая. Кроме того, режимная хрупкость никуда не девается: z-score, посчитанный на окне 60 дней, в момент резкого разворота (FTX, март 2020) будет «отставать» и давать ложные сигналы именно тогда, когда это наиболее болезненно.
Следующий шаг
Поставить walk-forward сравнение трёх таргетов на дневном BTC (2018–2024): (1) raw log-return, (2) rolling z-score с окном 60 дней, (3) vol-adjusted return (log-return / realized vol 30d). Модель — простая линейная (ridge) с одним фичей (лаг-1 return). Метрика — Deflated Sharpe OOS. Цель: убедиться, что нормализация таргета улучшает OOS-IC до того, как усложнять фичи или архитектуру.
Результаты тестов
Проверено на наших данных до публикации (2026-09-05) — статья кросс-секционная (ранги акций внутри даты), поэтому прогнали её на кросс-секции крипты: 60 перпов Binance в неделю, 14 ценовых признаков, шесть форм таргета, две модели, 198 недель вне выборки. Прогноз есть и он честный: ранговый IC около 0.13 при нулевом плацебо. Но форма таргета не меняет ничего: все двенадцать ячеек дают один и тот же IC и Sharpe в пределах шума. Крипта, как и предсказывает сама статья для «микро-кэпов», — не тот мир, где ранги выигрывают.
Провенанс. Quantpedia пересказывает работу Cakici и Zaremba (SSRN 6615698): 80 000 акций, 35 рынков, 1994–2024, ансамбль ML-моделей; ранговые таргеты «почти утраивают точность и удваивают доходность» портфелей в крупных акциях, но проигрывают магнитудо-сохраняющим там, где дисперсия и скошенность доходностей высоки. Самой работы мы не воспроизводим — у нас другой класс активов, 60 имён вместо 80 000 и четыре года вместо тридцати. Мы проверяем тезис в том мире, который у нас есть, и он как раз интересен для статьи: медианная кросс-секционная дисперсия недельных доходностей перпов 8.7%, скошенность +0.85 — это «микро-кэп/EM»-режим авторов, где ранги, по их же словам, должны терять преимущество.
Стенд и предрегистрация
Дневная панель всех USDT-перпов Binance (цена, объём, фандинг; только текущие листинги — выживаемость, оговорка ниже). Недельные даты, юниверс на дату: история ≥ 280 дней, медианный 30-дневный объём ≥ $10M, топ-60 по объёму; 302 недели с ноября 2020, медиана 60 монет. Признаки (14): моментум 1w/1m/3m/6m/12m, волатильность 30/90, максимальная дневная доходность и скошенность за 30 дней, оборот 7/30, размер (лог объёма), фандинг 7/30, просадка от 52-недельного максимума; все — кросс-секционный ранг в [−1, 1], как у авторов. Таргет — лог-доходность следующей недели в шести формах: сырая, demeaned, стандартизованная (винзор ±3), процентиль, ранг в [−1, 1], гауссианизированный ранг. Модели: ridge (λ по валидации на последних 20% обучающих недель, одна процедура для всех таргетов) и нелинейная — kernel ridge с RBF-ядром через аппроксимацию Нистрёма. Walk-forward расширяющимся окном: минимум 104 недели, рефит каждые 13, таргеты известны с лагом в неделю; вне выборки — 198 недель, ноябрь 2022 — август 2026. Портфель: топ-20% по прогнозу лонг, низ-20% шорт, равные веса, 10 б.п. за сторону на смену состава, фандинг по сторонам. Сетка и решающее правило зафиксированы до прогона.
Двенадцать ячеек — один результат
| таргет | ridge: Sharpe нетто | ridge: IC (t) | Нистрём: Sharpe нетто | Нистрём: IC (t) |
|---|---|---|---|---|
| сырая доходность | 0.64 | 0.128 (7.1) | 0.57 | 0.133 (7.6) |
| demeaned | 0.52 | 0.125 (6.9) | 0.58 | 0.131 (7.2) |
| стандартизованная | 0.75 | 0.131 (7.0) | 0.61 | 0.127 (7.0) |
| процентиль = ранг [−1,1] | 0.72 | 0.132 (7.3) | 0.53 | 0.131 (7.7) |
| гауссианизированный ранг | 0.57 | 0.127 (7.3) | 0.51 | 0.127 (7.6) |
| сортировка по 12-мес. моментуму (без ML) | 0.45 | 0.052 (2.9) | ||
| плацебо: таргет перемешан при обучении | −0.01 | −0.005 (−0.3) |
IC везде 0.125–0.133; ни одна трансформация не «утраивает точность» — они неразличимы. Парные разности недельных доходностей против сырого таргета (бутстреп по неделям): стандартизованный +5.8% годовых при p = 0.22, ранговый +2.9% при p = 0.37, гауссианизированный −5.1% при p = 0.29; единственная разница с p < 0.05 — у demeaned, и она со знаком минус (−6.4%, p = 0.043, одна из десяти проверок). У нелинейной модели ни одна форма не обошла сырую. «Удвоения доходности» нет: базовый Sharpe 0.64, лучший 0.75.
Процентиль и ранг в [−1, 1] дают побитово одинаковые портфели — это аффинное преобразование одного и того же, и ridge к нему безразличен. Demeaned и сырой у ridge различаются только потому, что средняя недели входит в регрессию через свободный член по-разному; у Нистрёма они равны.
Механизм статьи виден по знаку и невидим по величине
Авторы объясняют, когда ранги проигрывают: при высокой дисперсии и скошенности кросс-секции, где величина экстремальных доходностей информативна. Делим недели по дисперсии прошлой недели (ex-ante, медиана):
| Sharpe: недели высокой / низкой дисперсии | сырая | стандартизованная | ранг | гаусс |
|---|---|---|---|---|
| ridge | 1.44 / −0.21 | 1.41 / +0.05 | 1.13 / +0.25 | 1.11 / −0.04 |
| Нистрём | 0.87 / +0.24 | 1.02 / +0.17 | 0.69 / +0.36 | 0.80 / +0.19 |
В неделях высокой дисперсии магнитудо-сохраняющие таргеты впереди рангов (1.41 против 1.13; 1.02 против 0.69), в низкой — наоборот. Знак совпадает с механизмом авторов. Но величина разниц — внутри бутстреп-шума четырёх лет, и почти весь результат любой формы сидит в неделях высокой дисперсии: там прогнозы стоят денег, в спокойные недели — почти нет.
Прогноз есть, деньги скромные
IC 0.13 при плацебо −0.005 и случайном прогнозе +0.007 — предсказание настоящее, и 14 признаков с ridge удваивают IC простой сортировки по моментуму (0.05). Однако квинтильный long/short при 10 б.п. за сторону даёт Sharpe 0.5–0.75 с просадками 54–72%, а под ротационным нулём (сдвиг панели доходностей по неделям при фиксированных позициях) ни одна ячейка не проходит: p 0.13–0.24 без поправки на меню, 0.26–0.43 с поправкой, ожидаемый максимум Sharpe для меню из 12 ячеек под нулём 0.45. Четыре года недельных данных отделяют от шума IC, но не Sharpe портфеля: это разные статистики, первая использует всю кросс-секцию, вторая — дисперсию двух квинтилей. По годам: 2023 в минусе у всех форм (−0.7…−1.0), 2024 около +0.8, 2025 +1.8…+2.1, 2026 +0.4…+0.7; лидер по форме таргета меняется каждый год.
Буква карточки: временной ряд одного актива
Карточка предлагала сравнить формы таргета для ridge на дневном BTC. Прогнали: те же признаки по одному активу, таргет — доходность следующей недели сырая / rolling-z по 60 таргетам / vol-adjusted. BTC: IC −0.07 / −0.04 / −0.10, Sharpe −0.13 / −0.53 / −0.13 при удержании 0.84; ETH: −0.07 / −0.06 / −0.11, Sharpe +0.02 / +0.40 / −0.21 при удержании 0.50. У одного актива форма таргета не спасает, потому что предсказывать нечего — тезис статьи кросс-секционный и к таймингу одного инструмента не относится.
Оговорки
Юниверс — текущие листинги Binance: делистнутые монеты отсутствуют, что смещает кросс-секционные тесты (направление для long/short неочевидно). 60 имён на четыре года против 80 000 на тридцать: минимальная различимая разница Sharpe между формами ≈ 0.7, так что «удвоение» (+0.6 к базе 0.64) сидит на границе различимости, а вот «утроение точности» (ΔIC) мы бы увидели с большим запасом — его нет.
Санитария
Свойства трансформаций (диапазоны, монотонность, нулевые средние); шум, подставленный в таргеты недель i−1 и позже, не меняет прогноз недели i; утечка таргета текущей недели в обучение поднимает IC с 0.015 до 0.212 — стенд лукахед видит; ridge при λ → 0 совпадает с МНК до 10⁻¹³; портфель одной недели пересчитан руками; Нистрём детерминирован; ранговая корреляция сверена независимой реализацией.
Где копаем дальше
- Сам кросс-секционный прогноз интереснее вопроса статьи: IC 0.13 при нулевом плацебо — самое сильное, что мы видели на крипто-кросс-секции. Следующие вопросы — выживаемость юниверса, реальный оборот квинтилей, бета-нейтральность и форвард-трек; о результатах сообщим.
- Форму таргета в крипте выбирать не нужно: raw ≈ std ≈ rank. Если авторы правы, это и есть их предсказание для мира с высокой дисперсией; проверить его сильнее можно, когда наберётся история на второй цикл.
- Читатели с собственным набором признаков или юниверсом — пришлите определение, прогоним на том же стенде и опубликуем с указанием автора.