Перейти к содержанию

FAQ

Для чего используется параметр order_id метода PostOrder?

Можно ли увидеть ключ идемпотентности order_id в операциях, выставленных поручениях и т.п.?

Как долго хранится ключ идемпотентности (order_id) на стороне брокера?

Что передавать в параметр quantity метода PostOrder? Количество бумаг или количество лотов?

Как рассчитать полную стоимость сделки?

Можно ли получить список уже исполненных торговых поручений?

Какие статусы торговых поручений бывают и что они значат?

Почему лимитная заявка исполнилась по другой цене?

Как перевести цену поручения в тип Quotation?

Как изменить выставленную заявку?

Можно ли выставлять поручения по счету инвест копилки?

Необходимо ли включение маржинальной торговли для торгов на срочном рынке?

Чем отличается рыночная заявка от лимитной?

Чем отличается метод GetOrders и методом GetOrderState?

Существуют ли ограничения на стоимость заявки?

Для чего используется параметр order_id метода PostOrder?

На данный момент мы имеем два параметра с одинаковым наименованием:

  • order_id как входной параметр - ключ идемпотентности в формате UID. Срок хранения ключа идемпотентности один год.
  • order_id как выходной параметр - биржевой идентификатор заявки, используемый в дальнейшем для отслеживания статуса ордера.

В первом случае order_id используется в качестве ключа идемпотентности в формате UID. Это значит, что многократный вызов метода PostOrder с одинаковым order_id не приведёт к выставлению более одного торгового поручения. При вызове метода происходит проверка уникальности связки order_id и account_id, если указанная пара не найдена, то создаётся новое торговое поручение, а если указанная связка уже существует (поручение с данным order_id по данному номеру счёта было выставлено раньше), то метод PostOrder вернёт статус уже выставленного торгового поручения, т.е. отработает согласно логике метода GetOrderState.

Можно ли увидеть ключ идемпотентности (order_id) в операциях, выставленных поручениях и т.п.?

В данный момент order_id используется исключительно как ключ идемпотентности и не "прокидывается" в другие сущности системы. Есть планы в будущем отображать переданный ключ в операциях.

Как долго хранится ключ идемпотентности (order_id) на стороне брокера?

Ключ хранится год, но пока никаких гарантий его сохранности дать не можем (механизм вероятно будет пересматриваться). Пока подразумевается полная уникальность переданного order_id в разрезе номера счёта (account_id).

Что передавать в параметр quantity метода PostOrder? Количество бумаг или количество лотов?

Метод PostOrder принимает в качестве параметра quantity требуемое количество лотов. Многие инструменты имеют лотность отличную от единицы, это следует обязательно учитывать при выставлении торговых поручений.

Как рассчитать полную стоимость сделки?

Полная стоимость сделки включает в себя не только сумму операции покупки или продажи биржевого инструмента, но и комиссии брокера, сервисные комиссии, гарантийное обеспечение для операций с фьючерсами и т.п. Рассчитать размеры комиссий можно из описания вашего тарифа, но нужно учитывать, что комиссии берутся за сделки, а не за поручение, т.е. одно торговое поручение может рождать несколько сделок. Процент комиссии фиксированный в зависимости от тарифа. Размер начальной комиссии и фактической можно узнать в деталях торгового поручения (методом GetOrderState).

Подробнее про расчёт стоимости сделок с фьючерсами и облигациями: Цены облигаций и фьючерсов.

Можно ли получить список уже исполненных торговых поручений?

В данный момент метод GetOrders возвращает только список активных торговых поручений, т.е. поручений, которые ещё не исполнены и не отменены. Получить полный список уже исполненных торговых поручений в данный момент невозможно.

Какие статусы торговых поручений бывают и что они значат?

Описание статусной модели торговых поручений: Статусная модель торговых поручений.

Некоторые нюансы исполнения поручений: Алгоритм и особенности исполнения торговых поручений.

Почему лимитная заявка исполнилась по другой цене?

