javascript

Как я маркетдату агрегировал. Визуализация данных Nasdaq, LSE и MOEX

  • четверг, 27 февраля 2025 г. в 00:00:07
https://habr.com/ru/articles/884938/

В предыдущей статье я рассказал о finmap.org - инструменте визуализации данных Мосбиржи и американских площадок. Спасибо хабравчанам за отзывы и предложения. Отдельная благодарность за донаты, вы помогаете покрыть расходы на AWS. Благодаря вашим идеям, в finmap.org появилась строка поиска по тикеру, а в portfolio можно отобразить американские ETF.

Американские ETF в портфолио (finmap.org)
Американские ETF в портфолио (finmap.org)

Для каждого сектора можно посмотреть количество ценных бумаг, которые в него входят.

Мосбиржа, количество бумаг по секторам (finmap.org)
Мосбиржа, количество бумаг по секторам (finmap.org)

Помимо MOEX, Nasdaq, NYSE и AMEX я добавил данные торгов Лондонской биржи. Датафайлы приведены к общему формату, это сильно упростило разработку. Отображение исторических данных в виде гистограммы теперь доступно для всех площадок.

Лондонская биржа, histogram и treemap (finmap.org)
Лондонская биржа, histogram и treemap (finmap.org)

В ближайшее время я планирую добавить ещё несколько площадок. Моя цель - агрегировать на finmap.org как можно больше данных. Пожалуйста, напишите в комментариях какие биржи/страны вы хотели бы видеть?

Backend

Многие спрашивали как агрегируются данные. Для Мосбиржи я использую MOEX ISS, для всех американских площадок - Nasdaq API, для Лондонской биржи - api.londonstockexchange.com.

Скриннеры Nasdaq и Лондонской биржи
Скриннеры Nasdaq и Лондонской биржи

Для автоматизации используется Github Actions. Workflow вызывает curl, который через API забирает данные в виде Json, далее Json процессится с помощью jq. Никакого больше python. Jq выполняется быстрее и предустановлен в большинстве linux-дистрибутивов, нет необходимости поднимать виртуальное окружение, устанавливать зависимости. Код опубликован здесь:

Данные для построения histogram обновляются раз в сутки:

Курс рубля я беру с Мосбиржи, других валют - Frankfurter API:

Данные о стоимости нефти берутся из U.S. Energy Information Administration:

Что дальше?

В следующем обновлении я добавлю как минимум ещё одну площадку. Репозиторий будет разделён, чтобы сократить время выполнения workflows и сделать их запуск более управляемым.

Это все новости на данный момент. Пожалуйста, напишите в комментариях что думаете о проекте, что хотели бы видеть. Звёздочки в github и плюсы в карму приветствуются, заранее спасибо!

Ссылки

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Понравился проект?
25% Да, буду пользоваться!1
50% Интересно, но не имеет для меня практической пользы2
25% Бесперспективняк1
Проголосовали 4 пользователя. Воздержавшихся нет.