Практическое руководство по использованию API исторических данных EOD для финансовых новостей.
Table of Contents: - Introduction - Extracting Financial News with Python -- Importing Packages -- Basic Program for Extracting Financial News -- Advanced Program for Extracting Financial News - Closing Notes
Для инвестора важно быть в курсе событий на рынках, чтобы получить максимальную выгоду. Стандартные газеты, специализирующиеся на финансах и инвестициях, являются хорошим источником, и их более чем достаточно для долгосрочных инвесторов или людей, которые инвестируют в рынок как в источник пассивного дохода. Но внутридневные трейдеры должны знать, что происходит вокруг них в режиме реального времени, учитывая жесткую конкурентную среду.
Хотя есть много ресурсов для новостей в реальном времени, они либо дорогие, либо не имеют возможности настройки. Так что, по моему мнению, лучший путь — это автоматизировать процесс с помощью Python с использованием API, но проблема в том, что все API ненадежны. Но исторические данные EOD здесь, чтобы спасти нас с их мощными API финансовых новостей, которые являются гибкими и, что более важно, надежными. В этой статье. Я собираюсь провести вас через весь процесс извлечения финансовых новостей с помощью API-интерфейсов EOD Historical Data с Python. Давайте погрузимся в это!
Примечание. Эта статья в значительной степени основана на API-интерфейсах, предоставляемых Историческими данными EOD. Поэтому, чтобы следить за предстоящим контентом без каких-либо проблем, убедитесь, что у вас есть учетная запись для себя, поскольку она позволяет вам получить доступ к вашему закрытому ключу API. Вы можете создать аккаунт по ссылке здесь. Кроме того, не все API, упомянутые в этой статье, предлагаются бесплатно, но требуется подписка. Посмотрите цены на все подписки здесь и выберите то, что вам больше всего подходит.
Извлечение финансовых новостей с помощью Python
1. Импорт пакетов
Давайте сначала начнем с импорта необходимых пакетов в нашу среду Python, поскольку это основной процесс в любом проекте программирования. В этой статье нам понадобятся только пакеты Requests для вызовов API и Termcolor для настройки шрифта или текста. Если вы еще не установили эти два пакета, введите следующие строки кода в командной строке:
pip install requests pip install termcolor
После установки пакетов мы теперь можем импортировать их в нашу среду Python, используя следующий код:
import requests from termcolor import colored as cl api_key = 'YOUR API KEY'
Теперь мы успешно импортировали необходимые пакеты в нашу среду вместе с сохранением ключа API в переменной api_key
.
2. Базовая программа для извлечения финансовых новостей
В этом разделе мы собираемся создать очень простую программу Python для извлечения финансовых новостей, и цель этого конкретного раздела состоит не в том, чтобы создать идеальную программу, а в том, чтобы получить некоторое представление об API финансовых новостей, предоставляемом EOD Historical Data. Следующий фрагмент кода представляет собой базовую программу, которая будет извлекать новости в соответствии с заданными входными данными:
def get_stock_news(stock, api_key): url = f'https://eodhistoricaldata.com/api/news?api_token={api_key}&s={stock}' news_json = requests.get(url).json() news = [] for i in range(10): title = news_json[-i]['title'] news.append(title) print(cl('{}. '.format(i+1), attrs = ['bold']), '{}'.format(title)) return news amzn_news = get_stock_news('AMZN', api_key)
В приведенном выше коде мы сначала определяем функцию с именем get_stock_news
, которая принимает в качестве параметров символ акции, о которой мы хотим получить новости (symbol
), и ключ API (api_key
). Внутри функции мы создаем URL-адрес API на основе заданных входных данных (символ акции и ключ API) и сохраняем его в переменной url
. Давайте теперь уделим немного времени, чтобы разобрать структуру URL-адреса API. Вот URL:
https://eodhistoricaldata.com/api/news?api_token={api_key}&s={stock}
Первый параметр приведенного выше URL-адреса — это параметр api_token
, в котором мы указываем ключ API, а следующий параметр — s
, который принимает символ акции в качестве входных данных. Эти два параметра являются первичными или обязательными, но, тем не менее, существует множество вторичных параметров, доступных для настройки и настройки.
Переходя к коду, после сохранения URL-адреса API мы используем функцию get
, предоставляемую пакетом Requests, для вызова API и, наконец, сохраняем ответ API в формате JSON в переменную news_json
. Следующие строки кода в значительной степени посвящены осмысленному представлению извлеченных данных, что необязательно, но чрезвычайно полезно.
Итак, после извлечения финансовых новостей мы создаем цикл for с основной идеей распечатать заголовки последних десяти новостей об акциях и добавить заголовки в список news
. Наконец, мы возвращаем news
и вызываем созданную функцию для извлечения десяти последних новостей об Amazon, и результат выглядит следующим образом:
3. Расширенная программа для извлечения финансовых новостей
В предыдущем разделе мы стремились просто создать базовую программу, но теперь давайте сделаем еще один шаг вперед, создав расширенную программу для настройки API в соответствии с нашими потребностями. По сравнению с предыдущим разделом код не будет сильно отличаться, за исключением изменения URL-адреса API. С учетом сказанного код будет выглядеть примерно так:
def get_customized_news(stock, start_date, end_date, n_news, api_key, offset = 0): url = f'https://eodhistoricaldata.com/api/news?api_token={api_key}&s={stock}&limit={n_news}&offset={offset}&from={start_date}&to={end_date}' news_json = requests.get(url).json() news = [] for i in range(len(news_json)): title = news_json[-i]['title'] news.append(title) print(cl('{}. '.format(i+1), attrs = ['bold']), '{}'.format(title)) return news tsla_news = get_customized_news('TSLA', '2021-11-09', '2021-11-11', 15, api_key, 0)
Как я уже говорил, структура кода более или менее похожа на структуру предыдущего раздела, но здесь мы играем с другими параметрами API. В приведенном выше коде функция, которую мы определили, имеет пять основных параметров: символ акции (symbol
), начальная дата новостной ленты (start_date
), конечная дата новостной ленты (end_date
), количество новостей, которые мы хотим в качестве выходных данных (n_news
), ключ API (api_key
) и один необязательный параметр (offset
).
Подобно тому, как мы проверили URL-адрес API в предыдущем разделе, давайте сделаем то же самое и в этом разделе, поскольку мы внесли некоторые изменения. Вот URL:
https://eodhistoricaldata.com/api/news?api_token={api_key}&s={stock}&limit={n_news}&offset={offset}&from={start_date}&to={end_date}
Первые два параметра URL-адреса такие же, как мы видели ранее, это api_token
и параметр s
. Затем у нас есть параметр limit
, где мы должны указать длину вывода (минимум 1, максимум 1000). Далее идут параметры from
и to
, названия которых говорят сами за себя. Между ними находится параметр offset
, значение которого по умолчанию равно 0, но при необходимости его можно изменить.
Возвращаясь к коду, мы делаем все то же самое, что и раньше, для представления извлеченных данных с помощью цикла for, и, наконец, мы возвращаем значения и вызываем созданную функцию, чтобы получить настроенную ленту новостей Tesla. Результатом кода является список, который выглядит следующим образом:
Примечание. Выходные данные API финансовых новостей могут возникать с некоторой задержкой.
Заключительные примечания
В этой статье мы узнали все, что нам нужно знать об API финансовых новостей EOD Historical Data и о том, как его можно использовать для создания базовых программ, а также специализированных расширенных программ, которые извлекают новости в соответствии с нашими потребностями в Python.
Давайте теперь поговорим о областях улучшения. Эту статью следует рассматривать только как краткий обзор приложений API финансовых новостей EOD Historical Data, и ее можно вывести на следующий уровень несколькими различными способами. Одним из таких интересных способов является создание приложения для анализа настроений, которое будет анализировать новостную ленту, извлеченную с помощью API, и показывать ее хорошее, плохое или нейтральное состояние. Люди могут использовать это приложение, чтобы отметить текущую тенденцию акций и принять соответствующие инвестиционные решения.
В заключение, новости являются одним из величайших факторов влияния на рынок, и только тот, кто имеет сильное преимущество, может добиться успеха среди остальных. Можно согласиться с тем, что в прошлом у людей не было возможности получить доступ к новостям в режиме реального времени для огромного количества акций, но благодаря таким ресурсам, как API финансовых новостей, предоставляемый EOD Historical Data, любой человек из любой точки мира может это сделать. сейчас. С учетом сказанного вы подошли к концу статьи и надеемся, что узнали из нее что-то новое и полезное.
Полная документация: https://eodhistoricaldata.com/financial-apis/financial-news-api/