Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3014
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сейчас увидел, что в коде у меня ещё было 4 листа в виде фильтров к каждому сигнальному листу :) Поэтому отключил их, и теперь повторяю графики.
Вот такая ситуация по прибыли каждого листа. Среднее значение +34 рублей. 50% показывает положительный результат.
Лучший по прибыли
Ну и баланс всех листьев
Ситуация тут выглядит получше, хотя так же есть тренды и причина видимо ранее озвученная.
Получается, что для фильтрации были не очень качественно отобраны листья.
Типа один лист из дерева иногда работает лучше чем дерево?
готовая тс на минималках
Типа один лист из дерева иногда работает лучше чем дерево?
готовая тс на минималках
На новых данных - да. Просто в него попала устойчивая закономерность, а в остальных листьях дерева только шум ветра. Шум там от принуждения дерева дать ответы на все вопросы, т.е. классифицировать полностью выборку.
На новых данных - да. Просто в него попала устойчивая закономерность, а в остальных листьях дерева только шум ветра. Шум там от принуждения дерева дать ответы на все вопросы, т.е. классифицировать полностью выборку.
Я делаю это (отбор листьев) на автомате - изменением уровня активации листа. Классически для классификации используют 0,5. Все листья с вероятностью выше 0,5 активируются, остальные молчат (что равносильно их удалению из дерева). Такой метод был описан не в одной статье на этом сайте и на форуме.
А можно поставить уровень 0,9 или 0,95, тогда только супер чистые листья в которых 95% примеров правильного класса будут работать. Для регрессии аналогично, только уровень не от 0 до 1, а в абс значениях. На картинках что выше приводил одна и та же модель, но с разными уровнями активации. Первая через 0,00020, вторая через 0,00040пт. Вторая пропустила убыточные интервалы торговли, а работала только на самых прибыльных и показала прибыль, хоть и работала с паузами в 1-2 года. Активация была в 70000 случаев из 400000, т.е. работало около 17% самых лучших листьев.
Результат аналогичный, достигается всего лишь одной командой в коде if(leaf_value>0.00040){...} , без всех тех заморочек, что вы делаете с отбором листьев, а теперь еще и кластеров.
Но вы и так все это знаете...
На новых данных - да. Просто в него попала устойчивая закономерность, а в остальных листьях дерева только шум ветра. Шум там от принуждения дерева дать ответы на все вопросы, т.е. классифицировать полностью выборку.
Проблема в том, что дерево строится не по условию максимизации прибыли, а по удобной для программирования пакета функции потерь.
Получается неприятный выбор - либо пытаться перенастроить сложный, навороченный пакет, либо ваять корявый велосипед. Ещё можно "удачно" совместить обе эти опции)
ИМХО, если уж выбирать возню с уже существующим пакетом на деревьях, то стоит попытаться использовать обрезку (прунинг) - с условием максимизации прибыли на форварде, например. Возможно, удастся избежать ручной возни с правилами.
Особо не надеюсь, так иногда подглядываю. После всяких gpt вообще прогнозирую застой и стагнацию в этой теме. Прорывов не видно никаких. Чисто хайповая вспышка, как с криптой. Щас они бобла срубят и успокоятся.
Приведенный мной пример - как раз из раздела категориальной кросс-энтропии (и вы видимо не обратили внимания, что там сумма значений равна 1 в каждом экземпляре). То, что он не работает, как в керас, для меня показатель, означающий, что либо реализация, либо описание CCE в MQL5 не соответствуют ожидаемым. Тогда требуется развернутое описание. Между прочим, в pytorch CrossEntropyLoss включает предварительный softmax внутри. Но в целом, поскольку в документации по матрицам в MQL5 красной нитью проходит мысль, что интерфейс аналогичен питонскому, подразумевается совпадение поведения. И если совпадения нет, это вызывает проблемы и недоумение.
Наличие множества классов предполагает работу с матрицами (когда у нас куча отсчетов/строк, в каждой из которых классы), поэтому ваш пример с вектором по-прежнему не отвечает на поставленный вопрос.
Я понял. Функции потерь работают с матрицами, как с векторами. В этом месте мы не доделали (не добавили параметр axis)
То есть, конкретно в Вашем примере нужно решать построчно.
Спасибо, что обратили внимание
На новых данных - да. Просто в него попала устойчивая закономерность, а в остальных листьях дерева только шум ветра. Шум там от принуждения дерева дать ответы на все вопросы, т.е. классифицировать полностью выборку.
а из леса если вытаскивать, там же среднее по правилам всех деревьев будет, по количеству деревьев
Я делаю это (отбор листьев) на автомате - изменением уровня активации листа. Классически для классификации используют 0,5. Все листья с вероятностью выше 0,5 активируются, остальные молчат (что равносильно их удалению из дерева). Такой метод был описан не в одной статье на этом сайте и на форуме.
А можно поставить уровень 0,9 или 0,95, тогда только супер чистые листья в которых 95% примеров правильного класса будут работать. Для регрессии аналогично, только уровень не от 0 до 1, а в абс значениях. На картинках что выше приводил одна и та же модель, но с разными уровнями активации. Первая через 0,00020, вторая через 0,00040пт. Вторая пропустила убыточные интервалы торговли, а работала только на самых прибыльных и показала прибыль, хоть и работала с паузами в 1-2 года. Активация была в 70000 случаев из 400000, т.е. работало около 17% самых лучших листьев.
Результат аналогичный, достигается всего лишь одной командой в коде if(leaf_value>0.00040){...} , без всех тех заморочек, что вы делаете с отбором листьев, а теперь еще и кластеров.
Но вы и так все это знаете...
У Вас же лес, после построение перевзвешиваете модель? Или просто там среднее значение берется по активировавшимся листьям?
В том то и дело, что я при отборе листа учитываю стабильность и равномерность распределения откликов по истории. Делаю двухмерные показатели по сути и их уже оцениваю в совокупности. Таким образом листья без откликов - крайне редкое событие у меня.
Мне кажется, что Вы могли бы легко сохранять листья, создавая тысячи деревьев, и уже только с ними работать.