ШІ-система для оптимізації портфеля: підходи ML і RL

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

Розробка AI-системи оптимізації портфеля: де ламається логіка

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

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

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

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

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

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

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

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

Ефекти впровадження: швидкість реакції та стійкість портфеля

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

Швидкість реакції на сигнал

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

Стійкість портфеля

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

Зменшення ручних правок

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

Усунені класи відмов

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

Підходи до побудови моделі: порівняння режимів

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

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

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

У побудові AI-системи для оптимізації портфеля правила не скасовуються — вони залишаються обов’язковим шаром, а навчання й оптимізація стають надбудовою над ними.

Етапи роботи: від аудиту даних до передачі моделі

Роботу будуємо так, що кожен етап закінчується артефактом, який можна перевірити, а не усним «готово».

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

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

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

  2. Постановка мети й обмежень. Фіксуємо, що саме оптимізуємо: дохідність за заданого рівня ризику, відхилення від еталонного портфеля або стійкість просадки.

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

  3. Схема контуру. Описуємо, як система живе в робочому режимі: звідки надходять дані та з якою періодичністю, де вважається сигнал, хто підтверджує зміни складу, як виконується угода і де зберігається історія всіх ухвалених рішень для подальшого розбору.

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

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

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

Що передаємо на руки: код, схеми, регламенти

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

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

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

Кейс: як змінилося управління резервами після впровадження

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

Метрика До впровадження Після
Частка рішень, ухвалених вручну майже всі близько п’ятої частини — погодження великих зсувів
Час реакції на зміну умов робочий день і більше хвилини, автоматичний тригер
Глибина просадки на несприятливій ділянці 16–18% 7–9%
Позапланові правки складу 3–4 на місяць 1 на квартал
Ребалансування за календарем, раз на квартал за виходом за коридор ризику

Що саме змінили

Заміна ручних рішень моделлю була наслідком, а не метою. Спочатку формалізували ризик-профіль і коридори допустимих ваг, потім навчили агента на історії самого портфеля — підходи до розмітки та валідації взяли з Advances in Financial Machine Learning.

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

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

Час реакції перестав бути обмеженням — вузьким місцем стала лише процедура погодження великих зсувів.

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

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

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

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

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

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

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

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

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

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

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

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

Даних мало і вони різнорідні — що робити?

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

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

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

Як ви контролюєте перенавчання?

Валідація йде послідовними вікнами: навчання на минулому, перевірка на наступній ділянці з обов’язковим розривом між ними, щоб унеможливити витік майбутніх значень.

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

Хто відповідає за рішення системи?

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

Як це вбудувати в робочий контур?

Дотримуємося CRISP-DM за етапами життєвого циклу: пілот іде в окремому контурі на копії даних, доступ до продуктивного середовища — лише на читання.

Зв’язок з обліковими системами — через програмний інтерфейс і черги обміну, розкочування на частину портфеля з можливістю відкотити версію.

Обговоримо задачу: що підготувати до першої зустрічі

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

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

  • Поточний контур рішень: як портфель формується зараз — за правилом, за календарем чи за відхиленням від цільових часток, хто затверджує зміни, де зберігається історія версій портфеля.
  • Вимоги до даних: джерела котирувань і угод, глибина історії, валюта та часовий пояс обліку, корпоративні дії (дивіденди, дроблення), як обробляються пропуски та викиди. Формат вивантаження — CSV або Parquet, разове воно чи за розкладом.
  • Обмеження щодо ризику: ліміти на інструмент і на сектор, допустима просадка, список заборонених активів, вимоги регламенту або регулятора, які не можна порушувати за жодного сценарію.
  • Доступи та середовище: доступ до даних лише на читання, тестовий контур брокера, куди система віддає результат — файл, таблиця або виклик із вашої облікової системи.
  • Критерії приймання: чим вимірюємо результат — дохідність щодо еталонного портфеля, максимальна просадка, частка ручних втручань у рекомендації.
  • Склад команди та ролі: хто відповідає за дані, хто за ризик-контроль, хто ухвалює фінальне рішення щодо угоди.

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

Напрямки AI-розробки

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

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