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

 
Maxim Dmitrievsky #:

затем еще можно погонять модели в оптимизаторе МТ5 для подстройки параметров стоп лосса и тп

А через что это делать? Или речь о моделях написанных на MQL5?

 
Replikant_mih #:

А через что это делать? Или речь о моделях написанных на MQL5?

Либо перенесённых, можете посмотреть статьи про catboost на этом сайте (поиск). Мои или Алексея.

Зы. Поскольку преимущество нейронок на табличных данных и временных рядах перед бустингом никем не доказано, то как бы а смысл ещё что-то переносить…
 
Maxim Dmitrievsky #:
Либо перенесённых, можете посмотреть статьи про catboost на этом сайте (поиск). Мои или Алексея.

Зы. Поскольку преимущество нейронок на табличных данных и временных рядах перед бустингом никем не доказано, то как бы а смысл ещё что-то переносить…

Мм, самую мякотку про то, как от питона перешли в MQL5 я не понял, но понял, что, видимо, используя функцию из стать https://www.mql5.com/ru/articles/8642 можно катбуст модели дергать из mql5 кода. Я XGBoost использую в основном, но можно и катбуст - одна малина). Про нейросети и табличные данные согласен. Я так понимаю, используя код из статьи я могу модели катбуста юзать, а других библиотек - нет. Ну тоже хорошо. Сейчас я использую подход, где я не ограничен в выборе Python библиотек - дергаю модели из mql5 кода через API на питоне. В этом случае не ограничен в библиотеках, но медленней, в вариант из статьи - ограничение по библиотекам, но, видимо, но порядок/порядки быстрее.

Градиентный бустинг (CatBoost) в задачах построения торговых систем. Наивный подход
Градиентный бустинг (CatBoost) в задачах построения торговых систем. Наивный подход
  • www.mql5.com
Обучение классификатора CatBoost на языке Python и экспорт модели в mql5 формат, а также разбор параметров модели и кастомный тестер стратегий. Для подготовки данных и обучения модели используется язык программирования Python и библиотека MetaTrader5.
 
mytarmailS #:
Да, именно так я и представляю..  Восстановить ОП и потом через PCA  визуализировать...
Суть задуманого я уже объяснял,  на пред. Странице есть картинки

Честно говоря, смысла в этом немного. Маломерная проекция в принципе не может отобразить всё то что может быть в многомерном случае. Экстремумы, например, могут быть седловыми точками - максимум по одним переменным и минимум по другим. А если поверхность окажется негладкой, то там вообще что угодно может оказаться.

Теоретически, смысла возможно будет чуть больше если вместо PCA использовать PLS.
 
Aleksey Nikolayev #:

Честно говоря, смысла в этом немного. Маломерная проекция в принципе не может отобразить всё то что может быть в многомерном случае. Экстремумы, например, могут быть седловыми точками - максимум по одним переменным и минимум по другим. А если поверхность окажется негладкой, то там вообще что угодно может оказаться.

Теоретически, смысла возможно будет чуть больше если вместо PCA использовать PLS.

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

 
Replikant_mih #:

Мм, самую мякотку про то, как от питона перешли в MQL5 я не понял, но понял, что, видимо, используя функцию из стать https://www.mql5.com/ru/articles/8642 можно катбуст модели дергать из mql5 кода. Я XGBoost использую в основном, но можно и катбуст - одна малина). Про нейросети и табличные данные согласен. Я так понимаю, используя код из статьи я могу модели катбуста юзать, а других библиотек - нет. Ну тоже хорошо. Сейчас я использую подход, где я не ограничен в выборе Python библиотек - дергаю модели из mql5 кода через API на питоне. В этом случае не ограничен в библиотеках, но медленней, в вариант из статьи - ограничение по библиотекам, но, видимо, но порядок/порядки быстрее.

Вариант из статьи уже финальный, для применения обученных на питоне моделей в МТ5 без прослоек. Там сохраняются сплиты деревьев в c++ из питон программы, затем переводятся в mql код, плюс функция расчета классов.
 
Maxim Dmitrievsky #:
Вариант из статьи уже финальный, для применения обученных на питоне моделей в МТ5 без прослоек. Там сохраняются сплиты деревьев в c++ из питон программы, затем переводятся в mql код, плюс функция расчета классов.

Супер, надо будет как-нибудь попробовать.

 
Replikant_mih #:

Супер, надо будет как-нибудь попробовать.

 Да, соответственно можно тестировать и оптимизировать как обычного бота в МТ5, перебирать параметры внешние. По барам тестируется быстро, по тикам могут быть тормоза, поскольку деревья довольно долго обсчитываются сами по себе.
 
Maxim Dmitrievsky #:
 Да, соответственно можно тестировать и оптимизировать как обычного бота в МТ5, перебирать параметры внешние. По барам тестируется быстро, по тикам могут быть тормоза, поскольку деревья довольно долго обсчитываются сами по себе.

Ну, после добавления ML дальше что-то оптимизировать уже не хочется. Ветром переподгонки дует с той стороны). Хотя если скорости норм, то хотя бы попробовать точно можно. Вообще да, я ещё из-за не самой лучшей интеграции-скорости мало внимания уделял трейдерской надстройке поверх ML, если вот так интегрировано и в тестере условно-нативно можно тестить и норм скорости, то это конечно открывает дополнительные горизонты возможностей.


Ну и в целом лучшие скорости (относительно моего решения, думаю, нормальная разница в скорости будет) это всегда хорошо - и когда роботов много и когда таймфреймы маленькие и скорость критичней.

 
Aleksey Nikolayev #:

В пространстве параметров модели? Оно ж имеет огромную размерность. Такое возможно разве что для совсем простых моделей с малым числом предикторов. 

Не очень понятно, как вообще можно построить поверхность в пространстве огромной размерности. У нас просто точек может быть очень мало в сравнении с этой размерностью. Разве что какими-нибудь способами визуализации с понижением размерностей типа PCA и тд, но смысл неясен.

Все смешано в кучу.

Какие параметры модели обсуждаем?

Если модель - это что-то из МО, то это одно, если модель - это советник в тестере, то это совершенно другое.

Модели, которые оптимизируются в тестере - это обычно не о чем. Например, берем машку и начинаем подбирать период, получаем некий набор результатов. Если таких "машек" со своими параметрами много, то получаем НЕ гладкие поверхности в результате, выбираем случайные пики, которые случайно могут совпасть в будущем. Почему? Для меня ответ очевиден: параметры этих "машек" НЕ имеют отношения к результативности модели, это просто шум.


Другое дело, если параметрами модели в МО является набор предикторов, то проблему можно поставить содержательно: имеет/не имеет предиктор отношение к РЕЗУЛЬТАТУ моделирования или нет. Если имеет, то какое.   Аналогичная ситуация, если мы выбираем модели: RF,  нейронка или еще что-то .....

Причина обращения: