Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 3323
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
ты уже забыл про какие критерии останова писал? опять в несознанку? ну сколько можно уже, прекращай.
это ты натягиваешь все на вся, чтобы показать свою значичмость
я не писал изначально ни про какие критерии останова
ты имеешь наглость приписывать мне то, чего я не говорил
по сути, ты просто бредишь и развлекаешь аудиторию
а мне приходится догадываться, какие рандомные процессы идут в твоей голове и в какую сторону они движутсяДа, вопрос всегда стоит в том, что бы обеспечить рабастность модели на новых данных. Поэтому говорил, что поиск такого критерия один из самых важных и сложных.
Я про то, что метрики оценки результата, которые мы привыкли использовать в трейдинге и машинном обучении являются только частью оценки качества получившейся модели/настройки/аппроксимации.
Важным является, при каких условиях мы этого добились. Сколько информации для этого потребовалось. Нужно оценивать устойчивость наблюдений во времени. Вклад каждого предиктора.
Проблема сложных моделей, с большим числом предикторов и решающих правил (будь это деревья или нейроны) в том, что они создают сложные закономерности, повторение которых мало вероятно в полном объёме, отсюда смещение вероятности отнесения к одному из классов. Ранее я постил картинку "о чём шумят деревья", на которой показал, что большая часть листьев просто не активируется на новых данных.
Всё это от того, что мы имеем дело с "функцией" (на самом деле с их суммой), которую нельзя исследовать полностью для её аппроксимации. А значит, нужно особое внимание обращать только на те, что более понятны/известны. Лучше пусть на новых данных модель "молчит" так как ей не знакома ситуация, чем оперирует единичными случаями из прошлого.
Вот и возникает вопрос - как заставить модель молчать, если она не уверена, и придать уверенности, если вероятность благоприятных событий велика.
Нужны методы коррекции готовых моделей. Реализовать их можно через воздействие на модель после обучения, либо применив модели двух классов - одну типа бустинга, а другую типа К ближайших соседей.
Я про то, что метрики оценки результата, которые мы привыкли использовать в трейдинге и машинном обучении являются только частью оценки качества получившейся модели/настройки/аппроксимации.
Важным является, при каких условиях мы этого добились. Сколько информации для этого потребовалось. Нужно оценивать устойчивость наблюдений во времени. Вклад каждого предиктора.
Проблема сложных моделей, с большим числом предикторов и решающих правил (будь это деревья или нейроны) в том, что они создают сложные закономерности, повторение которых мало вероятно в полном объёме, отсюда смещение вероятности отнесения к одному из классов. Ранее я постил картинку "о чём шумят деревья", на которой показал, что большая часть листьев просто не активируется на новых данных.
Всё это от того, что мы имеем дело с "функцией" (на самом деле с их суммой), которую нельзя исследовать полностью для её аппроксимации. А значит, нужно особое внимание обращать только на те, что более понятны/известны. Лучше на новых данных модель "молчит" так как ей не знакома ситуация, чем оперирует единичными случаями из прошлого.
Вот и возникает вопрос - как заставить модель молчать, если она не уверена, и придать уверенности, если вероятность благоприятных событий велика.
Нужны методы коррекции готовых моделей. Реализовать его можно через воздействие на модель после обучения, либо применив модели двух классов - одну типа бустинга, а другую типа К ближайших соседей.
Я делал ранее модели, которые со временем просто переставали давать торговые сигналы. И да, это лучше, чем бы смещалась вероятность верных ответов к 50/50 на новых данных. Суть - при обучении добиваться попадания ответов сетки в узком диапазоне чисел, со временем ответы начинают выходить из диапазона и пропадают сигналы. Это очень трудоёмкий процесс, автоматизировать полностью обучение и дальнейшую торговлю мне не удалось.
Это один из подходов, наверное есть и другие, нужно изучать эту тему.
Суть - при обучении добиваться попадания ответов сетки в узком диапазоне чисел, со временем ответы начинают выходить из диапазона и пропадают сигналы. Это очень трудоёмкий процесс, автоматизировать полностью обучение и дальнейшую торговлю мне не удалось.
Я такую идею реализовывал с помощью оптимизатора МТ5:
Ставлю условие своей псевдонейронке: "Открыть BUY, если результат сети даёт число в диапазоне Close[1] +/- 0.00050 пунктов."
Вход - одно только число — Close[2];
Оптимизатор начинает усердно искать прибыльные сделки, а я вместо этого сортирую сеты по количеству сделок.
По окончании оптимизации выбираешь самый сливной сет с самым большим количеством сделок - он естественно означает, что советник угадал максимальное количество будущих цен.
Далее переключаюсь на режим тестирования, где условие уже изменённое: "Открыть BUY, если результат сети даёт число, большее Close[1] на N пунктов "
Вуаля: форвард в год прибыльный.
Одна беда: это работало только с часовой свечкой в 2 часа ночи. Закрытие - на открытии следующего часа.
Вот такую закономерность как-то нашёл. Работала на EURUSD, USDCHF и EURGBP в другой утренний час.
ответов сетки в узком диапазоне чисел
Речь о НС или иной сетке?
со временем ответы начинают выходить из диапазона и пропадают сигналы
Причина в изменении суммарных показателей предикторов, или может только один перестал показывать "нужный" результат?
Вообще вопрос, почему что-то сломалось может быть очень важным для дальнейших идей.
1. Речь о НС или иной сетке?
2. Причина в изменении суммарных показателей предикторов, или может только один перестал показывать "нужный" результат?
Вообще вопрос, почему что-то сломалось может быть очень важным для дальнейших идей.
1. Да, конечно.
2. Может быть я как то не так выразился. Не, это и был как раз положительный эффект - торговля постепенно сходила на нет на новых данных. Как только количество сделок снижалось ниже заданного уровня в единицу времени нужно снова обучать. Т.е. не снижение эффективности торговли на OOS как сигнал на переобучение, а снижение количества сделок.
Т.е., вместо того, что бы нести чушь принося убытки торговли на OOS, НС выдаёт в ответ тишину на незнакомые данные.
По вашей же ссылке говорится о связи "профиля" с кросс-валидацией, для которой, возможно, будет проще найти пакеты.
Я не уловил тут связи. Из каких слов это следует?
Работа экспериментальная. Вот цитата из http://www.ccas.ru/frc/papers/students/VoronKoloskov05mmro.pdf
Вряд ли каждому эксперименту создавали пакет.
Да и эксперимент искусственный. В четко разделенный по классам набор данных добавили шум. Причем четкое разделение всего по 1 фиче - по оси У. Если убрать шум (все данные от 0,2 до 0,8), то получится, что оставляем примеры только с расстоянием до другого класса не менее 0,6. Я про самый сложный 3-й вариант на картинке:
Переходим к реальной жизни и добавляем ваши 5000 предикторов, которые будут шумом к этой единственной рабочей фиче. В кластеризации вычисляется общее расстояние между точками в этом 5001 мерном пространстве. Работающие 0,6 никогда не будут найдены в этом хаосе.
Думаю любые классификаторы это сделают лучше, то же дерево найдет эту единственную фичу и поделит именно по ней, сначала через 0,5 и потом дойдет и до сплитов по 0,2 и 0,8 за которыми будут листья с 100%ной чистотой.
Утверждается, что с этим алгоритмом удавалось завоёвывать первые места на кагле, не думаю, что там простые задачи были...
Может попробуем разобраться? Я формулы не втыкаю - к великому моему сожалению.
В одной из статей Владимира Перервенко был описан такой метод, ну и пример с кодом был естественно
Я из видео узнал об этом алгоритме, там на слейде есть какие то формулы - сложно назвать это кодом.
А где Вы видели пример кода?