Розробка системи розрахунку Sortino Ratio для криптостратегій

Дохідність стратегії зростає, а коефіцієнт ризику обчислюють за формулами, які не враховують асиметрію крипторинку. Ми розробляємо системи розрахунку Sortino Ratio під ключ: від збору історії угод до регламенту перерахунку. Замовник отримує зіставну оцінку стратегій і зрозумілий звіт для рішення щодо капіталу.
Часті запитання

Чому Sortino Ratio викривляє оцінку криптостратегій

Sortino Ratio ділить середню дохідність стратегії на відхилення лише за від’ємними значеннями. На потоці із сотень однотипних угод формула працює.

У криптостратегіях результат часто формують 3-5 великих позицій за місяць, а решта інтервалів закриті в нуль: усереднення за календарними вікнами розмиває викид, а відхилення рахується за шумом порожніх періодів.

Друге джерело викривлення показника ризику — поріг мінімально прийнятної дохідності. Якщо він заданий як середня дохідність самої стратегії, метрика стає тавтологією: що сильніша стратегія, то вищий поріг і то більше її угод записується в ризик. Ранжування перевертається — перше місце посідає рівний потік дрібних угод.

Формула не бачить порядок угод і глибину просідання стратегії. Два портфелі з однаковим набором дохідностей, але різною послідовністю дають різне просідання: серія збитків підряд призводить до маржинальних вимог і примусового закриття позицій, а метрика в обох однакова. Час відновлення після просідання в розрахунок узагалі не входить.

Підсумок передбачуваний: стратегія з рідкими великими угодами та контрольованим ризиком програє в рейтингу стратегії з частим дрібним шумом, яка глибше просідає й довше відновлюється.

Розбираємо, як закриваємо це в оцінці дохідності стратегії: рахуємо за угодами, а не за календарними вікнами, і додаємо просідання та час відновлення.

Що дає коректний розрахунок Sortino Ratio

Коректний розрахунок починається з однієї домовленості: у відхилення потрапляють лише дохідності нижче цільового рівня, а не весь розкид.

Якщо одна команда рахує напівдисперсію від нуля, а інша — від безризикової ставки, дві стратегії з однаковим профілем ризику отримують різні коефіцієнти, і зіставність стратегій зникає.

Варіант порога Коли підходить Обмеження
Цільова дохідність інвестора Зіставлення під конкретне завдання капіталу Поріг фіксується до розрахунку, інакше підгонка під результат
Безризикова ставка Порівняння з класичними класами активів Ставка змінюється за періодами, потрібна єдина база
Нуль Швидка оцінка «вище або нижче точки входу» Не відображає вартість упущеної альтернативи

Окремо фіксуємо частоту ряду та правила приведення до річної шкали: денні й годинні дані дають різні значення, якщо агрегація не обумовлена.

На коротких вибірках коефіцієнт нестійкий, тому рахуємо довірчий інтервал перестановочним тестом і відкидаємо стратегії, де нижня межа не виходить за одиницю — так оцінка ризику за просіданнями не ламається від одного викиду.

Просідання рахуємо за єдиним правилом: глибина від піку до мінімуму, час відновлення до нового піку та частка часу під водою.

Тоді метрики криптостратегій стають відтворюваним числом, а не результатом ручної правки в таблиці, і обґрунтування вибору стратегії спирається на розкриття методики в дусі GIPS, а не на зручну вибірку періоду.

Формати розрахунку: історія, за угодами, гібрид

Розрахунок Sortino Ratio впирається не у формулу, а в джерело дохідностей. Ми підтримуємо три режими розрахунку показника: розрахунок на історичних даних, розрахунок за потоком угод і гібридний, де довга історія доповнюється фактичними виконаннями. Вибраний режим задає вимоги до даних і стійкість показника на коротких вікнах.

Режим Коли підходить Обмеження
Розрахунок на історичних даних Порівняння стратегій на одному довгому вікні Потрібен безперервний ряд: пропуски й розриви ліквідності викривляють знаменник
Розрахунок за потоком угод Оцінка конкретної стратегії за фактичними виконаннями Чутливий до повноти журналу: комісії та часткові виконання доводиться приводити до єдиного вигляду
Гібридний розрахунок Періоди, де історичної глибини не вистачає Складніше звіряння — узгодження шкал часу та захист від подвійного обліку

Як вибрати режим

На історичних даних результат зіставний між стратегіями, але згладжує рідкі просідання. Потік угод точніше відображає реальну дохідність, зате на короткій вибірці показник шумить.

Гібрид закриває нестачу глибини, але потребує явної межі: де закінчується історія і починається журнал виконань. Ми фіксуємо це правило в конфігурації розрахунку, щоб повторний перерахунок на нових даних давав той самий результат.

Як будується система розрахунку коефіцієнта

Формула Sortino Ratio вміщується в один рядок, але підсумок здебільшого визначається не нею, а тим, що потрапило в дохіднісний ряд і як домовилися рахувати відхилення вниз.

