Все приходит с намерением; следующий шаг — начать, а затем еще сложнее признать, что никогда не будет идеального времени, чтобы получить лучшую версию того, чего вы достигли, не поделившись работой с сообществом. Как и во всем, это требует времени для разработки и времени для дополнительных идей.
Первоначальное намерение состояло в том, чтобы создать онлайн-доказательство концепции машинного обучения, начиная с чистого листа.
Меня интересует фондовый рынок, который является современной основой, объединяющей наши потребности и стремления как общества, так и отдельных людей.
Я читал статьи Надима Валаята.
Читал статьи Виталия Каценельсона.
Читаю иногда статьи других авторов, например последнюю.
В настоящее время участники фондового рынка признают, что оценки высоки, но, с другой стороны, никто не хочет терять тренд, который является вашим другом, и в то же время все хотят быть в курсе предстоящих коррекций. Невозможно добиться того и другого, но с историческими данными можно оценить вероятности возникновения событий, наука, вероятно, лучше, чем простое предположение. 😊
1. Цель состоит в том, чтобы с помощью регрессионного обучения с учителем прогнозировать коррекцию фондового рынка США в течение следующих шести месяцев на основе исторических данных.
2. Рассуждение о данных, используемых в модели. Коэффициент P/E и Индикатор шведского стола.
Для оценки акций или индексов одним из наиболее часто используемых показателей является коэффициент P/E. Это первая особенность.
В качестве агрегированного индикатора для оценки рынка в 21 веке предпочтение отдается индикатору Баффета, потому что до взрыва доткомов методы оценки Уоррена Баффета инвесторы считали устаревшими, но после взрыва многих акций в прах и другие акции, которые даже не восстановились до предыдущих максимумов. спустя 20 лет многие инвесторы даже сегодня с благодарностью возвращаются к индикатору Buffet. Это вторая основная особенность.
3. Сбор данных. Индекс S&P 500 и Коэффициент P/E S&P 500 извлекаются из таблиц данных. Индикатор Buffet рассчитывается на основе данных GDP и Wilshire 5000 Full Cap Price Index, полученных с помощью FRED API. Он требует и отдельного API-ключа, но вы можете подать заявку онлайн бесплатно.
4. Подготовка данных. Целевыми данными является коррекция рынка. Рыночные коррекции рассчитываются с использованием индекса S&P 500 путем деления значения с начала периода на минимальное значение за следующие 6 месяцев.
Первичными данными для функций являются P/E и Buffet Indicator; чтобы использовать их, они должны быть преобразованы в осмысленную статистику. Чтобы изучить различные образцы статистики, я использовал определение диапазона, которое показывает, сколько прошлых месяцев учитывается как причина коррекции (12, 24, 36, 48, 60}).
Я использовал фрагменты кода из Kaggle Competition Earthquake и https://machinelearningmastery.com/. Код я писал с использованием официальной документации библиотек, но для быстрых адресных проблем или решений я в основном использовал https://stackoverflow.com/ или https://www.geeksforgeeks.org/. Я пытался использовать https://www.kite.com/, но это было полезно только как отправная точка для официальной документации, а не для готового кода.
5. Модельное обучение. Я использовал для обучения XGBoost library, потому что это первая для меня модель, которая работает из коробки с отличными результатами. Стоит потренироваться строить модель с Рекуррентной нейронной сетью в Керасе для сравнения результатов. Стоит тренировать предсказание цены вместо коррекции. Модель гибкая, функции можно добавлять путем приведения данных в соответствие с датой индекса коррекции целевого рынка.
6. Прогноз. Я пробовал разные способы прогнозирования, такие как поиск по сетке основных функций и размер полосы. Как мы знаем, оценка варьируется из-за стохастического характера оптимизации, поэтому дополнительно я применил случайную перекрестную кратную загрузку для усреднения прогнозов.
7. Финансовая ценность прогноза индекса S&P 500. С коэффициентом P/E модель прогнозирует коррекцию на 4%, с индикатором Buffet модель прогнозирует коррекцию на 8% с набором функций {P/E, Price, Buffet Indicator} модель прогнозирует коррекцию на 7%, R2score около 0,8.
8. Модель доступна онлайн на https://github.com/itsergiu/ с ссылкой на https://mybinder.org/, где вы можете начать Jupyter Notebook, чтобы запустить его, поиграть с данными и проанализировать результаты. Выполнение требует вычислительной мощности, однако mybinder может справиться с этим (без гарантии) из того, что я тестировал с 60 полосами, что означает 60-месячный период обучения и прогнозирования. Для ускорения уменьшите значение переменной n_times =10 до n_times = 1.
Модель работает с предоставленными данными. Модель слепа к другим событиям, таким как текущая продолжающаяся пандемия с появляющимися блокировками, репрессии в Китае и долговой кризис Evergrande, который может стать триггером снежного кома.
Какие другие ценные доступные функции следует включить и как исключить шум из модели, чтобы получить более точный прогноз?