docs: investment performance vs Moscow Exchange index (WealthLedger/main#54) (#67)
Docs security / security (push) Successful in 7s
Docs verify / verify (push) Successful in 11s

This commit was merged in pull request #67.
This commit is contained in:
2026-11-08 16:49:39 +03:00
parent 364f6bd8d0
commit f504a0f566
12 changed files with 273 additions and 11 deletions
@@ -0,0 +1,68 @@
# Результат инвестирования
Вкладка «Результат» на странице брокерского счёта и в режиме
[«Все счета»](all-accounts.md) отвечает на два вопроса:
- сколько заработали вложенные деньги;
- обогнал ли пользователь рынок.
Результат считается за всё время истории счёта, только в рублях. Решение и
отклонённые альтернативы описаны в
[ADR 023](../../adr/023-investment-performance-vs-index.md).
## Показатели
| Показатель | Смысл |
| --- | --- |
| Вложено (нетто) | Сумма пополнений минус сумма выводов рублей |
| Прибыль | Текущая стоимость портфеля минус чистые вложения |
| Доходность | Ставка XIRR с учётом сумм и дат пополнений и выводов |
| Те же деньги в индексе Мосбиржи | Стоимость и доходность тех же пополнений и выводов, вложенных в индекс полной доходности MCFTRR (с дивидендами после налогов) |
| Опережение или отставание рынка | Разница доходностей в процентных пунктах и разница стоимостей в рублях |
Ценовой индекс IMOEX не учитывает дивиденды. Он показан на графике только
для справки и в сравнении не участвует.
Период начинается с первого пополнения, а не с открытия счёта. Если деньги
вложены меньше 365 дней, проценты показаны за фактическое число дней и не
пересчитываются в годовые.
## Какие операции считаются потоками
Внешние потоки — только пополнения и выводы рублей (типы T-Bank `INPUT`,
`INPUT_ACQUIRING`, `INPUT_SWIFT`, `INP_MULTI` и соответствующие `OUTPUT`).
Сделки, купоны, дивиденды, погашения, налоги и комиссии уже отражены в
текущей стоимости и потоками не являются. Учитываются только операции до
момента последней полной оценки портфеля.
## Когда результата нет
Число не подменяется нулём: вместо него показывается причина.
| Причина | Когда возникает |
| --- | --- |
| `HISTORY_START_UNKNOWN` | Неизвестна дата открытия счёта |
| `OPERATIONS_HISTORY_INCOMPLETE` | История операций не получена полностью до момента оценки |
| `PORTFOLIO_VALUATION_INCOMPLETE` | Нет полной оценки портфеля |
| `NON_RUB_ACTIVITY` | Есть потоки или остатки не в рублях |
| `UNVALUED_SECURITIES_TRANSFER` | Бумаги введены или выведены без денежной оценки |
| `UNCONFIRMED_TRANSFER` | В «Все счета» есть похожие на перевод между своими счетами операции, связь которых источник не подтверждает |
| `ACCOUNT_VALUATION_DATES_DIFFER` | В «Все счета» последние оценки счетов сделаны в разные московские дни |
| `NO_SOLUTION` | Уравнение доходности не имеет решения; прибыль остаётся |
| `AMBIGUOUS_RETURN` | Потоки меняют знак больше одного раза, и единственность ставки не доказана; прибыль остаётся |
| `INDEX_HISTORY_UNAVAILABLE` | Нет истории индекса за период; прибыль и доходность остаются, сравнения нет |
В «Все счета» счёт с причиной исключается, а результат помечается
неполным со списком исключённых счетов. Если считать не по чему, результат
недоступен целиком.
## График
На графике показаны ступенчатая линия чистых вложений, стоимость тех же
денег в индексе по закрытиям торговых дней, справочная линия индекса без
дивидендов и отметка текущей стоимости портфеля на конец периода. Линии
прошлой стоимости портфеля нет: такая история пока не хранится.
Нормативное поведение задаёт change
`2026-11-07-investment-performance-vs-index` в репозитории specs, форму
ответа — [HTTP API](../../architecture/http-api.md#investment-performance).