Розробка GAN для генерації ринкових сценаріїв під ключ

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

GAN-генерація ринкових сценаріїв: чому тести не ловлять ризик

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

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

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

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

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

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

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

Вимірний ефект: покриття рідкісних режимів і стійкість стратегій

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

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

Генератор навчається на біржових архівах і котирувальних стрічках (Refinitiv і внутрішні джерела) та синтезує саме те, чого у вибірці мало: розриви ліквідності, зміну кореляцій, затяжні тренди з рідкісними відкатами.

Частка ручних сценаріїв у наборі перевірок падає з приблизно 70% до 10–15%, а покриття рідкісних подій зростає з поодиноких епізодів до кількох десятків на горизонт.

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

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

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

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

Способи навчання моделі: порівняння режимів і обмежень

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

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

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

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

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

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

Як проходить впровадження: етапи інженерної роботи

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

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

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

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

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

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

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

Замовник — команда ризик-контролю за ринковими позиціями. Набір тестів для моделі ризику збирався вручну: аналітики вирізали вікна з історії й добудовували рідкісні режими правками.

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

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

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

Метрика До Після
Покриття рідкісних режимів у наборі 8% 74%
Частка відбракованих синтетичних сценаріїв 61% 12%
Час збирання набору тестів 9 робочих днів 1 день
Прогони навчання, що завершилися виродженням 4 з 5 1 з 12

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

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

Чим нейромережевий підхід відрізняється від статистичних моделей?

Статистична модель задає форму розподілу заздалегідь і оцінює кілька параметрів — так влаштована, наприклад, методологія RiskMetrics.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Як зрозуміти, що модель перенавчилася на вузькому відрізку історії?

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

Що робити, якщо історичних даних мало?

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

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

Щоб оцінка задачі спиралася на факти, а не на припущення, потрібен короткий розбір: які ринкові сценарії має видавати GAN-модель, на якій історії вона навчається та як ви будете перевіряти результат. Нижче — що підготувати з боку замовника; нічого понад це на першому кроці не потрібно.

  • Постановка й режими. Які сценарії генеруємо — трендові, бокові, стресові; горизонт, крок за часом і що вважається правдоподібним результатом.
  • Вихідні дані. Історія котирувань або угод: глибина, частота, джерела, відомі пропуски та викиди. Чим раніше побачимо реальні вивантаження, тим точніше оцінимо терміни.
  • Доступи й погодження. Тестовий контур, облікові записи, правила роботи з чутливими даними, чи потрібне знеособлення й хто підписує доступ.
  • Обмеження. Внутрішні та регуляторні вимоги: що з даними робити не можна й де результат повинен залишатися всередині вашого контуру.
  • Відповідальний за приймання. Хто приймає роботу й за якими критеріями — порівняння з історією, статистичні показники, експертна оцінка аналітиків.
  • Технічний контакт. Інженер або аналітик, який відповість на уточнювальні питання щодо даних, форматів вивантаження та вашої інфраструктури.

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

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

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

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