Рассчитать совокупный показатель из составляющих SP500

Здравствуйте Уважаемые читатели!

Спасибо, что являетесь частью моего сообщества. 🙂

Индикаторы ширины являются мощными рыночными индикаторами, которые требуют очень интенсивных расчетов и помогают нам объяснить движение фондового индекса, исследуя коллективное поведение его составляющих. В нашем случае это будет сделано путем изучения индекса S&P 500. Мы будем искать процент компаний, которые торгуются выше своих взвешенных скользящих средних 50 и 200. Это может помочь нам в определении текущего состояния рынка и общей тенденции.

Конечно, это само по себе не может быть сигналом. Хотя он может предоставить полезную информацию о том, где сейчас находится рынок, он не сигнализирует о потенциальном росте или падении.

Предварительные условия:

  • Python: установите версию 3.9.7.
  • Jupyter Notebook: установите Индивидуальную версию Anaconda для вашей операционной системы, она поставляется с уже установленным Jupyter.

Для наших данных мы будем использовать API Yahoo Finance, который можно использовать совершенно бесплатно.

Разработка индикатора ширины

Теперь давайте перейдем прямо к делу и напишем наш индикатор ширины. Сначала нам нужно импортировать все необходимые пакеты, загрузить и подготовить наши данные. Пакеты, которые мы будем использовать, будут yfinance, stock_infoот yahoo_fin. , pandas, pandas_ta и datetime.

Затем мы должны подготовить список составляющих S&P 500 и получить данные о ценах для каждой акции за каждый день. Нашей отправной точкой будет 2020-01-01 до сегодняшнего дня. После загрузки мы используем один очень мощный метод Pandas, stack(),который сделает наш DataFrame мультииндексным. Я не буду вдаваться в подробности, но в основном у нас будет 2 индекса, один будет каждый день, а другой будет каждой акцией в этот конкретный день.

После запуска мы получаем следующий DataFrame.

Теперь, когда у нас есть подготовленные данные, мы вычисляем взвешенную скользящую среднюю 50 и 200 для каждой акции на основе ее скорректированной цены закрытия. Для этого мы используем пакет pandas_ta, однако расчет на мультииндексном DataFrame немного сложнее. Поэтому нам придется использовать методологию group-by-transform и groupby для каждой акции.

⚠️ Вы можете посмотреть видео ниже для более подробного объяснения того, как работает методология groupby-transform. ⚠️

Совершенно нормально использовать любую скользящую среднюю по своему вкусу. Вы можете найти некоторые из доступных здесь.

Теперь, когда у нас есть значения 50-WMA и 200-WMA, мы проверяем, была ли скорректированная цена закрытия для каждой акции выше или ниже для каждого дня. Мы создаем два новых столбца с именами выше_50_wma и выше_200_wma. Для этого мы используем метод pandas apply() и заполняем новые столбцы 1, где >закрытие выше скользящей средней и равно 0, когда ниже.

После запуска этих двух строк наш DataFrame должен выглядеть так.

Итак, теперь нам нужно рассчитать сумму акций, которые находятся выше соответствующих скользящих средних, а затем разделить на длину списка SP500, чтобы получить дневной процент. Затем мы можем построить его, чтобы визуализировать результаты. Для построения графика нам нужно импортировать библиотеку matlpotlib. Мы разделим его на две части: одну для 50-wma и одну для 200-wma.

И еще один для 200-wma.

Как мы видим, менее10 %компаний в настоящее время торгуются выше их 200-взвешенной скользящей средней, и ошеломляющие 1,59 % акций торгуются выше своего 50-дневного wma. Анализ этого я оставлю читателю, но сцена выглядит довольно медвежьей.

Это от меня за это, если вам понравилась статья и вы хотите читать похожие и даже более интересные статьи в будущем, рассмотрите возможность подписаться на меня, чтобы быть в курсе последних сообщений.

Спасибо и увидимся в следующем!

Сообщение от QuantFactory:

Спасибо, что являетесь частью нашего сообщества! Перед тем, как ты уйдешь:

  • Присоединяйтесь к нашему эксклюзивному торговому Discord 👉 здесь.
  • Подпишитесь на нашу эксклюзивную рассылку новостей об акциях 👉 здесь.
  • Если вам понравилась история, не стесняйтесь хлопать 👏 и подписываться на автора.
  • Чтобы узнать больше историй из мира алгоритмического трейдинга и количественного анализа, следите за Публикацией Quant Factory.

*Обратите внимание, что эта статья не содержит личных советов по инвестициям, и я не являюсь квалифицированным лицензированным консультантом по инвестициям. Вся информация, представленная здесь, предназначена только для развлекательных или образовательных целей и не должна рассматриваться как личный совет по инвестированию.