Получение финансовых данных в Python

Вы хотите, чтобы финансовые данные компании и страны были помещены в фрейм данных Python Pandas

Показан метод получения зависимых от времени цен на активы и мировых экономических данных.

Существует множество баз данных для финансовых данных. Основные бесплатные (без платного доступа) базы данных, которые я использую:

  • Yahoo Finance — хороший источник загружаемых зависимых от времени цен на активы из любого биржевого тикера США. Я показываю метод Pandas, который объединяет API Yahoo в DataFrame Python pandas.
  • База данных FRED (экономические данные Федерального резерва) насчитывает более 400 000 наборов данных.
  • CALCBENCH — это база данных финансовых данных более 9000 публичных компаний США. Свободная область позволяет визуализировать и загружать данные в Excel. Доступ к другим функциям осуществляется за (высоким) платным доступом. Хотя многие из его функций доступны только для премиум-пользователей, бесплатная версия позволяет пользователям просматривать все данные и загружать их в Excel.

Каковы крупнейшие торговые биржи?

Двадцать одна фондовая биржа по всему миру имеет рыночную капитализацию более 1 триллиона долларов США.

Что такое тикер?

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

Тикерные символы зависят от биржи. Например, IBM — это тикер на NYEX (Нью-Йоркской бирже). На Лондонской бирже ii IBM.L использует поставщика данных Yahoo.

Кроме того, символы тикера для одной и той же компании могут меняться. Недавний пример: тикер FB меняется на META..

В зависимости от поставщика данных тикеры также меняются. Я всегда сталкиваюсь с разницей в тикерах между источниками Bloomberg, Reuters и Yahoo. Я использую Yahoo в этой статье блога.

Подробные пояснения к тиккерным символам находятся здесь и здесь.

Как получить тикер компании?

Я ввожу ‹бегущую строку с названием компании› в поиске Google Chrome или Apple Safari. Например, мне нужен тикер китайской компании Alibaba. В результате получается БАБА:

Я могу получить список всех символов тикера, загруженных в CSV, значения, разделенные запятыми, и текстовый форматированный файл здесь.

Как прочитать исторические данные о ценах компании в Python?

Утомительный, но простой подход — использовать Yahoo API.

Однако я использую метод pandas_datareader.data.DataReader, который объединяет различные вызовы http requestв одну строку кода Python. В первом примере показано, как получить исторические данные о ценах IBM.

ticker = 'IBM'
rd_type = 'yahoo'
start_date = '1960/05/10'
end_date = '2030/07/30'
column_name =  'Adj Close'
EFT_df = DataReader(ticker, rd_type, 
                        start = start_date, end = end_date)
EFT_df.head(n=2), EFT_df.tail(n=2)

Обратите внимание на удобство интерфейса вызова. Я могу поставить start_date раньше, чем самая ранняя дата доступных данных. Кроме того, я могу поставить the_end_date позже последней доступной даты данных. Очень полезно для получения полного спектра доступных данных.

Во втором примере показано, как получить исторические данные о ценах IBM с Лондонской биржи.

ticker = 'IBM.L'
rd_type = 'yahoo'
start_date = '1960/05/10'
end_date = '2030/07/30'
column_name =  'Adj Close'
EFT_df = DataReader(ticker, rd_type, 
                        start = start_date, end = end_date)
EFT_df.head(n=2), EFT_df.tail(n=2)

Примечание. Значения цен для IBM и IBM.L различаются, поскольку первый набор данных представлен в мгновенных единицах измерения в долларах, а второй набор данных — в мгновенных единицах в фунтах.

В третьем примере показано, как получить исторические данные о ценах китайской компании Alibaba, котирующейся на бирже США.

from pandas_datareader.data import DataReader
ticker = 'BABA'
rd_type = 'yahoo'
start_date = '1960/05/10'
end_date = '2030/07/30'
EFT_df = DataReader(ticker, rd_type, 
                        start = start_date, end = end_date)
EFT_df.head(n=2), EFT_df.tail(n=2)

