Тинькофф инвестиции api php

Протокол

Streaming market-data в качестве протокола транспорта использует WebSocket.

Ограничения

candle:subscribe

Подписка на свечи. Обратите внимание, что в случае отсутствия сделок в интервале свечи возможны пробелы в передаваемых данных.

Параметр Тип Обязательность Описание
event string + Название события
time string + Время в формате RFC3339Nano
payload object + Структура свечи
payload.o double + Цена открытия
payload.c double + Цена закрытия
payload.h double + Наибольшая цена
payload.l double + Наименьшая цена
payload.v double + Объем торгов
payload.time string + Время в формате RFC3339
payload.interval string + Interval
payload.figi string + FIGI

candle:unsubscribe

orderbook:subscribe

Подписка на стакан

Параметр Тип Обязательность Описание
event string + Название события
time string + Время в формате RFC3339Nano
payload object + Структура со стаканом
payload.depth int + Глубина стакана
payload.bids array[double,double] + Массив [Цена, количество] предложений цены
payload.asks array[double,double] + Массив [Цена, количество] запросов цены
payload.figi string + FIGI

orderbook:unsubscribe

Отписка от стакана

instrument_info:subscribe

Подписка на информацию об инструменте

Параметр Тип Обязательность Описание
event string + Название события
time string + Время в формате RFC3339Nano
payload object + Структура с информацией по инструменту
payload.trade_status string + Статус торгов
payload.min_price_increment double + Шаг цены
payload.lot double + Лот
payload.accrued_interest double НКД. Возвращается только для бондов
payload.limit_up double Верхняя граница заявки. Возвращается только для RTS инструментов
payload.limit_down double Нижняя граница заявки. Возвращается только для RTS инструментов
payload.figi string + FIGI

instrument_info:unsubscribe

Отписка от информации об инструменте

Сообщения об ошибке

К любому запросу можно добавить необязательное поле request_id, которое будет использовано в сообщении об ошибке

Источник

API Тиньков.Инвестиции. Первые шаги

Практически с первых дней я стал клиентом Тиньков.Инвестиции.

И с этого же момента меня терзают смутные сомнения — отражает ли личный кабинет объективную реальность?

Дело в том, что я покупаю ценные бумаги, номинированные в долларах, но в ЛК цены всех активов отображаются в долларах, а итоговая стоимость портфеля в рублях.

И мне непонятно, это доллар вырос или я такой результативный инвестор?

А как же комиссии, налоги и прочие дивиденды?

Вот бы взять все мои сделки и расписать по ФИФО, как в складском учете… А сверху положить полученные дивиденды, а потом вычесть налоги.

Вот тогда я и увижу понятный мне результат.

Оказалось, у Тинькова есть API, которое позволяет писать торговых роботов (мне это совсем не интересно), а также загружать данные по своему портфелю и операциям.

У этого API есть официальное описание, но мне не все было понятно, пришлось разбираться.
Результаты этих разборок представляю вашему вниманию.

Получение токена и установка библиотеки

Перед началом работы нужно установить библиотеку и получить токен.

Цитирую официальную инструкцию по получению токена:

Авторизация

Эти две строки делают все, что нам нужно.

Дальше работаем с переменной client.

Что у нас в портфеле

Получим содержимое нашего вашего портфеля:

Посмотрим основные данные первого элемента:

value — Цена бумаги
balance — Кличество бумаг в портфеле, value и currency — их денежное выражение.

figi — Financial Instrument Global Identifier (Финансовый Глобальный Идентификатор инструмента)
ticker — Тикер актива.

По этим данным мы можем узнать человекочитаемое название актива.

Для данного запроса нам это не нужно (см. поле name), но в других случаях пригодится.

Получаем название бумаги по FIGI и тикету

