13 KiB
Raw Permalink Blame History

Разделы брокерского счёта

Дата: 2026-06-18 Статус: реализовано Эпик: Портфель брокера

Цель

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

Пользовательский результат

Пользователь может:

  • быстро увидеть полную стоимость счёта, денежный остаток и текущую структуру активов;
  • понять, сколько разных акций и выпусков облигаций находится на счёте;
  • перейти к отдельной таблице акций или облигаций;
  • увидеть последние операции на overview и открыть всю доступную историю;
  • отфильтровать историю по одному точному типу операции, например только по выплатам купонов или только по обычному налогу.

Область изменений

Фича изменяет опыт работы с конкретным брокерским счётом и включает:

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

Требования

1. Общая навигация

  • Разделы Обзор, Акции, Облигации и Операции принадлежат одному выбранному брокерскому счёту.
  • На широком экране разделы доступны через постоянное боковое меню.
  • На узком экране боковое меню заменяется горизонтальными прокручиваемыми вкладками.
  • Активный раздел визуально и семантически обозначен.
  • Переход между разделами не меняет выбранный брокерский счёт.

2. Обзор счёта

Overview показывает:

  • название счёта;
  • полную стоимость портфеля;
  • денежный остаток;
  • существующие показатели дневной и ожидаемой доходности;
  • круговую диаграмму структуры портфеля;
  • карточку акций с количеством разных позиций, стоимостью и долей;
  • карточку облигаций с количеством разных выпусков, стоимостью и долей;
  • пять последних доступных операций;
  • переход ко всей доступной истории операций.

Карточки акций и облигаций ведут в соответствующие разделы счёта.

3. Распределение портфеля

  • Проценты рассчитываются от полной стоимости счёта, включая денежный остаток.
  • Диаграмма поддерживает срезы Акции, Облигации, ETF/фонды, Деньги и Прочие.
  • Прочие объединяет остальные и неизвестные классы инструментов.
  • Срез с нулевым значением не отображается.
  • Отрицательное значение не отображается как сектор диаграммы и показывается текстом рядом со сводкой.
  • Легенда показывает название среза, денежную стоимость и процент.
  • Информация остаётся понятной без различения цветов.

4. Счётчики позиций

  • Количество акций означает число разных позиций акций, а не сумму штук всех акций.
  • Количество облигаций означает число разных выпусков облигаций, а не сумму штук всех облигаций.
  • Счётчики отражают полный состав счёта и не зависят от текущей страницы таблицы.

5. Раздел акций

  • Раздел показывает только позиции типа share.
  • Первая версия содержит таблицу с существующими колонками: тикер, название, количество, текущая цена и текущая стоимость.
  • Тикер ведёт на страницу акции, когда маршрут инструмента может быть определён.
  • Таблица сохраняет cursor-пагинацию по 10 позиций.
  • При отсутствии акций показывается отдельное пустое состояние.

6. Раздел облигаций

  • Раздел показывает только позиции типа bond.
  • Первая версия содержит таблицу с существующими колонками: тикер, название, количество, текущая цена и текущая стоимость.
  • Тикер ведёт на страницу облигации, когда маршрут инструмента может быть определён.
  • Таблица сохраняет cursor-пагинацию по 10 позиций.
  • При отсутствии облигаций показывается отдельное пустое состояние.

7. Последние операции на overview

  • Overview показывает не более пяти последних операций доступного по умолчанию периода.
  • Отображение операции сохраняет дату, русское название типа, инструмент и сумму.
  • Блок содержит переход к полному разделу операций.
  • Если операций нет, блок показывает спокойное пустое состояние и сохраняет переход к полной истории.

8. Раздел операций

  • Раздел показывает cursor-пагинированную историю по 10 операций.
  • Без отдельного фильтра дат раздел использует существующий период по умолчанию: с начала текущего календарного года до текущего момента.
  • Под всей доступной историей в рамках первой версии понимаются все cursor-страницы этого периода, а не операции за всё время существования счёта.
  • Пользователь может выбрать ровно один точный тип операции либо значение Все операции.
  • Типы с разным финансовым смыслом не объединяются. В частности, Налог, Налог по облигациям и Налог на дивиденды являются отдельными значениями.
  • В интерфейсе показываются русские названия известных типов, а не технические enum-значения.
  • Выбор нового типа начинает просмотр результатов с первой cursor-страницы.
  • Выбранный фильтр сохраняется в адресе страницы и восстанавливается при открытии ссылки.
  • Значение Все операции удаляет фильтр типа.
  • Фильтр по датам, инструменту и выбор нескольких типов не входят в первую версию.

9. Загрузка, ошибки и пустые состояния

  • Первичная загрузка сводки и таблиц показывает skeleton соответствующей формы.
  • При переходе между cursor-страницами текущие строки не исчезают; поверх таблицы показывается состояние обновления.
  • Ошибка одного раздела не скрывает общую навигацию счёта.
  • Для пустых акций, пустых облигаций и отсутствия операций выбранного типа используются отдельные понятные сообщения.
  • Недоступные отдельные значения отображаются как и не подменяются нулём.

Ограничения

  • Backend остаётся единственным клиентом T-Bank.
  • Денежные значения форматируются в валюте, указанной в данных.
  • Точная структура портфеля и счётчики не должны требовать загрузки всех cursor-страниц на frontend.
  • Существующая cursor-пагинация позиций и операций сохраняется.
  • Фича не добавляет отдельные страницы для ETF, фондов и прочих инструментов.
  • Фича не добавляет новую аналитику доходности, риска или прогнозов.

Acceptance Criteria

  • На широком экране у счёта есть боковая навигация Обзор, Акции, Облигации, Операции.
  • На узком экране те же разделы доступны через горизонтальные прокручиваемые вкладки.
  • Overview не содержит полных таблиц позиций и полной истории операций.
  • Overview показывает полную стоимость, деньги, существующую доходность, диаграмму, карточки акций и облигаций и не более пяти последних операций.
  • Диаграмма рассчитывает доли от полной стоимости счёта вместе с деньгами.
  • Диаграмма имеет текстовую легенду со стоимостью и процентом каждого ненулевого среза.
  • Карточки акций и облигаций показывают количество разных позиций, а не сумму штук.
  • Количество позиций корректно для портфеля, содержащего больше одной cursor-страницы.
  • Раздел акций содержит только акции и сохраняет пагинацию по 10 строк.
  • Раздел облигаций содержит только облигации и сохраняет пагинацию по 10 строк.
  • Раздел операций содержит пагинацию по 10 строк и фильтр по одному точному типу.
  • Без параметров дат раздел операций показывает доступный период с начала текущего календарного года.
  • Фильтры Выплата купона, Налог, Налог по облигациям и Налог на дивиденды дают независимые результаты.
  • После смены типа операций открывается первая страница отфильтрованной истории.
  • Выбранный тип восстанавливается из URL после перезагрузки.
  • Загрузка, обновление, ошибка и пустое состояние каждого раздела отображаются согласно требованиям.

Вне области фичи

  • страницы ETF, фондов, валют, деривативов и прочих инструментов;
  • multi-select типов операций;
  • продуктовые группы операций;
  • UI-фильтры операций по датам и инструментам;
  • изменение правил расчёта доходности;
  • экспорт позиций или операций.