Практическое руководство по использованию 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/