Мы можем получить исторические цены почти на любую акцию на более чем двадцати одной международной бирже!

Как прочитать в Python финансовые данные о стране и другие финансовые данные?

Используя pandas_datareader.data.DataReader,, я могу получить доступ к любым финансовым данным компании или государственным экономическим данным, которые мне нужны.

Все источники, поддерживаемые методомpandas_datareader.data.DataReader, вы найдете здесь. Помимо Yahoo и FRED, вы можете получить данные из двенадцати других источников, таких как Quandl, World Bank и OECD.

Что такое ФРЕД?

FRED — это Федеральная резервнаябаза данных Ээкономическихданных, содержащая более 400 000 наборов данных. База данных FRED содержит все экономические индексы США и другие индексы мировой экономики, подготовленные различными государственными учреждениями.

Примером категорий FRED является индекс потребительских цен (ИПЦ), валовой внутренний продукт (ВВП), ставки казначейства, безработица, обменные курсы, инфляция и доходы домохозяйствдля США и других стран.

FRED имеет API для доступа к своей базе данных через Интернет.

Однако, опять же, я использую метод pandas_datareader.data.DataReader, который объединяет различные вызовы http requestв одну строку кода Python. Метод pandas_datareader.data.DataReader — единственный вызов, который вам понадобится для четырнадцати источников данных, таких как Yahoo Finance, FRED, Quandl, Всемирный банк и ОЭСР.

В первом примере показано, как получить ежемесячное скользящее 12-месячное изменение данных индекса потребительских цен (ИПЦ).

ticker = 'MEDCPIM158SFRBCLE'
rd_type = 'fred'
start_date = '1960/05/10'
end_date = '2022/07/30'
EFT_df = DataReader(ticker, rd_type, 
                        start = start_date, end = end_date)
EFT_df.head(n=2), EFT_df.tail(n=2)

Как найти набор данных в FRED

В течение многих лет я искал словарь для более чем 400 000 наборов данных в FRED. Дайте мне знать, если вы знаете, как получить такого зверя.

Даже если бы такой словарь поиска FRED существовал, я мог бы не использовать его.

FRED предоставляет иерархический набор форм для поиска набора данных и его тикера.

Например, я показываю, как мне удалось найти тикер MEDCPIM158SFRBCLE или скользящее 12-месячное ежемесячное изменение в наборе данных индекса потребительских цен (ИПЦ) за четыре клика.

0. Начните с tps://fred.stlouisfed.org/

  1. Нажмите на CPI в популярных поисковых запросах в нижнем левом квадранте веб-страницы.

  1. Нажмите «Частота» в нижнем левом квадранте веб-страницы.
  2. Нажмите «Ежемесячно» в нижнем левом квадранте веб-страницы.
  3. Нажмите Медианный индекс потребительских цен в центре веб-страницы.

4. Нажмите Медианный индекс потребительских цен в центре веб-страницы.

Вы видите URL-адрес https://fred.stlouisfed.org/series/MEDCPIM158SFRBCLE. Тикер MEDCPIM158SFRBCLE — это то, как вы ссылаетесь на этот набор данных в методе pandas_datareader.data.DataReader.

Резюме основных выводов

  • Yahoo Finance — хороший источник загружаемых зависимых от времени цен на активы из любого биржевого тикера США.
  • База данных FRED (экономические данные Федеральной резервной системы) насчитывает более 400 000 наборов данных.
  • Все источники, поддерживаемые методом pandas_datareader.data.DataReader, вы найдете здесь. Помимо Yahoo и FRED, вы можете получить данные из двенадцати других источников, таких как Quandl, World Bank и OECD.

Весь код, используемый в этом блоге, находится по адресу: https://github.com/bcottman/FinMrkt/blob/main/src/base.py.

и

https://github.com/bcottman/FinMrkt/blob/main/src/ReadInData.ipynb.

Продолжайте продуктивно заниматься программированием!

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



Подпишитесь на DDIntel Здесь.

Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate