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, проверка на отложенном периоде. Опишите задачу — вернёмся с планом и границами применимости решения.







