Машинное обучение в трейдинге: теория, модели, практика и алготорговля - страница 2424
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
глупость то какая, есть пользователи, есть производители продуктов/товаров/услуг
Вы ж не создали свой автомобиль? а купили готовый у автопроизводителя
ЗЫ: можно и с научной точки зрения...теорему Пифагора слышали? а Ваша где? )))
это на профильных ресурсах юмор, вот из только что прочитанного: " сошлись 3 стихии, фиговый фотограф, фиговая модель и фиговый косплей "
по сабжу... ну как бы Маркет позволяет выкладывать новые версии продукта, и не важно, что некоторые авторы продуктов просто переоптимизируют своих советников на новых исторических данных...... "в общем сошлись стихии" - тут, кстати, одна из "стихий" - имхо, низкая подготовка покупателей, мало кто способен качественно проверить продукт, но так везде - включая покупателей упомянутых выше автомобилей - так сказать маркетинг
Где глупость увидели? В том сообщении написано же, во-первых подразумевался интеллектуальный труд, а во-вторых - то что "НЕ научился использовать".
Чтобы критиковать текстовые публикации, нужно быть на ОДНОМ уровне с автором. Какое-то нелепое сравнение привели с Пифагором. К чему это вообще?
Более подходящий пример мог быть следующим: Вы купили квантовый компьютер, но не можете научиться им пользоваться, даже после прочтения детальной инструкции.
Надеюсь, понимаете в чем принципиальная разница.
В чем приниыпиальная разница - между "игра \ стоп игра" и "открыть \ не открывать" или "купить \ не покупать"
По моему ни вчем, обычная классификация..
старт/стоп другого робота - по идее должен быть проще чем собственный buy/sell...
меньше рыночного шума (шум фильтруется управляемым роботом), решение ищется проще - потому что инвариантов меньше
старт/стоп другого робота - по идее должен быть проще чем собственный buy/sell...
меньше рыночного шума (шум фильтруется управляемым роботом), решение ищется проще - потому что инвариантов меньше
старт/стоп другого робота - по идее должен быть проще чем собственный buy/sell...
меньше рыночного шума (шум фильтруется управляемым роботом), решение ищется проще - потому что инвариантов меньше
хз..
покажи что сделал, а то я пока скептик . Я сеть фильтровал другой сетью и так себе, а ты какую то ТСшку фильтруешь и норм?
Итак, провел я первую фазу исследований, о которых анонсировал ранее, попробуем разобраться, что получается по факту. Писать и думать буду сходу, пока сам до конца результат не знаю, информации получилось много, и как её правильно проанализировать - то же вопрос.
Начну по порядку, я взял выборку с 2014 по первое полугодие 2021 года (60% - train, 20% - test, 20% - exam), предикторов 5336 штук, зафиксировал все параметры - дерево глубиной 6 и random-seed 100 установил, темп обучения 0,03 и 1000 итераций (деревьев) с автоматической остановкой в случае не улучшения результатов после новых 100 деревьев на контрольной выборке, остальные настройки не существенны, а вот изменяемые параметры это тип квантования и число квантовых границ. Число квантовых границ увеличивается в прогрессии от 8 до 512 и тип квантования - 6 разных вариантов, таблицы квантования при этом сохраняем в отдельный файл.
Обучив все модели получаем таблицу по 42-ум моделям, которую упорядочиваем по столбу "Balans_Exam" - независимой выборке.
На скриншоте таблица со скрытыми центральными значениями, а показаны первые пять лучших и пять худших, среднее значение показателей подсчитано по всей выборке.
В итоге отобраны две модели - выделил салатовым цветом, они отличаются по числу квантов - 8 и 128 соответственно и по типу квантования - Median и UniformAndQuantiles.
Далее я разбил выборку в пределах test на 8 частей, так, что бы в каждой части было по 6 месяцев, и провел обучение моделей с первой и второй фиксированной квантовой таблицей отдельно, при этом для каждого, назовем, проекта, использовалось 5 вариантов настроек для обучения, в которых перебирался параметр random-seed - 100 вариантов от 8 до 800 с шагом 8:
После окончания обучения были проанализированы полученные модели по следующим вариантам получения статистики о предикторах CatBoost:
Далее я усреднил отдельно результаты по Seed каждой 1/8 части выборки, и свел их в общую таблицу, которая была упорядочена по среднему значению показатель значимости предикторов на каждом отрезке, при этом отдельно проводилась проверка на наличие значимого предиктора на каждом участке и использовалось упорядочение таблицы и по этому показателю. Описанная процедура была сделана для каждой проекта и каждого типа статистики модели.
Ниже выписка из таблицы для 5 варианта обучения и первого варианта анализа модели
Далее я создал настройки для исключения из обучения предикторов, не вошедших в n первых предикторов, если предикторов отвечающих критериям не хватало, то файла настройки не создавалось. Настройки сделаны для каждого варианта статистики и проекта. Использовались следующие ограничения по числу предикторов, используемых для обучения: 5/25/50/100/300/500/1000/2000/3000. Таким образом получился набор настроек.
Далее мной было проведено обучение с фиксированной настройкой квантовой таблицы на выборке train - 60% test - 20% exam - 20% с максимальным числом деревьев 1000 и остановкой обучения по выборке test, обучение было произведено для всех настроек и двух вариантов квантовых таблиц, по 100 моделей с перебором random-seed - 100 вариантов от 8 до 800 с шагом 8 . Кроме того, было проведено отдельно обучения для двух квантовых таблиц без исключения предикторов но с перебором random-seed - 100 вариантов от 8 до 800 с шагом 8.
Ниже приведена таблица с настройкой разбивкой на 8 границ по методу Median - первые и последние 5 лучших варианта.
Ниже приведена таблица с настройкой разбивкой на 128 границ по методу UniformAndQuantiles - первые и последние 5 лучших варианта.
Первый вывод, который можно сделать - у модели есть потенциал, который зависит от используемых предикторов, на использование которых влияет random-seed. И размышляя вслух, предположу, что целью отбора настроек/метода должен являться не лучший результат, а средний результат прибыли, либо иных показателей. Отмечу, что среднее значение финансового результата на выборке вне обучения (столбец Balans_Exam) в первом варианте составляет 2222,39 и во втором варианте 1999,13.
Далее составляем таблицу из средних значений метрических показателей моделей с разбивкой на настройки для их обучения.
Ниже приведена таблица с настройкой разбивкой на 8 границ по методу Median для разных настроек отвечающих за исключение предикторов - первые 10 лучших варианта - средние значения.
Ниже приведена таблица с настройкой разбивкой на 128 границ по методу UniformAndQuantiles для разных настроек отвечающих за исключение предикторов - первые 10 лучших варианта - средние значения.
Для расшифровки того, что мы тут имеем по столбцу "File_Name" предлагаю воспользоваться следующей таблицей
Попробуем поэтапно анализировать, уменьшая число обозреваемых комбинаций.
На таблице ниже подсчитаны какие "Проекты" попали в десятку по двум квантовым таблицам.
И тут видим, что в обоих таблицах имеются хорошие представители из первого проекта (Exp_000) и пятого (Exp_004), какой лучше и от какого отказаться не ясно, но тот факт что они оба попали в десятку повод призадуматься. Возможно следует брать статистику с каким либо коэффициентам по всей таблице - не знаю - предложите варианты. Однако отмечу, что вариант Exp_004 хорош тем, что занимает наименьшее времени на подготовку данных для создания настроечных файлов, что и логично, ведь там всего учится 5 деревьев. Думаю, что окончательно выводы делать рано по выбору числа деревьев для начального обучения, как считаете?
На таблице ниже по десятке двух квантовых таблиц посмотрим на тип анализа предикторов и придельное число используемых в модели предикторов.
Из таблицы видно, что первый метод анализа показал больше число откликов, а так же по всей таблице видим, что большая часть настроек числа предикторов, используемых в модели, не превышает 50 штук.
Предлагаю посмотреть теперь на результаты самих моделей, возьмем те выборки проектов, настройки которых оказались в большинстве, для первой квантовой таблицы - CB_Svod_Exp_000_x_000000002 , а для второй - CB_Svod_Exp_004_x_000000002.
Ниже приведена таблица с настройкой разбивкой на 8 границ по методу Median настройки отбора предикторов CB_Svod_Exp_000_x_000000002 - первые 5 лучших и 5 худших варианта.
Ниже приведена таблица с настройкой разбивкой на 128 границ по методу UniformAndQuantiles настройки отбора предикторов CB_Svod_Exp_004_x_000000002 - первые 5 лучших и 5 худших варианта.
Ниже приведены сводные таблицы для сравнения - первая строка данные из первоначальной квантовой таблицы, вторая - данные после перебора random-seed, и третья уже по результатам отбора после процедуры отбора предикторов:
1. Таблица с настройкой разбивкой на 8 границ по методу Median
2. Таблица с настройкой разбивкой на 128 границ по методу UniformAndQuantiles
Оценочные показатели из двух таблиц говорят о снижении результатов на выборках для обучения и тестирования, и улучшении показателей на независимой выборке, иными словами уменьшился эффект подгонки за счет улучшения характеристик предикторов и снижения их числа.
Какие можно сделать предварительные выводы:
1. Просто скормить CatBoost выборку можно, но манипуляция с предикторами способна существенно улучшить модель, в том числе финансовый результат.
2. Для получения хорошего результата не всегда нужно использовать большое число предикторов, имеющихся в выборке - оказалось, что для достижения хороших результатов, которые мы оцениваем по среднему показателю, достаточно использовать всего 1% всех предикторов.
Для развития этой идеи, нужно провести эксперименты на других выборках, и если результат повториться, то можно думать о снижении числа комбинаций для поиска перспективных результатов. Целью является разработка слепого метода, который позволял бы находить лучшие средние значения без подглядывания в тестовую и экзаменационные выборки, что позволит увеличить на 40% выборку для обучения и ещё добавит выявления предикторов со стабильным откликом.
Можно думать над дополнительной фильтрацией предикторов в момент оценки, добавив корректирующий коэффициент их полезности/эффективности с учетом полученного финансового результата.
Почему я смотрю на финансовые показатели - дело в том, что на рынке могут возникать разные события, и если модель может предпочтительней отбирать события с большей прибылью, то такой подход модели мне нравится, при этом я смотрю на оценочные статистические показатели модели и сам график.
Надеюсь заметка показалась интересной, жду ваших комментариев!
Приложил файл со всеми таблицами - кому интересно, и кто хочет подумать.
Ну и вот, а можно взять приращений 5-15 штук, показатели будут не хуже
Мат ожидание за 30 пунктов только на приращениях, где это наблюдать можно? Обучение на выборке 2014-2018 и работа в 2020 году - где такое есть на преращениях?
Хотите попробовать сделать лучше, чем получилось? Скину выборку - она не большая.
Я вот тут призадумался над умиранием стратегий...
Что если спрогнозировать характеристики рынка на много времени вперед? потом востановить ряд с спрогнозироваными характеристиками и обучиться на нем, а потом торговать этой моделью рынок.. не пробовал думать в эту строну?
Например спрогнозировать спектр рынка ...
Типа "нам не дано знать будущее но мы можем его представить"