Розбираємо порядок робіт, за яким розрахунок доводиться від сирих вивантажень до регламенту, якому можна довіряти на довгій історії.

  1. Аудит джерел і повноти даних. Звіряємо вивантаження з торгових систем і біржових звітів, шукаємо пропущені періоди, дублікати угод, розбіжність часових поясів і операції, які не потрапили в жоден звіт.
  2. Нормалізація даних угод. Приводимо все до єдиної часової шкали та однієї валюти обліку, розгортаємо часткові виконання, розкладаємо комісії та плату за перенесення позиції за угодами, позначаємо відновлені й оціночні записи окремою ознакою.
  3. Узгодження схеми розрахунку. Фіксуємо цільову дохідність, довжину вікна, крок перерахунку, спосіб агрегування дохідностей і правило обробки неповних періодів, щоб результат не змінювався від зміни виконавця.
  4. Упровадження системи розрахунку. Збираємо розрахункове ядро, версіонуємо методику разом із кодом, проганяємо на всій доступній історії та звіряємо з контрольними прикладами, порахованими вручну.
  5. Перевірка стійкості результату. Зсуваємо вікно, змінюємо крок, прибираємо окремі викиди, окремо дивимося кризові відрізки: коефіцієнт не повинен стрибати від косметичних правок у даних.
  6. Регламент перерахунку. Описуємо тригери — надходження нових даних, уточнення історії, зміна методики, — порядок затвердження версії та спосіб повернутися до попереднього розрахунку.
  7. Передача та приймання. Документація з методики, панель моніторингу, оповіщення про розбіжності з минулим розрахунком і навчання вашої команди.

Кожен етап закривається артефактом: картою джерел, специфікацією полів, тестовими вікнами та підписаною версією методики. Так результат відтворюється через місяці й не залежить від того, хто саме запустив перерахунок.

Конфігурації, схеми та регламент перерахунку

Після впровадження у команди замовника залишається не лише працюючий сервіс, а й комплект артефактів, за якими розрахунок можна перевіряти, розвивати й передавати між інженерами без нас.

Нижче — мінімальний набір, який ми фіксуємо на прийманні; кожен пункт має власника та місце зберігання.

  • Конфігурації розрахунку — вікно оцінки, мінімально прийнятна дохідність, частота перерахунку, правила ануалізації, обробка пропусків у котируваннях; з описом кожного параметра та значеннями за замовчуванням.
  • Схема конвеєра розрахунку — шлях від приймання котирувань і угод до публікації метрики: де дані нормалізуються, де виділяється відхилення вниз, де результати агрегуються за стратегіями та періодами.
  • Документація з розрахунку — формули Sortino, правила відсікання викидів, поведінка при нульовому або близькому до нуля відхиленні вниз, вибір базової дохідності та розбір на історичних рядах.
  • Еталонні приклади — короткі ряди дохідностей із заздалегідь порахованими значеннями: прогін на них показує, чи не зсунулася метрика після правок коду.
  • Політики доступу до даних — ролі, підключення до джерел лише на читання, розмежування історичних рядів, журнал звернень до чутливих полів.
  • Регламент перерахунку — розклад запусків, повторюваність результатів при однаковому вході, версіонування розрахунків, порядок довантаження історії та перерахунку закритих періодів.
  • Інструкція з інцидентів — типові збої джерела, розбіжність із контрольним значенням, відкат на попередню версію розрахунку та порядок оповіщення відповідальних.
  • Передача команді — розбір коду з інженерами замовника, запис сесій, матриця відповідальних і список перших доопрацювань.

Кейс: оцінка стратегії на волатильному ринку

Керуючий портфелем криптостратегій прийшов із конкретною проблемою: ранжування за Sortino Ratio не збігалося з тим, як стратегії поводилися після запуску.

Метрику рахували через стандартне відхилення всієї дохідності, без мінімально прийнятної дохідності та нормування на горизонт. На волатильному ринку висновок виходив зворотний: стратегія з рідкими провалами виглядала стійкішою за ту, що зростала з короткими відкатами.

Де ламалася методика

Розбір показав три джерела розбіжностей. Цінові ряди з CoinGecko і з біржових вивантажень надходили з різною частотою, пропуски закривалися перенесенням останньої ціни — рідкі обвали губилися.

Дохідність не нормувалася до річного горизонту, тому стратегії з різною довжиною історії було не порівняти. А в знаменнику стояла повна волатильність, хоча Sortino карає лише від’ємні відхилення.

Що змінили

Ми переписали розрахунок: низхідне відхилення рахувалося відносно заданої мінімально прийнятної дохідності, горизонт приводився до річного, пропуски в рядах відновлювалися за єдиним правилом.

До переходу із сорока стратегій одинадцять потрапляли в портфель і після запуску не підтверджували профіль ризику, а дві сильні відсіювалися як недостатньо дохідні. Розкид оцінки між аналітиками сягав 0,8 пункту, звіт збирався два дні.

