Изучить Go путем реализации сбора данных по аналогии с poptimizer + небольшой Frontend на Alpine.js
Реализован Alpine.js в виде SPA со следующими основными разделами
Изменение перечня бумаг в портфеле, для которых необходимо отслеживать появление новых дивидендов среди всех бумаг, обращающихся на MOEX
Обновление данных по дивидендам - производится сверка данных с информацией на сайтах:
Имеется возможность принятия отсутствующих, удаление лишних или ручного добавления новых значений.
Редактирование перечня брокерских счетов и находящихся на них бумаг
Отображение суммарной стоимости и состава портфеля
Большая часть данных обновляется на ежедневной основе после 0h45m MSK, когда на MOEX ISS обычно публикуются итоги торгов. Координацией обновления занимается сервис Update, которой сначала обновляет рыночные данные, а после этого запускает расчет актуализированной стоимости отдельных счетов и портфеля в целом. Если в процессе обновления возникают ошибки, то ни логируются и отправляются в Telegram, а сам процесс по возможности продолжается. Более подробно последовательность обновления изображена на диаграмме
flowchart TD
Update[\Update:0h45m MSK/]-->Data
subgraph Data
TradingDates-->USD
TradingDates-->CPI
TradingDates-->Indexes
TradingDates-->Securities
USD-->Dividends
Securities-->Dividends
Securities-->Status
Securities-->Backup
Securities-->Quotes
Status-->CloseReestry
Status-->NASDAQ
Status-->CheckRaw
end
subgraph Portfolio
Accounts-->Port[Portfolio]
end
Data-->Portfolio
Вручную вводятся данные о дивидендах, выбранных для портфеля тикерах, чтобы для них отслеживалась актуальность данных по дивидендам, и перечне и составе счетов.
flowchart
subgraph Frontend
Tickers[\Tickers/]
Dividends[\Dividends/]
Accounts[\Accounts/]
end
subgraph Data
Securities-->Backup
CheckRaw-->Backup
end
Tickers<-->Securities
Dividends<-->CheckRaw
subgraph Portfolio
Acc[Accounts] --> Port[Portfolio]
end
Accounts<-->Acc[Accounts]