Кастомная gym среда: где ломается обучение стратегии
Среда с интерфейсом Gymnasium — это модель рынка, на которой стратегия набирает опыт: она отдаёт наблюдение, принимает действие и возвращает награду. Если модель упрощена, обучение с подкреплением сходится к решению, которого реальный рынок не подтверждает. Ошибка проявляется поздно — уже на живом счёте, когда переобучение не откатить парой параметров.
Первая точка отказа — синтетические котировки. Свечи в симуляторе рынка собирают по последней сделке, а заявка исполняется по своей цене: расходятся спред, задержка ответа брокера и частичное исполнение. Стратегия, обученная на «идеальном» исполнении, на реальных данных теряет на каждом входе.
Вторая — ликвидность. В среде агент покупает любой объём по цене закрытия, поэтому крупная позиция выглядит бесплатной. В реальности объём двигает цену, а лимитная заявка может не исполниться вовсе — проскальзывание и очередь заявок в модели просто не описаны.
Третья — функция награды и утечка будущего. Если доходность считается без комиссий, финансирования и удержания позиции, агент выбирает схемы, которые целиком съедаются издержками. Нормировка по всему набору данных и случайное перемешивание рядов подмешивают будущее в признаки: метрики на тесте выглядят отличными, а расхождение тестов и реальности становится системным.
Разбираем, как это закрывается: что именно нужно воспроизводить в кастомной gym среде, чтобы торговая стратегия переносилась на боевой контур без сюрпризов.
Эффект: сходимость, устойчивость к сбоям, скорость проверок
Перед выводом стратегии в реальный контур мы фиксируем, какие сдвиги считаем доказательством: сходимость обучения, устойчивость к аномалиям рынка, время проверки гипотез и риск-метрики. Чек-лист ниже — то, что снимается с кастомной gym-среды до и после перехода на неё: пункт, который нельзя выразить числом, в отчёт не попадает.
Сравнение имеет смысл только при одном и том же наборе случайных чисел и одном срезе рыночных данных. Отдельно проверяем воспроизводимость повторного прогона: если результаты расходятся, часть логики осталась вне среды и в отчёте её не видно.
| Метрика | Что фиксируем | Сдвиг после перехода |
|---|---|---|
| Сходимость обучения | число эпизодов до выхода на плато по доходности | короче в 2–4 раза |
| Устойчивость к сбоям рынка | просадка на разрывах ликвидности и аномальных свечах | аномалии идут в обучение, а не только в проверку |
| Скорость проверки гипотез | время от правки логики до готового отчёта | часы вместо дней, прогоны параллельно и без ручных выгрузок |
| Риск-метрики стратегии | максимальная просадка, доля убыточных сделок, время удержания позиции | считаются на каждом прогоне и попадают в отчёт |
Уходит класс отказов, который обходится дороже всего: расхождение между поведением на исторических данных и в боевом контуре, ручные склейки выгрузок и потерянные промежуточные прогоны. Когда среда одна и на обучение, и на проверку, гипотеза принимается или отбрасывается за время прогона, а не за неделю.
Форматы среды: полный симулятор, история сделок, гибрид
Кастомная gym среда строится вокруг одного из трёх режимов, и он определяет, какие действия агент вообще может исследовать. Полный симулятор даёт отклик на любое действие, но требует собственной модели влияния сделки на рынок. История сделок воспроизводит реальные данные точно, зато не пускает агента за пределы того, что уже случалось. Гибридный режим снимает часть ограничений обоих, но сложнее в настройке.
Выбирают по задаче, а не по умолчанию. Если нужно оценивать влияние стратегии на ликвидность и издержки исполнения — берут полный симулятор; если цель уточнить уже существующее поведение — историю сделок; для поиска новых сценариев с проверкой на проверенных данных — гибрид.
| Режим | Когда подходит | Уровень реализма | Ограничения |
|---|---|---|---|
| Полный симулятор | Проверка размера позиции, лимитов, реакции рынка на действия агента | Управляемый, задаётся моделью рынка | Модель расходится с реальностью, нужна калибровка и валидация |
| История сделок | Воспроизведение и уточнение поведения по фактическим данным без риска | Максимальный в пределах записанного окна | Новые действия проверить нельзя, только случившиеся сценарии |
| Гибридный режим | Предобучение на истории и дообучение в симуляторе, проверка новых сценариев | Средний, с контролем расхождения контуров | Сложнее свести оба контура: единый формат наблюдений и действий обязателен |
Реализм задаётся не самим режимом, а набором издержек: спред, задержка исполнения, частичное исполнение, отказ заявки. Если они не сходятся с фактическими сделками, агент обучится на идеальном рынке и развалится на первых реальных сделках. Поэтому мы прогоняем среду на историческом окне и сверяем результат с записями — расхождение показывает, что калибровать.
Этапы работы: модель рынка, логика агента, проверка гипотез
Кастомная Gym-среда — это формализованное описание вашего рынка: что агент наблюдает, чем управляет и по какому правилу получает обратную связь. Работа идёт от ваших данных и регламентов, а не от готового шаблона, поэтому маршрут начинается с инвентаризации и заканчивается воспроизводимым стендом, который ваша команда запускает и развивает сама.
-
Разбор данных заказчика. Проверяем глубину истории, пропуски, смещения часовых поясов, разную частоту источников. Отдельно ищем утечки будущего — из-за них агент потом «предсказывает» уже известный результат.
-
Модель рынка. Фиксируем состав вектора наблюдения, шаг времени, комиссии, проскальзывание, лимиты позиции. Правила становятся частью среды, а не комментарием в отчёте.
-
Логика агента. Определяем пространство действий: непрерывный размер позиции или дискретные уровни, ограничения риска на эпизод, условие завершения эпизода.
-
Настройка награды. Функция вознаграждения собирается из доходности с поправкой на риск и штрафов за избыточную активность — иначе обучение сходится к одной удачной сделке.
-
Проверка гипотез и базовая линия. Сначала прогоняем простые политики: удержание, равномерный вход, случайное действие. Без этой планки не понять, добавляет ли агент что-то кроме шума.
-
Стресс-проверки. Гоняем среду на синтетических режимах: всплески волатильности, разрывы ликвидности, задержки исполнения. Смотрим разброс результата по эпизодам, а не только среднее.
-
Передача команде. Отдаём код с тестами на корректность шагов, зафиксированное окружение, описание расширения среды и порядок повторения экспериментов на ваших данных.
Код, конфигурации и регламент проверок гипотез
Среда не остаётся на нашей стороне: по завершении работ заказчик получает тот же набор артефактов, с которым работали инженеры. Это не демонстрационный скрипт, а воспроизводимый контур — его можно передать внутренней команде, развернуть на своём окружении и продолжить обучение без нас.
- Код среды: пространство наблюдений, шаг симуляции, функция награды, обработка терминальных состояний — с комментариями к каждому модулю и точками расширения.
- Конфигурации обучения: параметры агента, длины эпизодов, отсечения, наборы случайных сидов — правятся в файлах, без пересборки кода.
- Схема рынка: инструменты, таймфреймы, правила формирования бара, учёт комиссий и проскальзывания, по которым считается награда.
- Политика доступа к данным: источники котировок, способ хранения, роли и права, состав записей в журналах.
- Регламент проверок: порядок прогонов — валидация, отложенный период, стресс-сценарии — и формальные критерии, по которым гипотеза отклоняется.
- Документация по среде: запуск с нуля, описание интерфейсов, типовые ошибки и ограничения окружения.
- Эталонный агент и сохранённые прогоны — точка отсчёта для сравнения новых идей.
Вместе с этим передаём журнал решений: какие гипотезы проверялись и почему закрыты. Регламент фиксирует, что считать улучшением, а что — подгонкой под историю, поэтому новая версия стратегии проходит те же ворота, что и первая.
Кейс: как мы убрали расхождение тестов с живыми сделками
До: проверка не совпадала с исполнением
Стратегия проходила проверку на истории с идеальными допущениями: заявка исполнялась мгновенно и целиком по нужной цене, комиссии учитывались усреднённо. В живой торговле те же модели давали расхождение по дневной доходности в 30–40%, а до реального счёта доходили шесть-семь прототипов из десяти. Кастомная gym-среда сглаживала исполнение, и агент учился на условиях, которых на рынке не существует.
Что изменили и что это дало
Мы переписали среду на Gymnasium: в шаг агента добавили задержку подтверждения заявки, частичные исполнения по уровням стакана, комиссии и проскальзывание как функцию объёма, лимиты позиции и обрыв соединения с восстановлением. Награда штрафует резкие перекладки портфеля, а фиксированное зерно случайности делает прогон воспроизводимым — отсев идёт по причине, а не по случайному стечению.
- Расхождение стенда с живым исполнением — с 30–40% до 4–6%.
- Отсев на стенде — с трёх-четырёх до восьми прототипов из десяти.
- Подготовка решения — с нескольких недель до 5–7 дней на итерацию.
- Стресс-проверка стала регулярной: разрывы ликвидности, отказы биржи и гэпы проигрываются до запуска.
Стенд перестал быть формальностью: стратегии сравниваются между собой в одинаковых условиях, и решение о выводе в торговлю опирается на цифры, полученные там же, где модели учатся.
Что делать, если обучение уже идёт в готовом окружении?
Готовая среда удобна на старте, но её динамика чужая: переходы, масштаб наблюдений и функция награды заданы авторами под их задачу. Политика, обученная в ней, наследует эти допущения, поэтому перенос в вашу среду — не копирование весов, а перенастройка. Разберём, что при этом сохраняется, а что приходится переучивать.
Переиспользуется больше, чем кажется: архитектура сети и схема признаков, подобранные параметры поиска, код оценки эпизодов, обвязка запусков и логирования. Всё это не зависит от модели переходов и переносится почти без правок — на этом экономится основная часть времени, которое иначе ушло бы на повторный подбор.
Переучивать придётся саму политику и нормализацию. Масштаб наблюдений и награды в новой среде другой, поэтому статистику собирают заново, иначе обучение расходится. Прежняя контрольная точка годится как начальная инициализация: она ускоряет сходимость, но финальным результатом её считать нельзя.
Миграция стратегии строится как постепенное усложнение. Сначала агент дообучается в упрощённой версии среды, затем включаются трение, издержки и задержки исполнения. Так перенос обучения идёт заметно быстрее старта с нуля, а поведение проверяется на каждом шаге, а не после всего прогона.
Порядок работы такой: аудит наработок, замер расхождения динамик старой и новой среды, и только потом решение — что переносим весами, а что переучиваем. Мы делаем это на Gym-совместимых интерфейсах, поэтому существующий контур обучения подключается к новой среде без переписывания.
Частые вопросы об обучении агента и проверке гипотез
Обучение агента — это серия экспериментов, и главный риск здесь не в реализации, а в замере: случайную прибыль легко принять за закономерность. Поэтому среду проектируем так, чтобы проверку нельзя было обойти — раздельные периоды для настройки и подтверждения, фиксированный набор начальных состояний, издержки и проскальзывание заложены в модель исполнения с первого дня.
Ниже — то, что чаще всего спрашивают до старта. Если вашего случая в списке нет, разберём его отдельно и вернёмся с оценкой и планом.
Как убедиться, что агент не подогнан под историю?
Основной критерий — поведение на подтверждающем отрезке, который не участвовал ни в настройке, ни в отборе признаков. Дополнительно прогоняем обученную политику на других инструментах и режимах рынка, где закономерность должна сохраняться, и смотрим на просадку относительно оборота. Результат, который держится только на одном отрезке, — ещё не гипотеза.
Сколько занимает разработка кастомной среды?
Сначала спецификация состояния, действий и модели исполнения, затем калибровка издержек и проверка на вырожденных стратегиях: простая политика не должна показывать прибыль. От спецификации до среды с автотестами — обычно несколько недель, срок зависит от требуемой детализации исполнения.
Какие требования к данным?
Достаточно истории сделок или баров, приведённых к единому временному шагу, с корректными корпоративными действиями и без пропусков. Лента котировок повышает точность модели исполнения, но обязательной не является.
Кому принадлежит код и сможем ли развивать среду сами?
Репозиторий, права и обученные конфигурации передаём заказчику. К среде прилагаем документацию, автотесты и перечень параметров: добавить инструмент, изменить издержки или горизонт удержания позиции можно без нашего участия.
Обсудим вашу стратегию: данные, риск-профиль, план работ
Разговор по делу начинается раньше кода: нам нужно понять, какое решение принимает агент и в каких границах ему позволено ошибаться. Чем точнее сформулирована постановка задачи и чем полнее данные заказчика, тем меньше итераций уйдёт на среду и тем раньше появится проверяемый результат.
Чтобы вернуться с оценкой и планом, ждём от вас:
- Постановка задачи — какие действия выбирает агент, что он видит на входе, когда шаг обучения считается завершённым и что означает плохой исход.
- Данные заказчика — исторические ряды и сделки в исходном виде, с частотой, пропусками и известными разрывами; приводить их к удобному виду вручную не нужно.
- Риск-профиль стратегии — допустимая просадка, лимиты на позицию, запрещённые сценарии поведения и то, что для вас хуже: недобор прибыли или резкая потеря.
- Логика вознаграждения в общих словах — за что агент получает плюс, за что штраф, какие ограничения жёсткие, а какие можно нарушать.
- Контур обучения и проверки — где считаем, на какой истории проверяем и как отделяем проверочный период от обучающего.
- Критерий приёмки — по каким числам вы поймёте, что кастомная gym-среда готова к работе, а не просто запускается без ошибок.
Дальше мы уточняем детали на созвоне, фиксируем этапы и возвращаемся с оценкой, планом работ и составом команды. Опишите задачу в удобной форме — ответим по существу и скажем, какие данные понадобятся в первую очередь.







