Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3679

 
Maxim Dmitrievsky #:
Если новости окажутся слишком паршивыми, то прятаться будет уже не от кого :)
А при достаточной их паршивости - также некому и негде)
 
Но подходящая для МО-трейдинга платформа не помешала бы. С кастомными событиями и нормальной синхронизацией событий на истории.
 
Aleksey Nikolayev #:

Чисто теоретический вопрос. Задумался по поводу приложения идей ансамблирования из МО к набору ТС.

Проще всего, наверно, бэггинг - просто портфель из независимых ТС. Общая позиция определяется как суммарная или средняя от позиций отдельных ТС.

Стакинг - система из нескольких взаимодействующих ТС, где работа одних как-то зависит от работы других. Идея более-менее понятна, хотя и сложно её описать однозначно - вариантов может быть огромное количество.

Непонятно с бустингом. Возможно, что-то вроде последовательности ТС, каждая из которых улучшает работу портфеля из предыдущих ТС (уменьшает просадку и тд)

Ответ от Дипсика:

Применение бустинга к ансамблю торговых систем (ТС) требует адаптации его ключевых принципов — последовательного улучшения с акцентом на коррекцию ошибок предыдущих моделей. Вот основные идеи и подходы:


1. Базовые принципы бустинга в контексте ТС

  • Последовательная коррекция: Каждая новая ТС фокусируется на "слабых местах" ансамбля (например, убыточных сделках, просадках, избыточном риске).

  • Динамическое взвешивание: Вклад каждой ТС в общую позицию зависит от её текущей эффективности (аналог весов в градиентном бустинге).

  • Адаптация к остаточным ошибкам: Последующие ТС обучаются на данных, где предыдущие системы показали низкую результативность.


2. Конкретные реализации

a) Коррекция просадок

  • Пример:

    • ТС-1 генерирует базовые сигналы (например, трендовая стратегия).

    • ТС-2 анализирует периоды просадок ТС-1 и активирует хеджирующие позиции (например, контртрендовые сделки) в моменты высокой волатильности.

    • ТС-3 оптимизирует размер позиции, уменьшая риск в зонах, где ТС-1 и ТС-2 конфликтуют.

b) Мета-управление рисками

  • Каждая последующая ТС вводит дополнительные правила:

    • Динамический стоп-лосс на уровне ансамбля.

    • Корректировка размера лота в зависимости от "доверия" к предыдущим ТС (например, уменьшение позиции при расхождении сигналов).

c) Градиентный бустинг для торговых стратегий

  • Формализация задачи как минимизации "функции потерь" портфеля:

    • Цель: Каждая новая ТС уменьшает совокупную просадку или повышает Sharpe Ratio.

    • Метод: Обучение ТС на исторических данных с акцентом на периоды, где текущий ансамбль показал худшие результаты (аналог остатков в регрессии).


3. Пример архитектуры

  1. Базовый уровень:

    • Ансамбль из независимых ТС (бэггинг).

    • Общая позиция = средневзвешенная сигналов.

  2. Бустирующий слой:

    • ТС-A: Анализирует убыточные сделки базового ансамбля и генерирует противоположные сигналы для их частичной компенсации.

    • ТС-B: Оптимизирует распределение капитала между ТС, увеличивая вес систем с лучшей近期 эффективностью (скользящее окно).

  3. Мета-стратегия:

    • Использует ML-модель (например, градиентный бустинг) для прогноза оптимального сочетания сигналов всех ТС на основе текущих рыночных условий.


4. Преимущества и риски

  • Плюсы:

    • Снижение просадок за счет компенсации слабых мест отдельных ТС.

    • Адаптивность к меняющимся рыночным условиям.

  • Риски:

    • Переобучение на исторических данных (особенно при частой перестройке весов).

    • Усложнение инфраструктуры и рост транзакционных издержек.

    • Возможная интерференция сигналов (например, конфликт трендовых и контртрендовых стратегий).


5. Практические шаги для внедрения

  1. Определите "функцию потерь" для ансамбля (например, максимальная просадка, volatility).

  2. Реализуйте механизм последовательного добавления ТС, каждая из которых минимизирует эту функцию.

  3. Введите динамическое взвешивание сигналов (например, на основе скользящего Sharpe Ratio).

  4. Тестируйте на длительной истории с учетом разных рыночных режимов (тренд, флэт, шоковые события).


Ключевая мысль

Бустинг в трейдинге — это не просто "последовательность ТС", а система обратной связи, где каждая новая стратегия целенаправленно улучшает метрики ансамбля, фокусируясь на его текущих слабостях. Это требует глубокой интеграции между компонентами и строгого контроля за переобучением.

 
Историю почти идеально запомнить можно и одним деревом. Что-то про успешность на новых данных ни слова.
У меня та же ситуация, как у СанСаныча.
Идеально заучивать и не надо, надо закономерности находить, обобщение. Но как получить обобщение, а не просто недообучение?
 
