# Сервис получения информации о портфеле по конкретному счёту
## Получить список операций по счёту
В процессе работы торговому роботу нужно получать информацию об операциях по счёту — например, чтобы
корректно рассчитывать доходности и собирать статистику своей работы.
Для этого можно использовать два метода:
- [getOperations](/investAPI/operations#getoperations).
- [getOperationsByCursor](/investAPI/operations#getoperationsbycursor).
[getOperationsByCursor](/investAPI/operations#getoperationsbycursor) — более предпочтительный для использования. Метод возвращает информацию обо всех операциях, в том числе отменённых, поддерживает пагинацию, расширенную фильтрацию и обладает всеми преимуществами метода [getOperations](/investAPI/operations#getoperations).
Для вызова методов во входных параметрах достаточно указать `account_ID`.
<blockquote>
<p><strong>Важно</strong><br>
Метод <a href="/investAPI/operations#getoperations">getOperations</a>:</p>
<ul>
<li>Не поддерживает опционы. Для получения информации по операциям с опционами используйте метод <a href="/investAPI/operations#getoperationsbycursor">getOperationsByCursor</a>.</li>
<li>Возвращает отменённые операции — параметр <code>state</code>. Учитывайте это в алгоритме работы. </li>
<li>Возвращает только последнюю тысячу операций.</li>
</ul>
</blockquote>
Мы не рекомендуем использовать метод получения операций для идентификации изменений
статусов торговых поручений — некоторые операции могут приходить с задержкой относительно реального
исполнения.
Для получения статусов исполнения торговых поручений рекомендуем использовать [стрим](/investAPI/head-orders/#_7) сервиса работы с торговыми поручениями.
При работе учитывайте [особенности методов](/investAPI/operations_problems).
## Получить портфолио
Чтобы торговый робот получал текущее состояние портфеля по счёту, используйте метод [getPortfolio](/investAPI/operations#getportfolio).
Отличие метода от [getPositions](/investAPI/operations#getpositions) в том, что он
возвращает статистическую информацию по портфелю — абсолютные и относительные доходности, текущую
стоимость активов и другое.
Обратите внимание: для расчёта суммарной стоимости активов используются текущие цены биржевых
инструментов. Если в данный момент торги не ведутся, берётся цена закрытия последней торговой
сессии.
>**Важно**<br>
>Сейчас запросить портфолио по счёту Инвесткопилки нельзя — `type: ACCOUNT_TYPE_INVEST_BOX`.
<p>Особенности: </p>
<ul>
<li><p>В методе есть булев параметр <code>blocked</code> — он принимает значение <code>true</code>, если инструмент заблокирован депозитарием.</p>
</li>
<li><p>Значения средних цен покупки инструментов рассчитываются асинхронно. Возможна задержка в пересчёте до одной секунды. Параметры:</p>
<ul>
<li><code>average_position_price_pt</code>;</li>
<li><code>average_position_price</code> — средневзвешенная цена позиции;</li>
<li><code>average_position_price_fifo</code> — средняя цена позиции по методу FIFO.</li>
</ul>
</li>
</ul>
[Подробнее о методах расчёта с примерами](https://www.tbank.ru/help/invest-educate/yield-analysis/about/math-method/)
## Получить список позиций портфеля по счёту
Для принятия решений торговому роботу нужно получать список актуальных позиций в портфеле — то есть
количество ценных бумаг и валютных позиций по счёту, включая заблокированные средства.
Для этого мы рекомендуем использовать метод [getPositions](/investAPI/operations#getpositions).
В методе также возвращаются:
- Тип инструмента для списка ценно-бумажных позиций портфеля — параметр `instrument_type`.
- Булев параметр `exchange_blocked` — принимает значение `true`, если инструмент заблокирован депозитарием.
- Массив опционов в портфеле.
>**Важно**<br>
>Метод не возвращает объём средств, заблокированных под гарантийное обеспечение фьючерсов. Для
получения этой информации используйте метод [getWithdrawLimits](/investAPI/operations#getwithdrawlimits).
## Получить доступный остаток для вывода денежных средств
Используйте метод [getWithdrawLimits](/investAPI/operations#getwithdrawlimits) — через него можно получить доступный баланс денежных средств для вывода и количество заблокированных валютных позиций.
## Получить отчёты
В T-Invest API можно получать различные отчёты. Например, [брокерский отчёт](/investAPI/operations#getbrokerreport) или [справку о доходах за пределами РФ](/investAPI/operations#getdivIDendsforeignissuer).
>**Обратите внимание**<br>
>Операции формирования отчётов трудоёмкие, поэтому есть ограничения на период формирования отчёта и лимиты на количество вызовов методов.
Запрос справки о доходах за пределами РФ работает корректно, если верхний интервал запрашиваемых дат не позднее, чем 2 рабочих дня от текущей даты.
## Стрим позиций и доходности портфеля
gRPC server-side stream [PortfolioStream](/investAPI/operations/#portfoliostream) предназначен для получения информации об изменении портфеля по факту совершения сделок.
Стрим возвращает статистическую информацию по портфелю — абсолютные и относительные доходности, текущую стоимость активов и другие.
В валюте инструмента возвращаются:
- средневзвешенная цена позиции,
- текущая рассчитанная доходность,
- текущая цена инструмента,
- средняя цена лота в позиции по методу FIFO.
Для фьючерсов cредняя цена лота в позиции возвращает количество в пунктах.
## Стрим изменения позиций портфеля
gRPC server-side stream [PositionsStream](/investAPI/operations/#positionsstream) предназначен для получения информации по изменению позиций портфеля.
В качестве входного необязательного параметра стрим принимает массив идентификаторов счетов, по которым вы хотите получать изменения позиций.
В качестве сообщений стрима приходят изменения позиций, объекты `money, securities, futures, options` и дата и время операции, изменившие позицию.
### Торговые статусы инструментов и расписание торгов
[Торговые статусы инструментов и расписание торгов](https://russianinvestments.github.io/investAPI/faq_trading_status/)
Также рекомендуем смотреть актуальную информацию по режимам и статусам торгов на сайтах [Московской биржи](https://www.moex.com/) и [СПБ биржи](https://spbexchange.ru/).