Кастомне gym-середовище для торгової стратегії RL

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

Кастомне gym-середовище: де ламається навчання стратегії

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

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

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

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

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

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

Розбираємо, як це закривається: що саме потрібно відтворювати в кастомному gym-середовищі, щоб торгова стратегія переносилася на бойовий контур без сюрпризів.

Ефект: збіжність, стійкість до збоїв, швидкість перевірок

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

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

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

Метрика Що фіксуємо Зрушення після переходу
Збіжність навчання кількість епізодів до виходу на плато за дохідністю коротша у 2–4 рази
Стійкість до збоїв ринку просідання на розривах ліквідності й аномальних свічках аномалії йдуть у навчання, а не лише в перевірку
Швидкість перевірки гіпотез час від правки логіки до готового звіту години замість днів, прогони паралельно й без ручних вивантажень
Ризик-метрики стратегії максимальне просідання, частка збиткових угод, час утримання позиції рахуються на кожному прогоні й потрапляють у звіт

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

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

Формати середовища: повний симулятор, історія угод, гібрид

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

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

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

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

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

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

Етапи роботи: модель ринку, логіка агента, перевірка гіпотез

Кастомне Gym-середовище — це формалізований опис вашого ринку: що агент спостерігає, чим керує і за яким правилом отримує зворотний зв'язок.

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

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

  2. Модель ринку. Фіксуємо склад вектора спостереження, крок часу, комісії, прослизання, ліміти позиції. Правила стають частиною середовища, а не коментарем у звіті.

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

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

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

  6. Стрес-перевірки. Ганяємо середовище на синтетичних режимах: сплески волатильності, розриви ліквідності, затримки виконання. Дивимося розкид результату за епізодами, а не лише середнє.

  7. Передача команді. Віддаємо код із тестами на коректність кроків, зафіксоване оточення, опис розширення середовища й порядок повторення експериментів на ваших даних.

Код, конфігурації та регламент перевірок гіпотез

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

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

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

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

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

До: перевірка не збігалася з виконанням

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

У живій торгівлі ті самі моделі давали розбіжність за денною дохідністю в 30–40%, а до реального рахунку доходили шість-сім прототипів із десяти. Кастомне gym-середовище згладжувало виконання, і агент навчався на умовах, яких на ринку не існує.

Що змінили і що це дало

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

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

  • Розбіжність стенда з живим виконанням — з 30–40% до 4–6%.
  • Відсів на стенді — з трьох-чотирьох до восьми прототипів із десяти.
  • Підготовка рішення — з кількох тижнів до 5–7 днів на ітерацію.
  • Стрес-перевірка стала регулярною: розриви ліквідності, відмови біржі та гепи програються до запуску.

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

Що робити, якщо навчання вже йде в готовому оточенні?

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

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

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

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

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

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

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

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

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

Часті запитання про навчання агента й перевірку гіпотез

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

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

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

Як переконатися, що агента не підігнано під історію?

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

Скільки триває розробка кастомного середовища?

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

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

Які вимоги до даних?

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

Кому належить код і чи зможемо розвивати середовище самі?

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

Обговоримо вашу стратегію: дані, ризик-профіль, план робіт

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

Чим точніше сформульовано постановку задачі й чим повніші дані замовника, тим менше ітерацій піде на середовище й тим раніше з'явиться перевірюваний результат.

Щоб повернутися з оцінкою та планом, чекаємо від вас:

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

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

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

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

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