# Песочница T-Invest API
## Работа с песочницей
Песочница — это тестовый контур. Работа в песочнице не влияет на реальные данные.
С песочницей можно работать несколькими способами:
1. Вызывать методы по адресу песочницы — `sandbox-invest-public-api.tinkoff.ru:443`.
2. Пользоваться только методами песочницы.
Мы рекомендуем использовать первый способ.
[Подробнее про различия контуров](/investAPI/url_difference/)
## Методы
### Работа со счетами
Для тестирования своего торгового робота в песочнице можно использовать неограниченное
количество счетов, которые есть только в песочнице и не связаны реальными
торгами на бирже.
* [OpenSandboxAccount](/investAPI/sandbox#opensandboxaccount) — создать специальный счёт песочницы;
* [SandboxPayIn](/investAPI/sandbox#sandboxpayin) — пополнить баланс счёта песочницы;
* [CloseSandboxAccount](/investAPI/sandbox#closesandboxaccount) — закрыть счёт в песочнице.
>**Обратите внимание**<br>
>Пополнять счёт песочницы можно только в рублях. Чтобы выполнять операции с другой валютой расчётов, купите эту валюту через метод [PostOrder](/investAPI/orders#postorder).
Чтобы получить список своих счетов в песочнице, используйте метод [getAccount](/investAPI/sandbox#getaccounts).
>**Важно**<br>
>Все счета в песочнице являются виртуальными и в любое
время могут быть удалены. Если созданный ранее счёт не найден, создайте новый.
Счета хранятся 3 месяца с даты последнего использования.<br><br>
>В песочнице нет стоп-заявок и маржинальных показателей. Также не рассчитываются дополнительные показателя счёта, ставки риска, размер гарантийного обеспечения и ликвидность портфеля.
### Состояние портфеля
Методы для получения операций и портфеля аналогичны методам основных сервисов:
* [getSandboxOperations](/investAPI/sandbox#getsandboxoperations) — получить операции по счёту;
* [getSandboxPortfolio](/investAPI/sandbox#getsandboxportfolio) — получить портфолио по счёту;
* [getSandboxPositions](/investAPI/sandbox#getsandboxpositions) — получить список позиций по счёту.
>**Обратите внимание**<br>
>Для методов песочницы не рассчитываются некоторые статистические параметры портфеля — например, относительная и абсолютная доходности.
### Торговые поручения
Параметры методов выставления, отмены и получения статуса торгового поручения в
песочнице аналогичны основным методам T-Invest API.
* [postSandboxOrder](/investAPI/sandbox#postsandboxorder) — выставить торговое поручение;
* [getSandboxOrderState](/investAPI/sandbox#getsandboxorderstate) — получить статус торгового поручения;
* [cancelSandboxOrder](/investAPI/sandbox#cancelsandboxorder) — отменить выставленное торговое поручение;
* [getSandboxOrders](/investAPI/sandbox#getsandboxorders) — получить список торговых поручений по счёту.
### Сервис операций
<ul>
<li><p><a href="/investAPI/sandbox/#getsandboxoperations">GetSandboxOperations</a> и <a href="/investAPI/sandbox/#getsandboxoperationsbycursor">GetSandboxOperationsByCursor</a> — получить операции по номеру счёта. В <code>OperationType</code> поддерживают фильтрацию только по типам <code>OPERATION_TYPE_BUY</code> и <code>OPERATION_TYPE_SELL</code>.</p>
</li>
<li><p><a href="/investAPI/sandbox#getdividendsforeignissuer">GetDividendsForeignIssuer</a> — получить отчёт «Справка о доходах за пределами РФ».</p>
<p> Обратите внимание: в этом методе песочницы всегда возвращается пустой ответ.</p>
<pre><code> <span class="hljs-string">"div_foreign_issuer_report"</span>: {
<span class="hljs-string">"dividends_foreign_issuer_report"</span>: <span class="hljs-string">[]</span>,
<span class="hljs-string">"itemsCount"</span>: <span class="hljs-number">0</span>,
<span class="hljs-string">"pagesCount"</span>: <span class="hljs-number">0</span>,
<span class="hljs-string">"page"</span>: <span class="hljs-number">0</span>
},
<span class="hljs-string">"payload"</span>: <span class="hljs-string">"div_foreign_issuer_report"</span>
</code></pre></li>
<li><p><a href="/investAPI/sandbox#getbrokerreport">GetBrokerReport</a> — получить брокерский отчёт.</p>
<p> Обратите внимание: в этом методе песочницы всегда возвращается пустой ответ.</p>
<pre><code> <span class="hljs-string">"get_broker_report_response"</span>: {
<span class="hljs-string">"broker_report"</span>: <span class="hljs-string">[]</span>,
<span class="hljs-string">"itemsCount"</span>: <span class="hljs-number">0</span>,
<span class="hljs-string">"pagesCount"</span>: <span class="hljs-number">0</span>,
<span class="hljs-string">"page"</span>: <span class="hljs-number">0</span>
},
<span class="hljs-string">"payload"</span>: <span class="hljs-string">"get_broker_report_response"</span>
</code></pre></li>
<li><p><a href="/investAPI/sandbox#portfoliostream">PortfolioStream</a> — server-side stream обновлений портфеля.</p>
</li>
<li><p><a href="/investAPI/sandbox#positionsstream">PositionsStream</a> — server-side stream обновления информации по изменению позиций портфеля.</p>
</li>
<li><p><a href="/investAPI/sandbox#getportfolio">GetPortfolio</a> — получить портфель по счёту.</p>
</li>
</ul>
### Сервис ордеров
[TradesStream](/investAPI/sandbox#tradesstream) — получить портфель по счёту.
### Сервис cчетов
[GetMarginAttributes](/investAPI/sandbox#getmarginattributes) — получить портфель по счёту.
Обратите внимание — в этом методе песочницы возвращаются следующие значения:
* `liquid_portfolio (ликвидной стоимости портфеля) = стоимость портфеля`.
* `starting_margin = corrected_margin = minimal_margin = amount_of_missing_funds = 0`.
* `funds_sufficiency_level = 2`.
<a name="orderexecute"></a>
## Особенности торговли
<p>Тестирование в песочнице приближено к реальному, но имеет ряд особенностей. Наиболее важные из них:</p>
<ol>
<li>Для всех клиентов открыты все инструменты — в том числе те, которые предназначены для квалифицированных инвесторов. Проходить тестирование или получать статус квалифицированного инвестора не нужно.</li>
<li><p>Открыта маржинальная торговля. Короткие позиции для фьючерсов временно недоступны. При этом ликвидность портфеля рассчитывается упрощённым способом — для всех участников по всем инструментам «плечо» в обе стороны (покупка или продажа) равно 2.</p>
<p><strong>Пример</strong> </p>
<p>При первоначальном балансе 1000 рублей можно купить или продать активы на 2000 рублей. Торговля с плечом (маржинальная торговля) не увеличивает первоначальный баланс — это можно использовать для улучшения доходности стратегии.</p>
</li>
<li><p>При торговле фьючерсами в случае покупки со счёта списывается полная стоимость, а не гарантийное обеспечение (ГО), как при торговле на Московской бирже. При продаже начисляется полная стоимость. </p>
<p>Вариационная маржа не рассчитывается.</p>
</li>
<li>Нет начислений по выплатам купонов или дивидендов.</li>
<li>Нет поставки базовых активов или начисления денег при экспирации фьючерсных контрактов.</li>
<li>Налоги не рассчитываются.</li>
<li>Комиссия расссчитывается в размере 0,05% от объёма сделки вне зависимости от инструмента.</li>
</ol>
## Алгоритм исполнения торговых поручений
Алгоритм исполнения торговых поручений в песочнице отличается от «боевого» алгоритма.
<ol>
<li>Рыночные (market) ордеры иcполняются по цене последней сделки (last price).</li>
<li><p>Выставленные заявки не влияют на рынок. </p>
<p><strong>Пример</strong></p>
<p>Рыночные заявки на 1 лот и на 10 000 лотов будут исполнены по одинаковой цене,
даже если в «стакане» по этой цене не было достаточного количество встречных предложений. </p>
</li>
<li><p>При выставлении лимитного ордера проверяется цена в «стакане» — если есть встречное предложение хотя бы на 1 лот из всего объёма, ордер полностью будет исполнен по цене лучшего встречного предложения.</p>
</li>
<li>Если лимитный ордер не может исполниться в момент выставления, он встаёт в рынок и ожидает появления предложений. При этом ордер не участвует в формировании «стакана».</li>
<li><p>При выставлении торгового поручения при продаже со счёта песочницы блокируются активы, а при покупке — денежные средства. </p>
<blockquote>
<p><strong>Важно</strong><br>
Операции появляются только при исполнении торгового поручения.</p>
</blockquote>
</li>
<li><p>Сервис получает информацию от торговых площадок о последних сделках по всем инструментам и исполняет активные заявки. </p>
<p><strong>Пример</strong></p>
<p> Есть заявка на покупку акции по цене 100 рублей. Если цена инструмента в последней сделке с биржи равна 100 рублей или меньше, заявка исполняется по цене, которая была в ней указана — то есть по 100 рублей.</p>
<p>Заявка на продажу исполняется, когда цена последней сделки будет 100 рублей или больше.</p>
</li>
<li><p>Все неисполненные торговые поручения в песочнице отменяются после окончания торговой сессии.
Заблокированные активы возвращаются на счёт.</p>
</li>
</ol>