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
Отличие лотов и количества инструментов
При работе с T-Invest API обращайте особое внимание на различие понятий лот и количество ценных бумаг.
Все цены в сервисе котировок предоставляются за одну ценную бумагу. Это правило касается методов GetLastPrice и GetCandles, а также подписки на эти данные в рамках stream-соединений сервиса.
Если вы получаете данные по стакану или сделкам, объём этих сделок отображается в лотах. То есть параметр quantity
метода GetOrderBook и пакета trade в рамках stream-соединений сервиса отображается в лотах.
Цены облигаций и фьючерсов
Цены облигаций и фьючерсов в T-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.
Внебиржевые инструменты в T-Invest API
Сейчас T-Invest API предполагает работу только с биржевыми инструментами.
Какие данные отливаются в стриминг стаканов?
Пока только биржевые. Внебиржевые стаканы, например, TRRE, не транслируются в режиме стриминга.
Валюты в T-Invest API
Получить список доступных валют можно через метод getInstruments/currencies.
Обратите внимание: лотность валют ограничена лотностью, которую предоставляет биржа. Например, операции с евро и долларами возможны только на количества, кратные 1000.
Почему отличаются исторические цены в T-Invest API и других источниках?
Исторические данные Т-Инвестиций могут отличаться от данных, которые предоставляют другие сервисы. Это может быть связано как с различными источниками первичных данных, так и с различными алгоритмами их обработки и агрегации.
Как получить исторические рыночные данные?
Через метод Загрузка исторических рыночных данных в виде архива.
Какое максимальное количество запросов на подписку в MarketDataStream?
Для всех типов подписок в методе MarketDataStream установлены ограничения максимального количества запросов на подписку.
Максимальное количество запросов в минуту — 100. Если количество запросов за минуту превысит 100, для всех элементов будет установлен статус SUBSCRIPTION_STATUS_TOO_MANY_REQUESTS.
Как узнать дату, с которой можно получить свечи по инструменту?
Чтобы понять, с какой даты запрашивать свечи по инструменту, в сервисе инструментов T-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.
Подробнее об идентификаторах инструментов