yatis 0.2.1

Yet Another T-bank Investment Sdk
Documentation
# Песочница 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>