А вот поиск названия актива по тикеру у меня не работает :(((

Разработчики предложили обновить библиотеку, но даже после этого не взлетело.

Качаем справочник ценных бумаг

Впрочем, я решил этот вопрос кардинально. Скачал у Тинькова полный справочник торгуемых активов:

получил
Как видим, figi и name там есть. Для моих целей — более чем достаточно.

Получаем список операций

А вот самое интересное — получить список моих операций. В операции (в моем случае) попадают следующие действия:

Посмотрим, что получилось. В моем случае, представляет интерес этот элемент Вот что он собой являет
Нас интересуют поля:

Все не так просто (план и факт)

Как я понял, в quantity указано то количество бумаг, которые я хотел купить. А то, что фактически куплено, лежит в trades[i].quantity.

Т.е. если хотите обратится к фактическим сделкам, нужно перебрать то, что лежит в trades.

В ряде случаев, там None — например, для налогов или вводов/выводов средств.

Чтобы получить настоящие цифры, нужно смотреть и в сделки, и в биржевые операции:

Источник

Тинькофф инвестиции api php

PHP client for Tinkoff invest API (PHP клиент для API Тинькофф инвестиции)

or add to your compose.json

Include classes via autoloader

create token to use tinkoff invest on Tinkoff invest setting page

Create client instance for sandbox

Put money to your sandbox account (sandbox only)

Client register on sandbox (sandbox only)

Client remove account on sandbox (sandbox only)

Put stocks to your sandbox account (sandbox only)

Clear all positions on sandbox (sandbox only)

Get all stocks/bonds/etfs/currencies from market

Get instrument by ticker

Get history OrderBook

Get historical Candles

Get portfolio (if null, used default Tinkoff account)

Get portfolio balance

Get instrument lots count

Send limit order (default brokerAccountId = Tinkoff)

Send market order (default brokerAccountId = Tinkoff)

List of operations from 10 days ago to 30 days period

Getting instrument status

Get Candles and Order books

You can also to subscribe on changes order books, candles or instrument info: First of all, make a callback function to manage events:

Then subscribe to events

and finaly start listening new events

in this example we awaiting max 20 respnse and max for 60 seconds if you want no limits, you should make

to stop listening do

###CAUTION If you use subscriptions you should check figi on response, because you getting all subscribed instruments in one queue

Источник

Песочница API Тинькофф Инвестиции и операции заявок

Когда пару месяцев назад я выбирал брокера для погружения в пучину инвестиционного хайпа, то весь выбор для меня ( субъективно ) свелся к двум кандидатам Тинькофф Инвестиции и ВТБ Инвестиции. Одним из важнейших аргументов для меня было наличие каких либо интерфейсов как для получения данных о рынке, о сделках, об открытых позициях в аккаунте и для автоматизации торговли. Ни то что бы я какой то алготрейдер, но вот нравится мне идея щупать рынок кодом.

В бэкграунде у меня есть немного MQL4 ( MetaTrader 4 ) для Forex. Но это очень давний опыт и к нему я лет 10-15 не подходил. К сожалению на биржу MetaQuotes (вроде бы) не прорвались и это печально.

Впечатления от Open API Тинькофф Инвестиции

Понравилось. Простой Rest API, есть SDK, внятный мануал, легко получить доступы и есть Песочница где ( как я думал ) можно поиграться в Баффета. Ну что ещё нужно!

Здравствуй, Песочница, которая ничего не знает о рынке

. когда я дошел в своих экспериментах до игрищ с рынком в Песочнице я был изрядно удивлен, ошарашен, поражен, озадачен.

Вот есть в API метод /orders/market-order он должен отправить рыночную заявку чтобы купить бумагу по рыночной цене. В режиме песочницы этот метод купит (или продаст) бумагу по 100 (рублей). И продаст потом тоже за сто. И не важно что это за бумага, акция Сбера или 1 евро, в сделках будет операция покупки акции по 100 рублей. И никак эту цифру «сто» изменить нельзя. Мммм, чтооо?

А лимитная заявка /orders/limit-order исполнится сразу (то есть моментально, как рыночная) и исполнится по той цене что я поставлю в лимит. Мало того что как лимитная заявка этот метод, получается, не работает в принципе, так я могу купить 100500 лотов Сбера за рубль, а потом продать за 100000. Это как так то?

Справедливости ради, в доках такое поведение Песочницы, в целом, описано. Но это настолько странное поведение, что пока кодом это не увидишь осознания не придет.

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

Сложилось такое впечатление что команда пилила API и получалось хорошо, а на Песочнице бюджет кончился. Печалька!

Мне кажется что на Хабре, наверное, есть кому Песочница могла бы быть прикольным местом для лепки куличиков из виртуальных ценных бумаг. Если так, то давайте вместе попросим (наверное можно плюсами к статье) @tinkoff_bank выделить бюджет команде API и допилить Песочницу?

Источник

REST-протокол

Ограничение количества запросов

Ресурс Количество запросов для пользователя Количество запросов на IP Интервал ограничения
/sandbox 120 1000 1 минута
/portfolio 120 1000 1 минута
/market 240 500 1 минута
/orders 100 1000 1 минута
/orders/limit-order 100 1000 1 минута
/orders/market-order 100 1000 1 минута
/orders/cancel 50 1000 1 минута
/operations 120 1000 1 минута

При превышении лимита запросов возвращается ошибка 429 Error: Too Many Requests

Ограничение количества запросов от Московской Биржи (MOEX)

Под запросами в биржу подразумевается выставление и отмена заявок

Генерация

REST API использует OpenAPI 3.0.0, для генерации клиентов необходимо использовать новую версию swagger-gen.

Источник

Читайте также:  Что такое подкасты в айфоне и для чего они предназначены
Образовательный портал