SAC-трейдинг: чому агент втрачає стійкість на нових даних
Агент, навчений за SAC, нерідко показує рівну криву на історичних даних — і втрачає її в перші тижні реальної торгівлі.
Річ не в самій архітектурі: алгоритм з ентропійною регуляризацією розрахований на дослідження середовища, але під час навчання торгового агента середовище залишається зафіксованим — один період, один набір режимів волатильності.
Коли настає зміна ринкового режиму, розподіл дохідностей, на якому будувалася політика, перестає збігатися з поточним.
Агент продовжує вибирати дії, оптимальні для минулого: зростає частка угод, де вхід виправданий лише за логікою старого періоду, і нестабільна стратегія перетворюється на серію просадок агента.
Найгірше те, що політика навчена на вузькому діапазоні станів і за його межами поводиться майже випадково — а саме там проходить реальна торгівля.
Друга причина — методика оцінювання. Якщо якість вимірюється одним прогоном на відкладеному відрізку, вищою виявляється та модель, що вдаліше підлаштувалася під нього, а не та, що стійка.
Кілька незалежних епізодів навчання з різними стартовими умовами й перевірка на різних режимах викривають це до того, як розбіжність стане видною на реальному рахунку.
SAC-трейдинг стійкий рівно настільки, наскільки різноманітне середовище в навчанні. Дані, що покривають тренд, боковик і сплески волатильності, штраф за різку зміну позиції та явне обмеження ризику дають політику, яка не розсипається при зміні режиму. Розбираємо, як це закривається в постановці задачі та в навчанні.
Безперервне управління позицією: що це змінює для стратегії
Агент із безперервним управлінням позицією видає не сигнал «вхід/вихід», а частку капіталу в інструменті. Вона змінюється плавно, услід за впевненістю моделі, тому між «у ринку» та «поза ринком» немає розриву — а саме на ньому зазвичай і втрачається управління ризиком. Це принципово інша динаміка порівняно з дискретними сигналами.
Зниження просадки — наслідок того, що розмір позиції зрізається раніше, ніж спрацював би захисний стоп. Ми вимірюємо амплітуду просадки на ковзному вікні й дивимося поведінку на ділянках різких рухів: глибина падіння скорочується, а відновлення відбувається без ручного втручання.
Стійкість стратегії до зміни режиму тримається на ентропійній регуляризації — основі Soft Actor-Critic. Агент продовжує досліджувати й не залипає в одній поведінці, коли змінюються волатильність і кореляції інструментів.
Перевіряємо це на режимах, яких не було в навчанні: важлива не середня якість, а поведінка на межах.
Відтворюваність навчання — окремий контур роботи. Фіксуємо порядок епізодів, склад і версію історичних даних, конфігурацію та зерно генератора: повторний запуск дає той самий набір параметрів моделі, а не «приблизно таку саму». Тоді зміни перевіряються по одній і результат можна пояснити, а не перенавчати наосліп.
Окремо знімаємо клас відмов, який рідко видно у підсумкових звітах: розрив ціни на відкритті та провал ліквідності. Позиція зменшується до того, як подія реалізувалася, тому просадка залишається в межах, закладених під час навчання.
Порівняння підходів до навчання торгової стратегії
Підхід обирають за тим, який сигнал реально відрізняє прибуткові угоди від збиткових, а не за «потужністю» алгоритму.
Якщо відгук живе в розмірі позиції — потрібна безперервна постановка дій; якщо рішення зводиться до входу, виходу або паузи — дискретна навчається швидше й стабільніше. Нижче — робоче порівняння, за яким ми обираємо контур під конкретний інструмент і горизонт.
| Варіант | Коли підходить | Обмеження |
|---|---|---|
| Безперервні дії (SAC) | Розмір позиції — частина стратегії, є модель ліквідності та прослизання | Чутливий до шуму й затримок виконання, довше навчається, критичний до форми нагороди |
| Дискретні сигнали | Рішення бінарне: вхід, вихід або пауза | Немає управління ризиком через обсяг, багато хибних входів у боковику |
| Навчання на розмітці угод | Є історія угод з оцінкою якості | Не переноситься на зміну режиму ринку, успадковує зміщення розмітки |
| Правила та евристики | Потрібні прозорість, відтворюваність і аудит рішень | Не адаптуються до нової волатильності, потребують ручного перегляду |
| Гібрид | Правила задають рамки ризику, агент керує позицією всередині них | Складніша перевірка: тестуються і правила, і поведінка агента |
Сумісність перевіряємо до навчання: як підхід лягає на поточне виконання, комісії та затримки, що відбувається при відмові моделі. Гібридна схема зазвичай дає керований старт — правила не дають агенту вийти за ліміти, поки стратегія набирає статистику. Далі розбираємо, як із цього збирається робочий контур.
Етапи роботи: від постановки задачі до передачі агента
Кожен етап впровадження агента закінчується перевірюваним артефактом: описом метрики, підготовленим набором даних, конфігурацією середовища, протоколом перевірки.
Порядок не змінюємо — якщо пропустити підготовку даних або перевірку на відкладеному періоді, якість агента триматиметься на вдалому прогоні, а не на відтворюваному результаті.
- Розбір задачі та даних. Уточнюємо інструменти, горизонт утримання позиції, витрати й обмеження ліквідності; фіксуємо метрику, за якою рахуємо результат.
- Підготовка ринкових даних. Зводимо таймфрейми, розбираємо пропуски та викиди, ділимо історію на навчання, перевіркову вибірку й відкладений період — без перенесення майбутнього в минуле.
- Налаштування середовища навчання. Описуємо стан ринку й допустимі дії агента, задаємо функцію нагороди з поправкою на ризик і витрати — на цій основі SAC вчиться безперервно керувати позицією, а не вибирати сигнали.
- Навчання та підбір параметрів. Кілька прогонів із різними налаштуваннями, контроль перенавчання під один режим ринку, відбір стійких конфігурацій.
- Перевірка на відкладеному періоді. Прогін на даних, яких агент не бачив, з урахуванням комісій і прослизання; порівнюємо з базовою лінією й дивимося поведінку на спокійному та волатильному ринку.
- Підготовка до запуску й передача рішення. Ліміти за позицією та просадкою, автоматичне гальмування, стикування з брокерським контуром, потім код, конфігурації, документація й регламент перенавчання з порядком відкату.
Передача рішення: код навчання, конфігурації, регламенти
На виході проєкт закривається не демонстрацією, а комплектом, за яким ваша команда може навчити агента заново, перевірити будь-яке його рішення й зупинити в будь-який момент.
Усе, що ми робили під час розробки SAC-агента, передається вихідними кодами, конфігураціями й текстовими регламентами — без усних домовленостей, які зникають разом із підрядником.
- Код навчання та скрипти запуску: відтворюваний прогін на чистій машині — від підготовки даних до збереження ваг.
- Конфігурації середовища й нагороди: простір станів і дій, комісії, прослизання, штрафи за ризик. Змінюєте параметр — бачите, як змінюється поведінка агента.
- Журнал експериментів: прогони з гіперпараметрами, дохідністю, просадкою, зерном генератора та посиланням на артефакт — найкраща конфігурація відновлюється точно.
- Правила контролю ризику: ліміти на позицію й денний збиток, умови автоматичної зупинки, точка ручного вето.
- Регламент перенавчання: тригери (дрейф даних, деградація метрик), вікно історії, порядок валідації та випуску нової версії.
- Документація агента: ознаки, схема застосування моделі, точки логування, розбір типових відмов.
- Інструкції із супроводу та відкату: повернення на попередній артефакт і запуск агента в тіньовому режимі.
- Приймальні перевірки: прогін на відкладеному періоді та порівняння з еталонною стратегією — критерії приймання фіксуємо до здачі.
Кейс: поведінка стратегії до й після переробки агента
Агент на SAC уже торгував кошик ліквідних інструментів на Московській біржі, але результат тримався на одному режимі ринку.
Функція нагороди враховувала лише дохідність кроку, тому агент охоче набирав ризик, на трендових ділянках виглядав переконливо, а в затяжному боковику віддавав накопичене: просадка стратегії сягала третини капіталу, збиткові серії — до 13-14 угод поспіль.
Що переробили
Архітектуру залишили, змінили те, що формує поведінку. У нагороду додали штраф за просадку й доданок, що пов’язує дохідність із волатильністю, — агент став вважати ризик частиною результату, а не побічним ефектом.
У навчання додали сценарії різних режимів із пріоритетом рідкісних, обмежили розмір позиції від поточної волатильності й заборонили входи в боковику без підтвердження.
Після переробки просадка скоротилася з 34% до 11%, частка збиткових серій угод — з 47% до 22%, відношення дохідності до ризику зросло приблизно вдвічі.
Кількість угод упала на третину: менший оборот — менше витрат і менше приводів для помилки, а результат на тому самому періоді не просів.
Стійкість перевіряли окремо — на даних, що не брали участі в навчанні, зі зміною режиму з тренду в боковик і назад. Агент став рідше розвертатися на шумі й довше утримувати позицію у свій бік, розкид результату між режимами скоротився — заради цього переробку й робили.
Чим відрізняється безперервне управління від дискретного
Безперервне управління — агент на кожному кроці задає частку позиції: 0.4, 0, мінус 0.7. Дискретні сигнали — скінченний набір подій: увійти, вийти, утримати.
Звідси перша розбіжність — чутливість до затримки виконання: безперервний контур перераховує ціль постійно, і застаріла котировка перетворюється на неузгодженість між бажаною та фактичною позицією.
Дискретна схема затримку прощає — сигнал живе до наступної події, а не до наступного спостереження. Плата за це — грубість управління: агент не вміє знизити ризик частково, при несприятливому русі залишається або повна позиція, або повний вихід.
Частота перебудов теж різна: безперервна політика змінює портфель майже на кожному кроці, і комісія стає частиною функції нагороди, а не зовнішнім фактором.
| Варіант | Коли підходить | Обмеження управління |
|---|---|---|
| Безперервні дії | Ліквідний інструмент, рівний потік котировок | Чутливість до затримки та прослизання, шум у сигналі нагороди |
| Дискретні сигнали | Рідкісні входи, широкі пороги, дорога угода | Немає часткового ризику, прибуток втрачається на розворотах |
| Гібридний підхід | Дискретний тригер задає режим, політика — розмір позиції | Конфлікт правил і політики при зміні режиму |
Гібридний підхід розділяє ролі: шар правил вирішує, чи торгуємо ми взагалі, безперервна політика — наскільки глибоко. Вимоги до даних при цьому вищі — потрібен рівний потік спостережень без пропусків, інакше на розривах політика поводиться непередбачувано.
У SAC-трейдингу зазвичай будують безперервний контур: алгоритм працює з розподілом дій і штрафує надмірну впевненість, що дає рівнішу криву дохідності, а бібліотека Stable-Baselines3 закриває базову обв’язку навчання.
Обмеження підходу та технічні сумніви
Сумніви до навчання з підкріпленням виникають не на прототипі, а коли агент виходить на реальні дані та реальні ордери. Нижче — те, що інженери перевіряють першим.
Чи вистачить історичних даних для навчання?
SAC вчиться на зв’язках стан — дія — нагорода, і якість даних тут важливіша за обсяг. Лагодимо розриви та викиди в котировках, зводимо джерела до єдиної сітки часу, позначаємо періоди низької ліквідності та стежимо, щоб ознаки не підглядали майбутнє.
За короткої історії агент спочатку навчається в імітаційному середовищі, а на ринкових даних лише доучується.
Як ви розумієте, що агент перенавчився?
Перенавчання видно за розбіжністю між результатом на навчанні та на відкладеному періоді, тому валідація йде за часом, а не випадковим зрізом. Допомагають обмеження складності мережі, регуляризація та рання зупинка за метрикою поза вибіркою. Агент, який виграє лише на історичному відрізку, у роботу не йде.
Що буде із затримкою виконання?
Між сигналом і угодою завжди є розрив, і середовище навчання має жити з тією ж затримкою, що й бойовий контур. У симулятор закладаємо прослизання, комісію та час відповіді брокера, обмежуємо частоту зміни позиції. Так модель вчиться на виконанні, близькому до реального.
Чи можна вбудувати агента в наявну систему?
Агент віддає не готові заявки, а цільові ваги, які проходять через ваш ризик-модуль і брокерський шлюз: ліміт на позицію, денний стоп, автоматичне відключення при виході метрик за коридор.
Перед виведенням капіталу модель іде в тіньовому режимі на живому потоці, а відкат — повернення до попередньої версії агента.
Обговоримо задачу й повернемося з планом робіт
Щоб оцінка проєкту спиралася на факти, а не на здогадки, нам потрібні дані й розуміння обмежень середовища. Аудит даних — перший крок: дивимося глибину історії, пропуски, зміну режимів ринку та те, як ознаки поводяться на різних горизонтах. Лише після цього називаємо строк, склад етапів і ризики.
- Історію котировок і угод: інструменти, мінімальний крок ціни, глибину, обов’язково з періодами різкої волатильності.
- Склад спостережуваного стану: які ознаки агент бачить на кожному кроці й як часто вони оновлюються.
- Цільову метрику та межі ризику: що вважаємо успіхом, яка просадка допустима, які ліміти за позицією.
- Обмеження виконання: торгові вікна, доступні інструменти, заборони на короткі позиції та плече.
- Спосіб виведення рішень: куди агент віддає сигнал і як підтверджується факт виконання угоди.
- Правила аварійної зупинки: за яких умов торгівля припиняється і що відбувається з відкритими позиціями.
- Відповідального на боці замовника, який підтверджує спірні рішення щодо функції нагороди.
Перше обговорення задачі триває близько години й іде за вашою предметною областю, а не за шаблоном.
На виході ви отримуєте оцінку проєкту та план робіт за етапами з перевірюваними результатами на кожному: збір і очищення даних, середовище навчання, базові стратегії порівняння, навчання політики методом SAC, перевірка на відкладеному періоді. Опишіть задачу — повернемося з планом і межами застосовності рішення.