Forester #:
Историю почти идеально запомнить можно и одним деревом. Что-то про успешность на новых данных ни слова.
У меня та же ситуация, как у СанСаныча.
Идеально заучивать и не надо, надо закономерности находить, обобщение. Но как получить обобщение, а не просто недообучение?

Не первый раз пытаюсь поднять этот вопрос: все прекрасно на этапе обучения и рандомный результат при пошаговом прогоне.

А это говорит о том, что не имеет смысла любые ухищрения на этапе обучения - достаточно чего-то примитивного.

А если вникнуть, то рандомный результата на пошаговом прогоне - это означает, что те паттерны, который нашло МО на истории НЕ существуют в будущем. И обсуждать на стационарность паттернов.

 
Forester #:
Историю почти идеально запомнить можно и одним деревом. Что-то про успешность на новых данных ни слова.
У меня та же ситуация, как у СанСаныча.
Идеально заучивать и не надо, надо закономерности находить, обобщение. Но как получить обобщение, а не просто недообучение?

1. отказаться употреблять в мышлении понятия "переобучение" и "недообучение" как субъективных и неимеющих количественной оценки.
2. отказаться от применения детерминированных методов, которые действительно годны только для сбора статистики.
3. если метод не работает на новых данных, значит он не моделирует истинный процесс (см п. 1 и п. 2)
4. метод, моделирующий истинный процесс (закономерности), будет иметь 100% возможной фитнеса, нет в этом случае никакого "недообучения", (см п. 1, п. 2, п. 3)
 
Forester #:
Историю почти идеально запомнить можно и одним деревом. Что-то про успешность на новых данных ни слова.
У меня та же ситуация, как у СанСаныча.
Идеально заучивать и не надо, надо закономерности находить, обобщение. Но как получить обобщение, а не просто недообучение?

1) Каждый паттерн стремится к уникальности, если сравнивать цены между собой. С каждой новой ценой о окне сравнение (первая цена со второй, первая с третьей, вторая с третьей и тд), «уникальность» увеличивается в разы. 
Тоже самое и при форматировании ценового пространства в упрощённые модели: скаждым новым сравнением «уникальность» увеличивается и фигура, у которой сравниваются пару десятков опорных точек встретится в будущем через 120 лет. 

2) Шахматы имеют условно бесконечное количество паттернов. Но машина учится играть бесконечно правильно и бесконечно сильно. 
3D-пространство имеет бесконечное число состояний агента, начиная от начальной точки, заканчивая соотношением углов сгиба конечностей его болванки, помноженное на каждый пиксель-воксель и тд. Но машина учится ходить, играть, и выигрывать, не изучая все эти состояния. 

Можно ли как-то применить методы "оттуда", чтобы пустить агента на график. 
Агент будет видеть постоянно бесконечную картину паттернов "много входных данных (по сути - голый график), но как-то обучаться "выигрывать" в этой среде. 

 
СанСаныч Фоменко #:

А это говорит о том, что не имеет смысла любые ухищрения на этапе обучения - достаточно чего-то примитивного.

Бывает, что и 1 дерево разделенное на 2-3 сплита показывает результаты лучше, чем более глубокие деревья/леса.
Но это уже слишком примитивно. Хочется чего-то более точного. И при такой грубой модели будет много неудачных сделок, что опускает профит фактор почти к 1 и ниже. 

Ivan Butko #:

Тоже самое и при форматировании ценового пространства в упрощённые модели: скаждым новым сравнением «уникальность» увеличивается и фигура, у которой сравниваются пару десятков опорных точек встретится в будущем через 120 лет.

видимо потому 3 сплита и показывают хороший результат. Оставляя модель очень грубой и не заучивая уникальные особенности

Andrey Dik #:

4. метод, моделирующий истинный процесс (закономерности), будет иметь 100% возможной фитнеса, нет в этом случае никакого "недообучения", (см п. 1, п. 2, п. 3)

Проблема и с закономерностями (есть ли они, и насколько сильны) и с методами для их поиска.

 

Ну, вообще говоря, ансамблирование в МО имеет смысл если есть слабые алгоритмы, которые хоть немного, но всё же работают.

Соответственно, ансамблируемые ТС должны давать хотя бы небольшую прибыль. Общепринято собирать такие модели в портфели - по сути бэггинг.

Вопрос (теоретический) был по сути о том, что можно ли вместо портфелирования этих слабых ТС придумать какую-то более сложную процедуру вроде бустинга.

[Удален]  
Aleksey Nikolayev #:
Но подходящая для МО-трейдинга платформа не помешала бы. С кастомными событиями и нормальной синхронизацией событий на истории.
Может быть да. Я строю ТС на базе подхода к торговле, но не платформы. Потом делаю обвязку в виде коннектора или переноса в существующую платформу. В общем-то это самая малая часть работы. Сложнее всего придумать сам подход, к сожалению :) новый подход придумывается только в процессе медитации, бывает что даже коньячной