Все приходит с намерением; следующий шаг — начать, а затем еще сложнее признать, что никогда не будет идеального времени, чтобы получить лучшую версию того, чего вы достигли, не поделившись работой с сообществом. Как и во всем, это требует времени для разработки и времени для дополнительных идей.

Первоначальное намерение состояло в том, чтобы создать онлайн-доказательство концепции машинного обучения, начиная с чистого листа.

Меня интересует фондовый рынок, который является современной основой, объединяющей наши потребности и стремления как общества, так и отдельных людей.

Я читал статьи Надима Валаята.

Читал статьи Виталия Каценельсона.

Читаю иногда статьи других авторов, например последнюю.

В настоящее время участники фондового рынка признают, что оценки высоки, но, с другой стороны, никто не хочет терять тренд, который является вашим другом, и в то же время все хотят быть в курсе предстоящих коррекций. Невозможно добиться того и другого, но с историческими данными можно оценить вероятности возникновения событий, наука, вероятно, лучше, чем простое предположение. 😊

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, который может стать триггером снежного кома.

Какие другие ценные доступные функции следует включить и как исключить шум из модели, чтобы получить более точный прогноз?