Можем ли мы создать модели искусственного интеллекта для прогнозирования макроэкономических тенденций?
Не так давно предсказание погоды оказалось удачным или неудачным. Шутка заключалась в том, что предсказатель погоды по телевидению нес зонтик в предположительно хороший день. Сегодня мы можем очень точно моделировать погодные условия на несколько дней вперед.
Точно так же, имея достаточно релевантных данных, включая рыночные индикаторы, модели поведения людей, текущие события и события «черного лебедя», мы должны иметь возможность моделировать макроэкономику.
По словам одного очень известного человека, идея состоит в том, чтобы «меньше ошибаться».
Быть стабильно лучше среднего, даже на несколько процентов в предсказании будущего, было бы большим преимуществом.
В течение многих лет я обсуждал с друзьями концепцию моделирования искусственного интеллекта на основе тысяч потоков макроэкономических данных и возможности, которые это может дать архитектору такой системы. Теперь я чувствую, что данные, программное обеспечение и оборудование находятся в пределах досягаемости для этой цели.
Очень часто можно услышать, как бизнесмены или политические эксперты говорят о том, что составляет монотематическую предвзятость, основанную на очень ограниченной способности человеческого разума охватить лишь несколько аспектов данной темы. Здесь я пытаюсь заставить ИИ объединить тысячи сложных потоков данных (каждый из которых можно рассматривать как отдельную метрику электронной таблицы) в единый и проверяемый оракул.
Вначале я использовал легко доступные рыночные индикаторы, данные, которые влияют на немедленные макроэкономические изменения, такие как производство, безработица, новые разрешения на жилье, запасы и т. Д.
Я активно использовал средние значения, поскольку понимаю, что определенные события развиваются в течение определенного периода времени, иногда дней, недель или месяцев.
Конечно, я понимаю, что исторических данных недостаточно.
Меня тоже интересует человеческое поведение. Мнения экспертов и влиятельных лиц, даже если они ошибочны, определенно влияют на человеческое поведение. Мы точно знаем, что рынки или, скорее, большие группы людей ведут себя нелогично. Тем не менее, там есть закономерности в том, как средний Джо слушает президентскую речь, наблюдает за спорами немногих ученых мужей, читает пару статей, разговаривает с друзьями на работе, смотрит несколько видеороликов с заголовком «Неминуемая авария в [вставить любые год] », слышит, что кого-то уволили, и, наконец, через несколько дней начинает продавать свои акции, совершая колоссальную инвестиционную ошибку.
Такое моделирование сложно, но достижимо. Мы уже регулярно вычитаем человеческое отношение к поисковым запросам в Google, видеороликам на YouTube о новейших инновациях Apple или Tesla, публикациям в Twitter и сообщениям в блогах. Это всем известная и проверенная технология.
Этот проект не предназначен для быстрой победы, я понимаю, что каждый хедж-фонд тратит миллионы на подобные исследования. Скорее, я хочу, чтобы это был процесс обучения постепенному совершенствованию, труд любви и средство постоянного дохода к выходу на пенсию. У меня еще есть около 20 лет, чтобы решить эту сложную проблему.
Планируется, что каждые несколько дней я добавляю новые источники данных и продолжаю строить модели, пока не научусь что-то предсказывать. Я специально использовал слово «что-то». Я не уверен, смогу ли я предсказать конкретную цену S&P 500, но уверен, что найду закономерности в какой-то нише, и понимание на уровне волшебника может открыть двери, хотя и менее избранный путь.
Эта статья и сопровождающий ее открытый исходный код не предназначены для того, чтобы научить вас изучать рынок или программировать, а, скорее, для того, чтобы поделиться своими успехами и получить положительные отзывы и сотрудничество.
Цели проекта
- собрать и проанализировать как можно больше рыночных индикаторов
- чтобы узнать закономерности и взаимодействия в данных
- для прогнозирования рыночных тенденций на 7, 30 или 90 дней вперед
- предсказывать конкретную цену акций
- для создания повторно используемого кода и документирования процесса
Что такое индикаторы рынка?
Индикаторы рынка - это наборы данных (например, электронные таблицы), отражающие исторические показатели конкретной области интересов, например:
- Индекс «S&P 500» показывает, как работают 500 основных акций в целом.
- Индекс ISM Manufacturing показывает, насколько хорошо работает обрабатывающая промышленность.
- Индекс ВВП (валового внутреннего продукта) показывает, как обстоят дела в стране
- и т. д., т. д. и т. д.
Таких индикаторов сотни, если не тысячи. В каждой стране, штате, округе и сообществе есть наборы данных, отражающие определенную тенденцию.
Почему бы не использовать электронные таблицы?
Таблицы и их возможности построения графиков - это основа индивидуального анализа рынка. Однако электронные таблицы хороши при сравнении только нескольких показателей, когда количество данных начинает умножаться, входные данные огромны. Помните, что среднестатистический человек может запомнить около 7 цифр, а теперь попробуйте представить ежедневные данные за последние несколько десятилетий, поступающие по нескольким сотням показаний, умноженные на пару сотен или регионов, и добавить к ним настроения из сотен источники. Мы можем легко говорить о миллионах, если не триллионах вложений.
Современные компьютеры могут обрабатывать множество «тера» операций в секунду.
Тера составляет 1 000 000 000 000. Думаю, суть ясна.
Подход к машинному обучению
Огромное преимущество машинного обучения или искусственного интеллекта (ИИ) становится очевидным, когда мы пытаемся найти тонкие закономерности в тысячах потоков данных.
Человеческий мозг (использующий электронные таблицы) не в состоянии уловить весь объем представленной информации. С другой стороны, машинное обучение может легко обнаруживать закономерности в массивных наборах данных и делать выводы.
Зачем использовать Юлию?
Если бы я выбрал Python, я бы, наверное, облегчил себе жизнь. Однако я думал о долгосрочных, многолетних инвестициях и хотел выбрать абсолютно лучший язык.
Вот несколько характеристик языка Julia:
- Джулия современная, быстрая, элегантная, многозадачная, и очень хорошо умеет считать, конечно, мы говорим о языке программирования Джулия.
- в отличие от C / C ++ читать и писать Julia одно удовольствие
- он разработан в Массачусетском технологическом институте специально для научных вычислений и машинного обучения.
- как и C, это очень быстро
- как и Python, его очень легко выучить
- он предназначен для параллелизма
- он разработан для распределенных вычислений, так как однажды я могу решить запустить сотни прогнозных моделей параллельно, а не последовательно, как сейчас.
Да пребудет с тобой источник, Люк
Я ежедневно вношу изменения в код проекта.
Логический подход и код, несомненно, будут отличаться от любых примеров, которые я мог бы здесь привести. Другими словами, это каламбур Оби-Вана Кеноби: «Помни, Люк, используй источник». , изучите реальный код.
Смотрите актуальные прогнозы
В моем GitHub я предоставил страницу, на которой я публикую результаты своих прогнозов, надеюсь, они вам будут интересны.
Остальная часть проекта задокументирована по адресу:
Подпишитесь и поделитесь
Если вам нравится то, что я пишу, пожалуйста, поставьте лайк, подпишитесь и поделитесь этой статьей.
Судя по статистике, я либо получаю мотивацию писать больше, либо общаюсь со своим врожденным интровертом.
Свяжитесь со мной через LinkedIn.