Привет!
Хочу поделиться инструментом для визуализации данных Мосбиржи, Nasdaq, NYSE и AMEX. Графики можно посмотреть на странице finmap.org. Сейчас я занимаюсь этим проектом один, а планов много, например, добавить данные торгов стран Европы, Азии и Латинской Америки. Исходный код опубликован на GitHub. Очень надеюсь, что хабр-эффект всё ещё работает и здесь найдутся те, кто готов присоединиться к разработке. Пожалуйста, расскажите о проекте друзьям и знакомым.
Данные торгов представлены в виде treemap и histogram. В карточке каждой компании отображается краткое описание и новостная лента. В будущем я планирую добавить ленту микроблогов.
Для Московской биржи ценные бумаги можно сортировать по капитализации, объёму торгов и количеству сделок.
Сортировка по объёму торгов и количеству сделок позволяет найти самые ликвидные/спекулятивные бумаги. На данный момент на Мосбирже такими бумагами являются инструменты денежного рынка.
Доступна статистика по количеству компаний, представленных на бирже.
Можно перечислить акции в txt файле и использовать этот список как фильтр, например, для кастомизации новостной ленты. На картинке ниже фильтр для компаний из индекса S&P500.
Ещё одна функция, которая пока находится в зачаточном состоянии - анализ персонального портфеля. Создайте CSV-файл, перечислите в нём тикеры и количество акций. Далее нажмите кнопку ? и выберете созданный CSV-файл. Treemap позволяет увидеть веса отдельных бумаг в портфеле, распределение по странам и секторам. Эта информация может быть использована для принятия решений о диверсификации. Данные обрабатываются на устройстве пользователя, на сервер эта информация не отправляется.
Архитектура
Раз уж мы на Хабре, несколько слов об архитектуре. На данный момент все затраты на инфраструктуру я покрываю из своего кармана, поэтому моя цель - максимально снизить расходы. В качестве хостинга используется Github Pages, фронтенд написан на javascript, для построения графиков используется библиотека Plotly.js. Применена "резиновая" вёрстка, а также технология Power Web Application, которая позволяет пользоваться веб-сайтом как полноценным приложением даже offline. Для обновления данных используется Github Actions, workflow написаны на bash и python.
Сервис обновления новостной ленты хостится в облаке AWS. Архитектура довольно стандартная, но так как Free Tier ограничен одним EC2 инстансом, я использую несколько бесплатных сервисов, которые разными методами реализуют одну и ту же функциональность. Сделано это для обеспечения отказоустойчивости.
User
⇓
Cloudfront
⇓
Firewall
(fallback) ⇙ ⇘ (primary)
API Gateway Application Load Balancer
⇓ ⇓
Google News Target Group
⇓
EC2 Instance
⇓
Google News
Кэширование настроено везде, где это возможно: у клиента, в Cloudfront и на стороне backend-сервиса. Сделано это, опять же, с целью уменьшить нагрузку и стоимость инфраструктуры.
Планы на будущее
Сейчас можно посмотреть визуализацию для Московской биржи, NASDAQ, NYSE и AMEX. Этот список будет пополняться. Я планирую добавить нотификации, больше графиков и аналитики, но сначала нужно унифицировать код, данные и довести до паритета функциональность для всех рынков.
Ещё в планах добавить сервис, который основываясь на информации о доходах и расходах пользователя, даст объективную оценку финансового состояния и предложит конкретные шаги как это состояние улучшить.
Буду ждать ваших отзывов и пул реквестов. С новым годом!
Ссылки
Комментарии (14)
QuantumCross
15.01.2025 11:15Как финансовый советник и управляющий уже более 12 лет, скажу так. То что вы перечислили есть в той или иной форме на различных сайтах. А вот чего реально нет публично, это разбивки ETF. Вбили пару ETF ,указали веса и сервис показывает, какая аллокация по странам, секторам и факторам получилась. А так же автоматический расчёт TER для ETF тоже было бы круто.
let-it-be
А есть в планах помочь пользователям делать ребалансировку персонального портфеля акций. Например, указать в настройках своего портфеля пороговые значения, при достижении которых:
- пользователь получит уведомление, что есть смысл сделать ребалансировку;
- ваша система посчитает стоимость проведения такой ребалансировки портфеля;
- и предложит вариант ребалансировки портфтеля.
finmap-org Автор
Спасибо за комментарий! В планах есть рекомендации на основе альфы и беты, но это не совсем то, что вы описали. Если не сложно, пожалуйста, создайте тикет в Github, я подумаю над реализацией.