Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2586
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Вроде логлосс выводится на основе принципа максимума правдоподобия для биномиального распределения. В матстате принцип максимума правдоподобия расширяется и обобщается в виде М-оценок, что может быть некоторым теоретическим обоснованием для экспериментов (но не гарантией их успеха, конечно).
Перепутал с кросс-энтропией наверное, но она чаще для мультикласса используется.
Там вроде что-то такое, что теоретическое значение минимума логлосса совпадает с энтропией.
В любом случае, не вижу проблемы сделать дополнительную оценку через свою любую ф-ю, но уже чисто от графика баланса
Наверное так. Смущает только отсутствие большого числа статей по теме) Наверное, боятся раскрыть рыбные места)
Там вроде что-то такое, что теоретическое значение минимума логлосса совпадает с энтропией.
Наверное так. Смущает только отсутствие большого числа статей по теме) Наверное, боятся раскрыть рыбные места)
У Прадо на эту тему много интересного, на сайте его статьи. Отложил в долгий ящик, но с удовольствием почитаю позже. Один из наиболее вменяемых авторов )
Да, надо посмотреть его статьи. Немало их у него, однако)
По поводу вашей идеи совмещения стандартной метрики с кастомной вспомнилась идея с деревом, где оно строится по кроссэнтропии, а его обрезка делается уже по частоте ошибки. Наверное, вместо частоты можно попробовать брать свою метрику.
Можете поделиться информацией:
1. Иногда.
2. Внутри, снаружи.
3.
3.1. Подписки на события. Чтобы те же события, что и в MQL5 триггерили определенные методы-обработчики.
3.2. Возможность на питоне писать стратегии (как тип приложения) чтобы можно было в бэктестере прогнать.
3.3. Какого-то готового механизма взаимодействия MQL5-Python. Python умеет взаимодействовать с mt5 в обе стороны, MQL5 умеет в обе стороны, MQL5 - единое целое с терминалом и отлично умеет
с торговыми функциями и аналогичным работать, но не умеет удобно работать с отраслевыми топовыми решениями в области дата-саенса. Python - отраслевой стандарт в дата-саенсе - pandas, numpy, TensorFlow, Keras, PyTorch и т.д., но гораздо меньше "трейдерская" интеграция в платформу. Было бы круто иметь стандартные средства интеграции этих двух силищ - что-то типа вешаешь скрипт на Python в mt5, а в скрипте модель ждет, под паром стоит, или пул моделей, функции, занимающиеся предобработкой данных и т.д. И есть MQL5 приложение, стратегия, которая свою работу делает, а когда надо к ML функциональности из этого скрипта обращается - быстро и без костылей.
Кто то использует Р пакет для бектеста стратегий Quantstrat ?
Как он по скорости?
Честно говоря, мало что понял. Вопрос о том, что меняется ли вероятность со временем? Для изучения этого можно просто построить логистическую регрессию по времени (и проверить значимость отличия коэффициента от нуля).
Если помимо времени изучаются другие факторы, влияющие на вероятность, то их тоже можно попытаться добавить в логистическую регрессию.
А может проще сделать еще один предиктор - удаленность строки данных от текущего. Лес сам может вычислить, что данные старше 8 месяцев плохо влияют на текущий прогноз. И будет простой сплит: до 8 месяце (с листьями получше) и после 8 месяцев с листьями похуже.
Ну на трейне они все конечно хорошо обучатся. На тесте/кроссвалидации надо проверять. Только как? Непонятно. Это даже не значимость предиктора, а значимость сплита.
Сегодня добавил такой предиктор удаленности от текущего бара. Можно номер или просто время. Я взял время.
Экспериментально подобрал, что длина истории для обучающего набора данных в 1 месяц, дает самый лучший форвард.
Предположение о том, что добавление предиктора удаленности от первой строки данных поможет, - оказалось неверным. На практике форвард только ухудшился и с 1 месяцем данных, и с 2, и с 10.
Предположим, что подали данные длиной 2 месяца, дерево нашло сплит в 1 месяц и одна его ветвь обучилась на тех же данных, что и экспериментально подобранная длина истории в 1 месяц. А другой месяц тоже обучился на своих данных. И обучился хорошо, а не плохо (о чем предположил вначале). Плохим он будет для форварда, а на трейне он просто заучится. В результате модель усредняет результаты по обоим месяцам и форвард получается хуже, чем если бы обучался только на 1 месяце.
Вывод: глобальное время или номер строки подавать нельзя. Циклические варианты времени: номер дня недели, часа, минуты может и полезны - нужно проверять.
Длину истории для обучения под каждую целевую(и/или набор предикторов) придется подбирать/оптимизировать.
Проверил "Циклические варианты времени: номер дня недели, часа, минуты может и полезны - нужно проверять."
Минуты почти не влияют, изменения не более 0,5%
Часы и дни недели влияют. Изменения около 3-5%.
Строю одновременно 2 модели: 1 на бай, 2-ю на селл.
Модели на бай лучше работают без времени на 4-5%, а на селл лучше с временем на те же 4-5%. Типа 5% продают по расписанию, а покупают по другим принципам.
Сегодня добавил такой предиктор удаленности от текущего бара. Можно номер или просто время. Я взял время.
С циклическим временем всё более-менее понятно. Не очень понятно с линейным - оно же будет для трейна и форварда лежать в разных промежутках? Или "текущий бар" берётся свой для каждой выборки?
У меня была идея просто взять обычную линейную логистическую регрессию и смотреть значимость отличия от нуля коэффициента при времени (или при какой-нибудь функции от времени) или сравнить эту значимость со значимостью для других предикторов.
С циклическим временем всё более-менее понятно. Не очень понятно с линейным - оно же будет для трейна и форварда лежать в разных промежутках? Или "текущий бар" берётся свой для каждой выборки?
У меня была идея просто взять обычную линейную логистическую регрессию и смотреть значимость отличия от нуля коэффициента при времени (или при какой-нибудь функции от времени) или сравнить эту значимость со значимостью для других предикторов.