Лимитное торговое поручение исполняется либо по указанной при её выставлении цене, либо по цене "лучшей" для определённого направления сделки. Этот механизм на бирже называется Best Execution и подразумевает исполнение торгового поручения по цене выгоднее, указанной в поручении.

Как перевести цену поручения в тип Quotation?

Подробнее о работе с нестандартными типами данных: Нестандартные типы данных TINKOFF INVEST API

Как изменить выставленную заявку?

Для изменения выставленного торгового поручения в TINKOFF INVEST API добавлен метод replaceOrder.

Данный метод позволяет изменить существующую выставленную заявку, путем ее отмены и выставления новой заявки с измененными параметрами.

Можно ли выставлять поручения по счету инвест копилки?

Нет, при попытке выставления поручений по счету инвест копилки в методе PostOrder в ответ будет возвращена ошибка с "code":"40004" и "message": "Working with orders is not available with this account".

Необходимо ли включение маржинальной торговли для торгов на срочном рынке?

Да, для выставления поручений на срочном рынке, необходимо включить маржинальную торговлю в приложении и терминале. Иначе будет возвращена ошибка 30051 из Списка кодов ошибок

Чем отличается рыночная заявка от лимитной?

Рыночная заявка Лимитная заявка
Это заявка на покупку или продажу активов по той цене, что есть на бирже в данный момент. Это указание брокеру, какую бумагу или валюту, сколько лотов и по какой цене вы хотите купить или продать
Если в данный момент на бирже по текущей цене торгуется меньше лотов, чем вы указали и при этом другие лоты есть, но их цена отличается в негативную для вас сторону, то в этом случае брокер купит имеющееся количество лотов по текущей цене, а оставшуюся часть заявки будет покупать по следующей по списку цене. Для сделок покупки лимитную заявку исполнят по цене равной или дешевле той, что вы указали. Для сделок продажи лимитную заявку исполнят по цене равной или выше той, что вы указали.
Стоит использовать, только когда вам срочно нужно купить или продать актив по любой цене — и вы готовы к тому, что она может оказаться для вас невыгодной. Стоит использовать, чтобы не тратить время на постоянное отслеживание котировок на бирже и выполнить заявку по выгодной цене.

Помимо рыночных и лимитных заявок, Tinkoff Invest API позволяет выставлять заявки типа "Лучшая цена". Что такое заявка «Лучшая цена»?

Чем отличается метод GetOrders и методом GetOrderState?

GetOrders GetOrderState
Предполагает получение массива активных заявок. Предполагает получение статуса конкретной заявок по order_id.
Возвращает только список активных торговых поручений, т.е. поручений, которые ещё не исполнены и не отменены. Возвращает торговое поручение конкретного инструмента в любом статусе (в том числе после исполнения).
Максимальный срок получения частично исполненной заявки через метод - до конца торгового дня, когда все неисполненные заявки отменяются и требуют повторного выставления. Метод не предусмотрен для получения глубокой истории и может не возвращать информацию по поручениям "старше" одних суток.

Существуют ли ограничения на стоимость заявки?

Да, на данный момент такие ограничения существуют. Поскольку на данный момент нет возможности выставить заявку стоимостью выше установленных значений для каждой из валют в Tinkoff Invest API (потребуется подтверждение заявки по sms), необходимо разбивать такие заявки на заявки меньшего размера.

В случае, если вы превысите лимит, вы получите ошибку 90003. Все коды ошибок.

Лимиты для на стоимость заявки для разных валют

Валюта Полное название валюты Лимит
RUB Рубль 30 000 000
USD Доллар США 500 000
EUR Евро 500 000
GBP Фунт стерлингов 5 000
CHF Швейцарский франк 5 000
CNY Юань 50 000
JPY Иена 500 000
HKD Гонконгский доллар 50 000
TRY Турецкая лира 50 000
KZT Казахстанский тенге 500 000
BYN Белорусский рубль 50 000
AMD Армянский драм 500 000
UZS Узбекский сум 5 000 000
KGS Киргизский сом 50 000
TJS Таджикский сомони 50 000
XAU Золото 50 000
XAG Серебро 50 000