Почему Sortino Ratio искажает оценку криптостратегий
Sortino Ratio делит среднюю доходность стратегии на отклонение только по отрицательным значениям. На потоке из сотен однотипных сделок формула работает. В криптостратегиях результат часто делают 3-5 крупных позиций за месяц, а остальные интервалы закрыты в ноль: усреднение по календарным окнам размывает выброс, а отклонение считается по шуму пустых периодов.
Второй источник искажения показателя риска — порог минимально приемлемой доходности. Если он задан как средняя доходность самой стратегии, метрика становится тавтологией: чем сильнее стратегия, тем выше порог и тем больше её сделок записывается в риск. Ранжирование переворачивается — первое место занимает ровный поток мелких сделок.
Формула не видит порядок сделок и глубину просадки стратегии. Два портфеля с одинаковым набором доходностей, но разной последовательностью дают разную просадку: серия убытков подряд приводит к маржинальным требованиям и принудительному закрытию позиций, а метрика у обоих одинаковая. Время восстановления после просадки в расчёт вообще не входит.
Итог предсказуем: стратегия с редкими крупными сделками и контролируемым риском проигрывает в рейтинге стратегии с частым мелким шумом, которая глубже просаживается и дольше восстанавливается. Разбираем, как закрываем это в оценке доходности стратегии: считаем по сделкам, а не по календарным окнам, и добавляем просадку и время восстановления.
Что даёт корректный расчёт Sortino Ratio
Корректный расчёт начинается с одного соглашения: в отклонение попадают только доходности ниже целевого уровня, а не весь разброс. Если одна команда считает полудисперсию от нуля, а другая — от безрисковой ставки, две стратегии с одинаковым профилем риска получают разные коэффициенты, и сопоставимость стратегий пропадает.
| Вариант порога | Когда подходит | Ограничения |
|---|---|---|
| Целевая доходность инвестора | Сопоставление под конкретную задачу капитала | Порог фиксируется до расчёта, иначе подгонка под результат |
| Безрисковая ставка | Сравнение с классическими классами активов | Ставка меняется по периодам, нужна единая база |
| Ноль | Быстрая оценка «выше или ниже точки входа» | Не отражает стоимость упущенной альтернативы |
Отдельно фиксируем частоту ряда и правила приведения к годовой шкале: дневные и часовые данные дают разные значения, если агрегация не оговорена. На коротких выборках коэффициент неустойчив, поэтому считаем доверительный интервал перестановочным тестом и отбрасываем стратегии, где нижняя граница не выходит за единицу — так оценка риска по просадкам не ломается от одного выброса.
Просадку считаем по единому правилу: глубина от пика к минимуму, время восстановления до нового пика и доля времени под водой. Тогда метрики криптостратегий становятся воспроизводимым числом, а не результатом ручной правки в таблице, и обоснование выбора стратегии опирается на раскрытие методики в духе GIPS, а не на удобную выборку периода.
Форматы расчёта: история, по сделкам, гибрид
Расчёт Sortino Ratio упирается не в формулу, а в источник доходностей. Мы поддерживаем три режима расчёта показателя: расчёт на исторических данных, расчёт по потоку сделок и гибридный, где длинная история дополняется фактическими исполнениями. Выбранный режим задаёт требования к данным и устойчивость показателя на коротких окнах.
| Режим | Когда подходит | Ограничения |
|---|---|---|
| Расчёт на исторических данных | Сравнение стратегий на одном длинном окне | Нужен непрерывный ряд: пропуски и разрывы ликвидности искажают знаменатель |
| Расчёт по потоку сделок | Оценка конкретной стратегии по фактическим исполнениям | Чувствителен к полноте журнала: комиссии и частичные исполнения приходится приводить к единому виду |
| Гибридный расчёт | Периоды, где исторической глубины не хватает | Сложнее сверка — согласование шкал времени и защита от двойного учёта |
Как выбрать режим
На исторических данных результат сопоставим между стратегиями, но сглаживает редкие просадки. Поток сделок точнее отражает реальную доходность, зато на короткой выборке показатель шумит. Гибрид закрывает нехватку глубины, но требует явной границы: где заканчивается история и начинается журнал исполнений. Мы фиксируем это правило в конфигурации расчёта, чтобы повторный пересчёт на новых данных давал тот же результат.
Как строится система расчёта коэффициента
Формула Sortino Ratio умещается в одну строку, но итог на большей части определяется не ей, а тем, что попало в доходностную серию и как договорились считать отклонение вниз. Разбираем порядок работ, по которому расчёт доводится от сырых выгрузок до регламента, которому можно доверять на длинной истории.
- Аудит источников и полноты данных. Сверяем выгрузки из торговых систем и биржевых отчётов, ищем пропущенные периоды, дубликаты сделок, разъезд часовых поясов и операции, которые не попали ни в один отчёт.
- Нормализация данных сделок. Приводим всё к единой временной шкале и одной валюте учёта, разворачиваем частичные исполнения, раскладываем комиссии и плату за перенос позиции по сделкам, помечаем восстановленные и оценочные записи отдельным признаком.
- Согласование схемы расчёта. Фиксируем целевую доходность, длину окна, шаг пересчёта, способ агрегирования доходностей и правило обработки неполных периодов, чтобы результат не менялся от смены исполнителя.
- Внедрение системы расчёта. Собираем расчётное ядро, версионируем методику вместе с кодом, прогоняем на всей доступной истории и сверяем с контрольными примерами, посчитанными вручную.
- Проверка устойчивости результата. Сдвигаем окно, меняем шаг, убираем отдельные выбросы, отдельно смотрим кризисные отрезки: коэффициент не должен прыгать от косметических правок в данных.
- Регламент пересчёта. Описываем триггеры — поступление новых данных, уточнение истории, смена методики, — порядок утверждения версии и способ вернуться к предыдущему расчёту.
- Передача и приёмка. Документация по методике, панель мониторинга, оповещения о расхождениях с прошлым расчётом и обучение вашей команды.
Каждый этап закрывается артефактом: картой источников, спецификацией полей, тестовыми окнами и подписанной версией методики. Так результат воспроизводится спустя месяцы и не зависит от того, кто именно запустил пересчёт.
Конфигурации, схемы и регламент пересчёта
После внедрения у команды заказчика остаётся не только работающий сервис, но и комплект артефактов, по которым расчёт можно проверять, развивать и передавать между инженерами без нас. Ниже — минимальный набор, который мы фиксируем на приёмке; каждый пункт имеет владельца и место хранения.
- Конфигурации расчёта — окно оценки, минимально приемлемая доходность, частота пересчёта, правила аннуализации, обработка пропусков в котировках; с описанием каждого параметра и значениями по умолчанию.
- Схема конвейера расчёта — путь от приёма котировок и сделок до публикации метрики: где данные нормализуются, где выделяется отклонение вниз, где результаты агрегируются по стратегиям и периодам.
- Документация по расчёту — формулы Sortino, правила отсечения выбросов, поведение при нулевом или близком к нулю отклонении вниз, выбор базовой доходности и разбор на исторических рядах.
- Эталонные примеры — короткие ряды доходностей с заранее посчитанными значениями: прогон на них показывает, не сдвинулась ли метрика после правок кода.
- Политики доступа к данным — роли, подключение к источникам только на чтение, разграничение исторических рядов, журнал обращений к чувствительным полям.
- Регламент пересчёта — расписание запусков, повторяемость результатов при одном и том же входе, версионирование расчётов, порядок догрузки истории и пересчёта закрытых периодов.
- Инструкция по инцидентам — типовые сбои источника, расхождение с контрольным значением, откат на предыдущую версию расчёта и порядок оповещения ответственных.
- Передача команде — разбор кода с инженерами заказчика, запись сессий, матрица ответственных и список первых доработок.
Кейс: оценка стратегии на волатильном рынке
Управляющий портфелем криптостратегий пришёл с конкретной проблемой: ранжирование по Sortino Ratio не совпадало с тем, как стратегии вели себя после запуска. Метрику считали через стандартное отклонение всей доходности, без минимально приемлемой доходности и нормировки на горизонт. На волатильном рынке вывод получался обратным: стратегия с редкими провалами выглядела устойчивее той, что росла с короткими откатами.
Где ломалась методика
Разбор показал три источника расхождений. Ценовые ряды со CoinGecko и с биржевых выгрузок приходили с разной частотой, пропуски закрывались переносом последней цены — редкие обвалы терялись. Доходность не нормировалась к годовому горизонту, поэтому стратегии с разной длиной истории было не сравнить. А в знаменателе стояла полная волатильность, хотя Sortino наказывает только отрицательные отклонения.
Что изменили
Мы переписали расчёт: нисходящее отклонение считалось относительно заданной минимально приемлемой доходности, горизонт приводился к годовому, пропуски в рядах восстанавливались по единому правилу. До перехода из сорока стратегий одиннадцать попадали в портфель и после запуска не подтверждали профиль риска, а две сильные отсеивались как недостаточно доходные. Разброс оценки между аналитиками доходил до 0,8 пункта, отчёт собирался два дня.
После перехода ошибочных отсевов осталось два случая, разброс оценки упал ниже 0,05, отчёт формируется автоматически, и решения по составу портфеля принимаются на сопоставимых числах.
Чем оценка по просадкам отличается от оценки по волатильности
Оценка по волатильности симметрична: отклонение доходности и вверх, и вниз попадает в расчёт одинаково. Поэтому стратегия с редкими крупными прибыльными сделками получает завышенную оценку риска — рост раздувает стандартное отклонение, хотя потерь не было.
Оценка по просадкам учитывает только отклонения ниже минимально приемлемой доходности. Знаменатель такого показателя — средний квадрат отрицательных отклонений, а не полный разброс; именно эту логику заложил Sortino, отделив наказание за убыток от награды за прибыль.
Разница проявляется на асимметричных распределениях. У трендовых, опционных и событийных стратегий волатильность систематически занижает риск, и сравнение показателей риска по ней даёт неверный порядок. У маркет-нейтрального арбитража распределение близко к симметричному, и оба показателя ранжируют стратегии почти одинаково.
Выбор зависит от вопроса: «насколько широко гуляет результат» или «сколько теряю, когда ошибаюсь». Для отбора стратегий и контроля просадок ближе второй; волатильность остаётся полезной для оценки размера позиции и нагрузки на капитал.
Сравнивать метрики корректно только при одном окне расчёта, одной частоте пересчёта и одном пороге доходности. Переход с дневной частоты на недельную меняет оба числа настолько, что вывод о превосходстве стратегии может перевернуться.
Технические сомнения: данные, пересчёт, устойчивость
Любое сомнение по расчёту Sortino сводится к трём вопросам: откуда берётся история доходностей, что именно происходит при пересчёте и повторяется ли результат. Показатель строится на нисходящих отклонениях относительно целевой доходности, поэтому он чувствителен к пропускам в ряду, к единичным резким падениям и к изменениям состава стратегии. Ниже — разбор возражений, которые чаще всего всплывают до старта.
Что с пропусками и разными источниками котировок?
Ряд собирается минимум из двух независимых источников, расхождения сверяются построчно. Пропущенный день не заполняется нулём и не тянется средним за неделю — он помечается как отсутствие данных, и участок исключается из окна расчёта. Иначе знаменатель дроби искажается и показатель уезжает вверх.
Стратегия меняла состав — показатель остаётся сопоставимым?
Ребалансировки хранятся как отдельные события с датами и весами. Непрерывный участок считается только между соседними изменениями, а при сравнении периодов вы видите, какой из них на что опирается. Цифра за длинный отрезок без этой разметки скрывает смену логики, поэтому мы её не публикуем.
Насколько результат устойчив к одному сильному падению?
К каждому значению прикладывается оценка устойчивости: та же метрика пересчитывается на усечённом ряде и с исключением худшего дня. Если разброс версий велик, это видно в отчёте, и на такую стратегию не стоит опираться при выборе. Дополнительно выводится доля дней, попавших в нисходящую часть.
Можно ли воспроизвести цифру спустя месяцы?
Версия кода расчёта, снимок входных данных и параметры окна фиксируются вместе с результатом. Один и тот же вход даёт то же значение, а любое изменение правил расчёта попадает в журнал с датой — иначе спор «почему в прошлом отчёте было иначе» неразрешим.
Обсудим задачу и вернёмся с планом работ
Чтобы оценка была предметной, а не средней по рынку, обсудим задачу расчёта на ваших данных. Опишите источники доходностей и парк стратегий — этого достаточно, чтобы вернуться с планом внедрения, сроками по этапам и составом работ.
Что помогает нам посчитать точно:
- источники данных: биржевые выгрузки и архивы котировок, глубина истории, частота срезов, обработка пропусков и выходных;
- состав стратегий: как считаются доходности, когда проходит ребалансировка, как учитываются простои и ввод-вывод средств;
- базовая ставка, относительно которой вы считаете превышение, — от неё зависит вся логика Sortino Ratio и трактовка результата;
- окно и частота расчёта: пересчёт по расписанию или по событию, нужна ли история значений и сравнение стратегий между собой;
- формат результата: отчёт для управляющего, выгрузка в вашу учётную систему или расчёт внутри вашего контура;
- требования к воспроизводимости: журнал версий методики и изменений весов, чтобы расчёт можно было защитить перед инвестором;
- контур размещения и доступы: где хранятся данные, кто и на каком уровне видит результаты.
После разбора вернёмся с оценкой сроков и пошаговым планом. Дальше — пилот на одном направлении стратегий, сверка расчёта с вашей текущей методикой и перенос на весь парк.







