Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Брокерское приложение

По шаблону CheckList аналитики.

Цель

AN Термины

Ограничения, Допущения

  • ТИ - брокер в отличии от форекс, ЦБ регулирует деятельность

Риски

BT

UC

  • Рынок ценных бумаг
    • Биржевой (СПБ, МСБ)
    • Внебиржевой
  • Каталог ценных бумаг
    • Биржевой стакан
    • Типы активов – валюта, акции, фонды, фьючерсы, облигации, структурные ноты
    • Акция - детали, обзор, прогнозы, показатели, дивиденды, купоны, новости, идеи, события и обсуждения
    • Рыночные котировки с биржи идут в брокер
  • Инвестиционный Счет
    • Клиент Открыть
    • Клиент Открыть ИИС
    • Клиент Пополнить с ЛБК и тп
    • Заявка сохраняет Операцию
  • Инвестиционный Портфель
    • Клиент Создать
    • Клиент Просмотр Аналитики
  • Лента новостей
    • Клиент Просмотр
  • Профиль пользователя (Клиент)
    • Регистрация
    • Авторизация
    • Клиент Просмотр
    • Клиент Смена Тарифа (Базовый, Премиум и тп)
    • Инвестиционный профиль (отношение к риску)
  • Робот-советник
  • Заявки (Order)
    • Клиент Создать
    • Клиент Создать Тип заявки: лучшая цена, лимитная заявка, рыночная заявка, стоп-маркет, стоп-лимит и тейк-профит
    • Broker: обрабатывает Заявки, на достаточность средств, резервирование средств, отправка Заявки на биржу, после исполнения отражение в Операциях, учёт в позиции Клиента
  • Маржинальная торговля
    • Клиент Подключить
  • Соцсеть Инвесторов
  • Инвестиционные Рекомендации
  • Скринер для автоматического поиска акций
  • Дарение Акций
  • Программного интерфейса для алгоритмического трейдинга (автоматизированной биржевой торговли)
  • Чат

US

  • <Роль> [должен иметь возможность](https://scrumtrek.ru/blog/product-management/3364/user-story-instruktsiya-po-primeneniyu/) <возможность> в <показатель производительности=""> с <момент отсчета=""> в <условия эксплуатации="">, чтобы <ценность>
  • Как пользователь, я хочу иметь возможность войти в демо-аккаунт, чтобы получить доступ к MVP.
  • Как пользователь, я хочу иметь возможность просматривать список лучших акций по рыночной капитализации.
  • Как пользователь, я хочу иметь возможность просматривать список активов, которыми я владею.
  • Как пользователь, я хочу иметь возможность выбирать активы и просматривать цену в режиме реального времени.
  • Как пользователь, я хочу иметь возможность разместить лимитный или рыночный ордер на покупку актива.
  • Как пользователь, я хочу иметь возможность разместить лимитный или рыночный ордер на продажу актива (если он у меня уже есть, короткие продажи пока не поддерживаются).

БП

FT

DB Доменная модель

НФТ

Безопасность

Производительность

  • количество активных пользователей - 500к\день
  • rps
    • ~100,000,000 requests per day
    • ~30 krps in a trading day
  • количество ордер 1млн\день
  • ~3000 transactions per second
    • Up to 10x during peaks = ~30,000 transactions per second
  • Latency важна
    • мы не хотим, чтобы пользователь был удивлен резкими колебаниями цен, и должны приложить все усилия, чтобы обеспечить самую низкую цену.
    • 200-400мс на ордер
  • Цены должны обновляться в режиме реального времени, чтобы пользователь мог принять решение, основываясь на уверенности в текущей рыночной цене.

Надежность

  • 24\7
  • доступность 99,9%

TD

UI

ADR

  • TODO
  • TODO 2 order matching system
  • TODO Designing Smart Notification of Stock Price Changes
  • Example
  • Load Balancer
    • envoy?
  • Task Queue
  • Rate limit API
    • от объема комиссии ордер-заявка
    • envoy?
  • Worker Cluster
  • Lazy Loading
  • Caching: Redis, Service Memory
    • По торговым статусам, last price
  • API Protocol
    • WebSocket
    • Grpc
      • Api client generation
      • Version
      • Dedlain time request from client - stop execute
        • Grpc web
        • Почему не веб сокеты? Grpc позволяет обернуть рест, веб сокеты в одном сервисе..?!
  • СУБД
    • Postgrsql
  • Тех стек
    • API : java (много на рынке)
      • ТИ - прослойка к брокеру
    • брокера: java, go, scala
  • EDA
    • Консистентность в конечном счете

Tradeoffs Анализ вариантов

  • Web sockets vs. Server-Sent Events (SSEs) vs. Polling

Доменная модель

API

Метрики

  • Продуктовые
    • стоимость сделки
  • Сервисные
  • Системные
  • Аналитика: Firebase Analytics, Crashlytics, AppsFlyer, Amplitude

Роли

Справочники