Получение финансовых данных в 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/
- Нажмите на CPI в популярных поисковых запросах в нижнем левом квадранте веб-страницы.
- Нажмите «Частота» в нижнем левом квадранте веб-страницы.
- Нажмите «Ежемесячно» в нижнем левом квадранте веб-страницы.
- Нажмите Медианный индекс потребительских цен в центре веб-страницы.
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