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

FAQ

Что такое шаг цены?

Шаг цены — это минимальное изменение цены определёного инструмента.

Пример

Шаг цены для инструмента — 0.1, последняя цена — 10.5. Это значит, что заявка может быть выставлена по одной из следующих цен:

  • 10.4,
  • 10.5,
  • 10.6.

Цена 10.55 будет некорректной, заявка не выставится.

def isValidPrice(price: BigDecimal, increment: BigDecimal): Boolean = {
    price % increment == 0
}

isValidPrice(10.1, 0.1) // true
isValidPrice(10.16, 0.1) // false

Отличие лотов и количества инструментов

При работе с Tinkoff Invest API обращайте особое внимание на различие понятий лот и количество ценных бумаг.

Все цены в сервисе котировок предоставляются за одну ценную бумагу. Это правило касается методов GetLastPrice и GetCandles, а также подписки на эти данные в рамках stream-соединений сервиса.

Если вы получаете данные по стакану или сделкам, объём этих сделок отображается в лотах. То есть параметр quantity метода GetOrderBook и пакета trade в рамках stream-соединений сервиса отображается в лотах.

Цены облигаций и фьючерсов

Цены облигаций и фьючерсов в Tinkoff Invest API предоставляются в пунктах. Методика расчёта стоимости лота в валюте отличается в зависимости от типа биржевого инструмента.

Формулы расчёта реальной стоимости инструментов в валюте

Значения:

  • price — текущая котировка ценной бумаги;
  • nominal — номинал облигации;
  • min_price_increment — шаг цены;
  • min_price_increment_amount — стоимость шага цены;
  • lot - лотность инструмента.

Акции

Формула расчёта: price * lot.

Облигации

Пункты цены для котировок облигаций — это проценты номинала облигации. Формула для пересчёта пунктов в валюту: price / 100 * nominal.

Валюта

Формула расчёта: price * lot / nominal.

Важно
При торговле валютой учитывайте, что у таких валют как Иена, Армянский драм и Тенге nominal отличный от 1.

Фьючерсы

Стоимость фьючерсов предоставляется в пунктах. Формула расчёта: price / min_price_increment * min_price_increment_amount.

Также при работе с фьючерсами важно учитывать размер гарантийного обеспечения. Узнать эти параметры фьючерсов можно чрез метод getFuturesMargin.

Подробнее про срочный рынок

Какие интервалы доступны при запросе исторических свечей?

Метод GetCandles позволяет получать исторические свечи разных временных интервалов. Есть ограничения на максимальный и минимальный период запроса для каждого интервала свечей:

Запрошенный интервал свечей Допустимый период запроса
CANDLE_INTERVAL_UNSPECIFIED Интервал не определён.
CANDLE_INTERVAL_1_MIN От 1 минуты до 1 дня.
CANDLE_INTERVAL_5_MIN От 5 минут до 1 дня.
CANDLE_INTERVAL_15_MIN От 15 минут до 1 дня.
CANDLE_INTERVAL_HOUR От 1 часа до 1 недели.
CANDLE_INTERVAL_DAY От 1 дня до 1 года.
CANDLE_INTERVAL_2_MIN От 2 минут до 1 дня.
CANDLE_INTERVAL_3_MIN От 3 минут до 1 дня.
CANDLE_INTERVAL_10_MIN От 10 минут до 1 дня.
CANDLE_INTERVAL_30_MIN От 30 минут до 2 дней.
CANDLE_INTERVAL_2_HOUR От 2 часов до 1 месяца.
CANDLE_INTERVAL_4_HOUR От 4 часов до 1 месяца.
CANDLE_INTERVAL_WEEK От 1 недели до 2 лет.
CANDLE_INTERVAL_MONTH От 1 месяца до 10 лет.

Важно
При запросе дневных свечей CANDLE_INTERVAL_DAY время, которое передаётся в полях from и to, игнорируется.
Например, при запросе дневной свечи по интервалу с 12:00 01.01.2021 по 07:00 02.01.2021 вернутся две дневные свечи за 01.01.2021 и за 02.01.2021.

Важно
Если попытаться получить данные с временным интервалом меньше временного интервала данного таймфрейма, в ответе метода вернётся пустой массив. Например, если интервал при запросе дневных свечей (CANDLE_INTERVAL_DAY) инструмента будет 1 час.

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

Через метод GetLastPrices — в запросе передайте массив идентификаторов инструментов.

Как подписаться на разные типы данных в рамках stream-соединения сервиса котировок?

Bidirectional stream сервиса котировок поддерживает одновременную подписку на разные типы данных — свечи, стаканы, сделки и другие в рамках одного соединения.

Для этого нужно последовательно отправить пакеты подписки на разные данные — то есть отдельно подписаться подписаться на свечи, стаканы и так далее. Подробнее смотрите в примерах выбранного вами SDK.

Внебиржевые инструменты в Tinkoff Invest API

Сейчас Tinkoff Invest API предполагает работу только с биржевыми инструментами.

Какие данные отливаются в стриминг стаканов?

Пока только биржевые. Внебиржевые стаканы, например, TRRE, не транслируются в режиме стриминга.

Валюты в Tinkoff Invest API

Получить список доступных валют можно через метод getInstruments/currencies.

Обратите внимание: лотность валют ограничена лотностью, которую предоставляет биржа. Например, операции с евро и долларами возможны только на количества, кратные 1000.

Почему отличаются исторические цены в Tinkoff Invest API и других источниках?

Исторические данные Тинькофф Инвестиций могут отличаться от данных, которые предоставляют другие сервисы. Это может быть связано как с различными источниками первичных данных, так и с различными алгоритмами их обработки и агрегации.

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

Через метод Загрузка исторических рыночных данных в виде архива.

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

Для всех типов подписок в методе MarketDataStream установлены ограничения максимального количества запросов на подписку.

Максимальное количество запросов в минуту — 100. Если количество запросов за минуту превысит 100, для всех элементов будет установлен статус SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS.

Как узнать дату, с которой можно получить свечи по инструменту?

Чтобы понять, с какой даты запрашивать свечи по инструменту, в сервисе инструментов Tinkoff Invest API есть параметры first_1min_candle_date и first_1day_candle_date.

Они возвращаются в методах получения информации об инструментах. Параметр first_1min_candle_date возвращает дату первой минутной свечи, first_1day_candle_date — дату первой дневной свечи.

Как узнать доступности торгов инструментом через API?

По параметру api_trade_available_flag в методах getTradingStatus или FindInstrument.

Какой идентификатор инструмента использовать для получения данных в сервисе котировок?

Все методы сервиса котировок принимают на вход параметр instrumentId, в котором можно передать значение instrument_uid или FIGI.

Подробнее об идентификаторах инструментов