Після переходу помилкових відсівів залишилося два випадки, розкид оцінки впав нижче 0,05, звіт формується автоматично, і рішення щодо складу портфеля ухвалюються на зіставних числах.

Чим оцінка за просіданнями відрізняється від оцінки за волатильністю

Оцінка за волатильністю симетрична: відхилення дохідності і вгору, і вниз потрапляє в розрахунок однаково. Тому стратегія з рідкими великими прибутковими угодами отримує завищену оцінку ризику — зростання роздуває стандартне відхилення, хоча втрат не було.

Оцінка за просіданнями враховує лише відхилення нижче мінімально прийнятної дохідності. Знаменник такого показника — середній квадрат від’ємних відхилень, а не повний розкид; саме цю логіку заклав Sortino, відокремивши покарання за збиток від нагороди за прибуток.

Різниця проявляється на асиметричних розподілах. У трендових, опціонних і подієвих стратегій волатильність систематично занижує ризик, і порівняння показників ризику за нею дає неправильний порядок.

У маркет-нейтрального арбітражу розподіл близький до симетричного, і обидва показники ранжують стратегії майже однаково.

Вибір залежить від питання: «наскільки широко гуляє результат» або «скільки втрачаю, коли помиляюся». Для відбору стратегій і контролю просідань ближче друге; волатильність залишається корисною для оцінки розміру позиції та навантаження на капітал.

Порівнювати метрики коректно лише за одного вікна розрахунку, однієї частоти перерахунку й одного порогу дохідності. Перехід із денної частоти на тижневу змінює обидва числа настільки, що висновок про перевагу стратегії може перевернутися.

Технічні сумніви: дані, перерахунок, стійкість

Будь-який сумнів щодо розрахунку Sortino зводиться до трьох питань: звідки береться історія дохідностей, що саме відбувається під час перерахунку і чи повторюється результат.

Показник будується на низхідних відхиленнях відносно цільової дохідності, тому він чутливий до пропусків у ряду, до одиничних різких падінь і до змін складу стратегії. Нижче — розбір заперечень, які найчастіше виникають до старту.

Що з пропусками та різними джерелами котирувань?

Ряд збирається щонайменше з двох незалежних джерел, розбіжності звіряються поручково. Пропущений день не заповнюється нулем і не тягнеться середнім за тиждень — він позначається як відсутність даних, і ділянка виключається з вікна розрахунку. Інакше знаменник дробу викривляється і показник їде вгору.

Стратегія змінювала склад — показник залишається зіставним?

Ребалансування зберігаються як окремі події з датами та вагами. Безперервна ділянка рахується лише між сусідніми змінами, а при порівнянні періодів ви бачите, який із них на що спирається. Цифра за довгий відрізок без цього розмічення приховує зміну логіки, тому ми її не публікуємо.

Наскільки результат стійкий до одного сильного падіння?

До кожного значення додається оцінка стійкості: та сама метрика перераховується на усіченому ряду та з виключенням найгіршого дня. Якщо розкид версій великий, це видно у звіті, і на таку стратегію не варто спиратися при виборі. Додатково виводиться частка днів, що потрапили в низхідну частину.

Чи можна відтворити цифру через місяці?

Версія коду розрахунку, знімок вхідних даних і параметри вікна фіксуються разом із результатом. Той самий вхід дає те саме значення, а будь-яка зміна правил розрахунку потрапляє в журнал із датою — інакше спір «чому в минулому звіті було інакше» нерозв’язний.

Обговоримо задачу та повернемося з планом робіт

Щоб оцінка була предметною, а не середньою по ринку, обговоримо задачу розрахунку на ваших даних. Опишіть джерела дохідностей і парк стратегій — цього достатньо, щоб повернутися з планом упровадження, строками за етапами та складом робіт.

Що допомагає нам порахувати точно:

  • джерела даних: біржові вивантаження й архіви котирувань, глибина історії, частота зрізів, обробка пропусків і вихідних;
  • склад стратегій: як рахуються дохідності, коли проходить ребалансування, як враховуються простої та введення-виведення коштів;
  • базова ставка, відносно якої ви рахуєте перевищення, — від неї залежить вся логіка Sortino Ratio і трактування результату;
  • вікно та частота розрахунку: перерахунок за розкладом або за подією, чи потрібна історія значень і порівняння стратегій між собою;
  • формат результату: звіт для керуючого, вивантаження у вашу облікову систему або розрахунок усередині вашого контуру;
  • вимоги до відтворюваності: журнал версій методики та змін ваг, щоб розрахунок можна було захистити перед інвестором;
  • контур розміщення та доступи: де зберігаються дані, хто і на якому рівні бачить результати.

Після розбору повернемося з оцінкою строків і покроковим планом. Далі — пілот на одному напрямі стратегій, звіряння розрахунку з вашою поточною методикою та перенесення на весь парк.

Напрямки блокчейн-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1394
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1369
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    816
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1141