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 дня. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_5_MIN | От 5 минут до недели. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_15_MIN | От 15 минут до 3 недель. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_HOUR | От 1 часа до 3 месяцев. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_DAY | От 1 дня до 6 лет. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_2_MIN | От 2 минут до 1 дня. Максимальное значение limit — 1200. |
CANDLE_INTERVAL_3_MIN | От 3 минут до 1 дня. Максимальное значение limit — 750. |
CANDLE_INTERVAL_10_MIN | От 10 минут до недели. Максимальное значение limit — 1200. |
CANDLE_INTERVAL_30_MIN | От 30 минут до 3 недель. Максимальное значение limit — 1200. |
CANDLE_INTERVAL_2_HOUR | От 2 часов до 3 месяцев. Максимальное значение limit — 2400. |
CANDLE_INTERVAL_4_HOUR | От 4 часов до 3 месяцев. Максимальное значение limit — 700. |
CANDLE_INTERVAL_WEEK | От 1 недели до 5 лет. Максимальное значение limit — 300. |
CANDLE_INTERVAL_MONTH | От 1 месяца до 10 лет. Максимальное значение limit — 120. |
При запросе дневных свечей (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
.