- Роботы для Тинькофф инвестиции
- 1. Делаем токен для доступа к Тинькофф инвестициям
- 2. Запуск торговых роботов для Тинькофф инвестиций
- 3. Тинькофф Инвестиции и роботы – что думаю лично я
- Api тинькофф инвестиции робот
- About
- API Тиньков.Инвестиции. Первые шаги
- Получение токена и установка библиотеки
- Авторизация
- Что у нас в портфеле
- Получаем название бумаги по FIGI и тикету
- Качаем справочник ценных бумаг
- Получаем список операций
- Все не так просто (план и факт)
- Читают сейчас
- Редакторский дайджест
- Похожие публикации
- Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel
- Пользователи массово жалуются на сбой в приложениях «Тинькофф» и «Тинькофф Инвестиции»
- Отслеживаем состояние своего портфеля у брокера «Тинькофф Инвестиции» через Google Таблицы
- Средняя зарплата в IT
- Минуточку внимания
- Комментарии 63
Роботы для Тинькофф инвестиции
Ну что. Добрались до Тинькофф инвестиций и теперь там можно торговать нашими роботами. В этой статье пройдёмся по тому как именно подключить OsEngine к торгам, как выписывать ключи и что нужно делать в самой платформе. С картинками, шаг за шагом.
Также, выскажу своё личное мнение о том что в итоге получилось и какие хорошие и плохие стороны есть в их API и на сколько оно подходит в итоге вообще для торговли. В общем – самое интересное снизу)
Тинькофф Инвестиции — одна из самых быстрорастущих площадок для торговли в данный момент в России и мы её понятное дело долго обходить стороной не могли.
Это часть известного онлайн-банка и мне лично кажется что всё у них очень круто будет в этом отношении. Они и дальше будут расти очень быстро. В общем, теперь алготрейдинг пришёл и в их дом. Пользуйтесь.
11. Делаем токен для доступа к Тинькофф инвестициям
22. Запускаем торговых роботов для Тинькофф инвестиций
33. Что думаю лично я
1. Делаем токен для доступа к Тинькофф инвестициям
Начинаем с того что нужно залогиниться на сайте тинькофф инвестиций. И далее, в личном кабинете идём в настройки:
После чего скролим страницу вниз до момента где у нас можно выписать себе токен:
Нажимаем на кнопку «Токен для торговли». Вам там придётся ещё раз ввести пароль в личном кабинете. И перед Вами появиться строка с токеном.
Вы её сохраните в файлик, он нам дальше понадобиться.
2. Запуск торговых роботов для Тинькофф инвестиций
Качаем конструктор роботов с нашего сайта: http://o-s-a.net/os-engine.html
Полистайте страницу и посмотрите видео. Попереходите по ссылочкам по папкам. Это проект с полностью открытым кодом который Вы можете использовать как угодно. Написан на языке СиШарп. Это программа полного цикла алготрейдинга. Делаем бота – тестируем – оптимизируем – запускаем в торги. Ну и не будем повторятся… Почитайте.
В общем, качаем зипку себе на ПК, распаковываем и дём вот к этому экзешнику:
Запускаем от Админа.
BotStation по стрелочке:
Далее идём в окно настроек подключений:
11) « Control » в правом меню
22) Далее Connection Servers
33) Листаем вниз до нашей биржи. И выбираем Tinkoff . Два раза ЛКМ и увидем окно ввода токена который мы качали:
В графу токен вводим значение которое получали в личнок кабинете у брокера.
И уже после этого можем создавать роботов и всё вот это прочее что есть в нашей платформе:
Единственное. Поскольку из за убогости потокового сервиса мы его подключать не стали, постройку свечек Вам придётся делать из стаканов:
Если Вы вдруг не знаете что делать дальше, милости прошу на наш форум или ютуб канал:
Также, ВАЖНО. Не забывайте перевести время компьютера на Московское! Зачем? Лучше Вам не знать ей богу… Но без этого работать не будет.
3. Тинькофф Инвестиции и роботы – что думаю лично я
Удобные сервисы рулят. Лично у меня открытие брокерского счёта заняло 15 минут, вместе с переводом денег на него – вот что главное. И не даром клиентская база Тинькова растёт огромными темпами. Всё очень удобно. Ну ессно, для тех кто уже у них обслуживается.
Восхищаюсь тем подходом который он несёт в каждую область куда заходит. Везде делает прорывы. Везде его товар и сервисы лучше чем у конкурентов на порядок. Илон Маск российский, не иначе. Вот и здесь так.
Скорость входа в трейдинг быстрее чем на биржах криптовалют. Если у Вас уже есть карта – начать торговать, дело 10 – 15 минут. И это великолепно. Прямо бальзам на душу. Спасибо Олег.
Щас я очень долго, муторно и с матюками буду описывать все те непристойности которые я увидел в Тинькофф Api . Не подумайте что это хейт просто. Понятное дело кредиты под 70 % годовых я тоже не одобряю со стороны Тинькофф банка. Я искренне надеюсь что кто-то из поддержки Тинькофф банка когда-то это всё прочитает и прослезиться. После чего что-то там поменяется. В общем – не обессудьте.
Для алготрейдинга вся эта история пока дно полное. Кроме получасовиков торговать абсолютно и решительно нельзя.
Апи – маразматичное и сделано на от..бись. В натуральном смысле этого слова. Люди его делавшие вообще ни разу в жизни робота для трейдинга не видели. И вероятно даже с понятием трейдинга знакомы очень и очень поверхностно. Ибо не знают вообще какие типы данных есть на бирже и как их нужно рассылать.
Там буквально в некоторых переменные называны «НЁХ», или вроде того. Смешно конечно, но у того что они там слали есть нормальное описание в ядре биржи и в Плазе. Нахрен эту големототу писать.
Из поточных данных вообще идёт полный шлак. Ордеров нет, моих трейдов нет. Ленты сделок с.ка нет. Есть только стаканы, и то их скачивание ограничено 6стью штуками.
Время нигде нет. программисты. Как так у стакана нету таймШтампа. Какого хрена?
Ленты сделок(трейды) нет вообще. Т.е. возможности строить свои уникальные свечи нету. Внезапно! Но именно из этих данных строятся свечи в системах анализа сторонних. Вот вы высылаете свои свечки – они нам нахрен так-то не нужны. У нас 10 видов различных свечек и горизонтальные объёмы. Всё это строится из ЛЕНТЫ ВСЕХ СДЕЛОК. Что ж Вы там матьВашу загуглить не могли какие данные из биржи идут и что может людям понадобиться. Тьфу.
Короче. Потоковые данные мы полностью зарезали. Брать там нечего. И в ближайший год там всё это будет переделываться несколько раз. Тинькофф это так не оставит. Просто видать сказать некому пока. Ну ладно. Поэтому даже и начинать не стоит. Всё на чём основан наш коннектор – это запросы. Отсюда у нас задержки с получением данных и прочее. Кроме того, построение свечек только по центру стакана и только классика, ибо объёмов никто не знает, т.к. они их не дают. Такие дела.
В общем – история с АПИ для Тинькофф инвестиций абсолютно вторична и я когда смотрел на итоговый результат по коннектору плакал без остановки несколько часов. Надеюсь они в течении года это дело как-то подхилят и найдут нормального архитектора для Апи.
11) Отличный сервис для людей. 10 домохозяек из 10 я им ставлю.
22) Для алготрейдеров – ад и садомазохизм.
33) На стаканах соответственно вообще нельзя ничего торговать.
44) Быстрые алгоритмы тоже.
55) Много сделок выставлять нельзя.
66) Сервисы прямого доступа отсутствуют(плаза / ASTS / Fast / Twime ). Или есть, но я не увидел.
77) Готовьтесь к тому что они будут Api переделывать и будут проблемы с нашей уже стороны, т.к. мгновенно мы ничего не правим)
88) Торгуем получасовик
99) Собираем свечи из центра стакана
110) Много инструментов не торгуем одновременно
111) Ждём фиксов со строны Тинькофф Инвестиций, чтобы они озаботились судьбой программистов.
Всем удачных алгоритмов!
Уважаемые товарищи из Тинькофф Инвестиций. Будете читать) Я знаю. Наймите нормального консультанта который в этом понимает. У которого есть понимание того какие данные нужны алготрейдерам. Как их нужно давать. Как нужно устраивать подписку. Какие нужны таблицы данных. И за пару месяцев сделаете лучший сервис для алготрейдеров тоже. На том же высоком уровне как Вы уже сделали для домохозяек.
Вот почта одного великолепного специалиста в этом: alexey @ o — s — a . net Моя. Пишите.
Источник
Api тинькофф инвестиции робот
Простой бот для взаимодействия с Тинькофф Инвестициями с возможностью выполнения заявок на покупку акций с заданными значениями StopLoss и TakeProfit по наступлению которых будет сделана заявка на продажу.
Стек используемых технологий
- cats
- doobie
- postgres
- http4s
- circe
- telegramium
- tinvest4s для работы с OpenApi Тинькофф.Инвестиций, который переехал в отдельный репозиторий
Как собрать и запустить проект
- Нужно иметь брокерский счет в Тинькофф.Инвестиции, если есть, то получить в личном кабинете токен для авторизации (для торговли на бирже или в песочнице)
- Зарегистрировать telegram бота и получить токен для авторизации
- Подготовить базу данных — создать пользователя и таблицы (TODO: Следует автоматизировать этот этап)
- В файле конфигурации application.conf задать токены для авторизации telegram-бота и в OpenApi Тинькофф.Инвестиций, и имя/пароль для подключения к базе данных
- Запустить проект
- Выполнение мониторинга стоимости заданных пользователем акций
- Выполнение заявки на покупку акций по значениям StopLoss и TakeProfit
- Уведомление пользователя через telegram о выполняемых действиях
Взаимодействие с пользователем
На данном этапе реализован способ взаимодействия через telegram(уведомления и команды), поскольку он проще и быстрее для тестирования и проверки.
- /portfolio — Портфель
- /etfs — Получение списка ETF
- /currencies — Получение списка валютных пар
- /orderbook.figi.depth — Получение стакана по FIGI
- /cancelOrder.orderId — Отмена заявки по OrderId
- /limitOrderBuy.figi.lots.price — Лимитная заявка на покупку
- /limitOrderSell.figi.lots.price — Лимитная заявка на продажу
- /marketOrderBuy.figi.lots — Рыночная заявка на покупку
- /marketOrderSell.figi.lots — Рыночная заявка на продажу
- /marketOrderBuy.figi.lots.stoploss.takeprofit — Рыночная заявка на покупку с указанными значениями stoploss и takeprofit . stoploss и takeprofit имеют тип Double . Например, команда /marketOrderBuy.BBG009S39JX6.10.100,01.200,02 выполнит покупку 10 лотов акций BBG009S39JX6 со значением stoploss=10.100 и takeprofit=200,02 . При этом значение stoploss не должна превышать значение текущей стоимости акции и, соответственно, значение takeprofit должна превышать текущую стоимость акции. Команда вернет информацию о покупке и id операции.
- /activeOperations — Список активных операций
- /stopOperations — Отменить все активные операции
- /completedOperations — Получить список последних завершенных операций
- /stopOperations.id — Отменить операцию по id
Под операцией подразумевается процесс подписки на отслеживание стоимости акции по figi , которая завершится по достижению значений stoploss и takeprofit или по команде stop .
About
WIP: Простой бот для взаимодействия с Тинькофф Инвестициями
Источник
API Тиньков.Инвестиции. Первые шаги
Практически с первых дней я стал клиентом Тиньков.Инвестиции.
И с этого же момента меня терзают смутные сомнения — отражает ли личный кабинет объективную реальность?
Дело в том, что я покупаю ценные бумаги, номинированные в долларах, но в ЛК цены всех активов отображаются в долларах, а итоговая стоимость портфеля в рублях.
И мне непонятно, это доллар вырос или я такой результативный инвестор?
А как же комиссии, налоги и прочие дивиденды?
Вот бы взять все мои сделки и расписать по ФИФО, как в складском учете… А сверху положить полученные дивиденды, а потом вычесть налоги.
Вот тогда я и увижу понятный мне результат.
Оказалось, у Тинькова есть API, которое позволяет писать торговых роботов (мне это совсем не интересно), а также загружать данные по своему портфелю и операциям.
У этого API есть официальное описание, но мне не все было понятно, пришлось разбираться.
Результаты этих разборок представляю вашему вниманию.
Получение токена и установка библиотеки
Перед началом работы нужно установить библиотеку и получить токен.
Цитирую официальную инструкцию по получению токена:
- Зайдите в свой аккаунт на tinkoff.ru
- Перейдите в раздел инвестиций
- Перейдите в настройки
- Функция «Подтверждение сделок кодом» должна быть отключена
- Выпустите токен OpenApi для биржи и Sandbox. Возможно система попросит вас авторизоваться еще раз, не беспокойтесь, это необходимо для подключения робота к торговой платформе.
- Скопируйте токен и сохраните, токен отображается только один раз, просмотреть его позже не получится, тем не менее вы можете выпускать неограниченное количество токенов.
На момент написания статью токен выдавался на странице www.tinkoff.ru/invest/settings, кнопка в нижней части страницы.
С токеном для песочницы у меня возникали ошибки, поэтому я начал экспериментировать с боевой версией. Чего и вам желаю (Осторожно: не купите-продайте случайно что-то лишнее).
Авторизация
Эти две строки делают все, что нам нужно.
Дальше работаем с переменной client.
Что у нас в портфеле
Получим содержимое нашего вашего портфеля:
Посмотрим основные данные первого элемента:
В моем случае это:
value — Цена бумаги
balance — Кличество бумаг в портфеле, value и currency — их денежное выражение.
figi — Financial Instrument Global Identifier (Финансовый Глобальный Идентификатор инструмента)
ticker — Тикер актива.
По этим данным мы можем узнать человекочитаемое название актива.
Для данного запроса нам это не нужно (см. поле name), но в других случаях пригодится.
Получаем название бумаги по FIGI и тикету
Эта API-функция у меня работает как надо. Видим, что ‘BBG000BWPXQ8’ -> ‘British American Tobacco’.
А вот поиск названия актива по тикеру у меня не работает :(((
Разработчики предложили обновить библиотеку, но даже после этого не взлетело.
Качаем справочник ценных бумаг
Впрочем, я решил этот вопрос кардинально. Скачал у Тинькова полный справочник торгуемых активов:
получил
Как видим, figi и name там есть. Для моих целей — более чем достаточно.
Получаем список операций
А вот самое интересное — получить список моих операций. В операции (в моем случае) попадают следующие действия:
- PayIn — Пополнение брокерского счета
- PayOut — Вывод денег
- BuyCard — Покупка с карты
- Sell — Продажа
- BrokerCommission — Комиссия брокера
- Dividend — Выплата дивидендов
- Tax — Налоги
- TaxDividend- Налоги c дивидендов
- ServiceCommission — Комиссия за обслуживание
Код для выгрузки портфеля:
Посмотрим, что получилось. В моем случае, представляет интерес этот элемент Вот что он собой являет
Нас интересуют поля:
- date — дата сделки
- figi — код актива
- operation_type — тип операции
- payment — сумма операции. У налогов или комиссий указана именно она. price при этом None
- price — цена одной бумаги
- quantity — плановое количество бумаг
- trades — реальные биржевые сделки
Сразу возник вопрос — зачем нам какие-то trades, если есть price и quantity?
Все не так просто (план и факт)
Как я понял, в quantity указано то количество бумаг, которые я хотел купить. А то, что фактически куплено, лежит в trades[i].quantity.
Т.е. если хотите обратится к фактическим сделкам, нужно перебрать то, что лежит в trades.
В ряде случаев, там None — например, для налогов или вводов/выводов средств.
Чтобы получить настоящие цифры, нужно смотреть и в сделки, и в биржевые операции:
Читают сейчас
Редакторский дайджест
Присылаем лучшие статьи раз в месяц
Скоро на этот адрес придет письмо. Подтвердите подписку, если всё в силе.
Похожие публикации
Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel
Пользователи массово жалуются на сбой в приложениях «Тинькофф» и «Тинькофф Инвестиции»
Отслеживаем состояние своего портфеля у брокера «Тинькофф Инвестиции» через Google Таблицы
Средняя зарплата в IT
AdBlock похитил этот баннер, но баннеры не зубы — отрастут
Минуточку внимания
Комментарии 63
Оказалось, у Тинькова есть API, которое позволяет писать торговых роботов (мне это совсем не интересно)
А вот мне, наоборот, оказалось интересно. Начал возиться с этим чуть больше недели назад. Написал программу, которая сигнализирует о необычных состояниях на рынке, дальнейшие решения я уже принимал вручную. В принципе, понравилось.
Главная проблема — API очень простой, но одновременно и очень сырой. Часто тормозит и глючит. Поиграться — нормально, но если торговать профессионально, то есть варианты и получше.
Был бы рад ссылкам
Специализированные брокеры. Полноценно пока не интересовался этой темой, поэтому ссылок не дам.
Там в квике есть lua, на которой худо бедно можно накорябать робота, графики с индивидуальными индикаторами, или шлюз в другие миры.
Но квик что-то подтормаживает, знающие люди говорят, для htf надо брать плазу2 и колокейшн у брокера.
знающие люди говорят, для htf надо брать плазу2 и колокейшн у брокера
Рано или поздно пытливый программистский ум все равно захочет хоть немного HFT — бота с реакцией в несколько секунд. О миллисекундах, к сожалению, речи не идёт — это удел кровавого энтерпрайса и крупных игроков.
Я имею в виду тормоза самого Тинькоффа как сервиса. В обычном режиме там тоже всё исполняется в момент, но в периоды высокой активности на бирже, когда самое лучшее время делать деньги, он встаёт колом.
Но в целом я Т не особо за это ругаю: у него изначально была другая направленность — не на профессиональных трейдеров, а просто на желающих пощупать возможность заработка на инвестициях в долгосроке. API для торговли они предоставили совсем недавно.
Ну вот представьте: накупили вы этих плазов, поставили колокейшн в золотом корпусе, запустили скрипты и ждете. А на другом конце интернета сидят условные Мамут с Усмановым, смотрят на экраны своих HFT и ржут над вами.
Почему ржут? А потому что пока скрипит ваша плаза в колокейшне, у них уже миллиончик+миллиончик+миллиончик…
А в режиме read-only через API Тинькофф можно считать только свои позиции?
Имел ввиду получение собственных открытых позиций — цена покупки, дата, количество.
Без возможности торговли. Для синхронизации со своими сервисами по учету.
Кто-нибудь знает — Тинькофф единственный брокер, которые имеет своё открытое апи?
В первую очередь интересен только просмотр позиций без возможностей торговли.
В IB и так нет проблем с экспортом отчетов.
Проблема с рос. брокерами — нет единой формы, они периодически меняются, а сбербанк (бывший тройка диалог) — так в плане отчетов вообще ловить нечего — невозможно даже определить начальную цену позиции.
И оно открыто? А кто кроме Тинькова имеет открытое апи?
Тинькофф Инвестиции, ITI Capital (АО «ИК «Ай Ти Инвест»).
А знаете ещё кто имеет апи?
А после слияния с Фридом Финанс апи сохранилось?
Вот тут становится непонятно, что вы подразумеваете под «Открытым АПИ».
Ну для меня это значит, что имеется подробная документация по протоколу и возможность написания собственных клиентов, а не только плагинов и скриптов для квика.
Я хотел бы через API получать свои открытые позиции в режиме только чтения.
И мне непонятно, это доллар вырос или я такой результативный инвестор?
Я себе написал замену Excel для учёта сделок.
Всё считает. Можно посмотреть состояние портфеля на любую дату. Главное все сделки в систему завести… Можно отчёт брокера импортировать. Зацените кто хочет, https://izi-invest.ru
Относительно «а итоговая стоимость портфеля в рублях» — у Тинькофф есть переключатель (в мобильных приложениях на значок рубля нажать, если не путаю), можно и в долларах смотреть
Вах, не прошло и полгода, что называется…
Когда я, будучи их клиентом, спросил о кусочке API для всего-то ежедневного получения курса евродоллара, меня первую неделю не могли понять вообще, вторую отвечали безопасники (упс? я вообще-то технарей спрашивал) разных уровней и задавали острожные, хоть и дурацкие на взгляд программиста, вопросы, а на третью посоветовали… парсить их главную страницу, где выводится курс…
Передовой банк, что уж тут.
Приветствую, коллега. Так вышло, что почти одновременно с вами я начал вынашивать идею о написании своего клиента для OpenAPI на Ruby. Как раз сегодня я зарелизил свою поделку, консольный клиент для вывода портфолио брокерского счёта.
Моя задача — сделать консольную утилиту для просмотра полной итоговой суммы и процентов моего портфеля. Однако, столкнулся с несколькими недостатками данного API.
1. Отсутствие итоговой суммы и процентов доходности в API. Хотя бы в приближённом виде. А это то, ради чего я вообще начал писать код.
2. Список позиций на счёте вроде хорош, но в нём не хватает процентов доходности и оценочной стоимости каждой позиции. Пришлось писать кучу кода для вычисления процентов.
3. Каждая позиция в своей валюте, это вроде понятно и правильно. Но когда я собрался посчитать общую стоимость, это вылилось в нетривиальную задачу. Оказывается в API нет биржевого курса долларов/евро. Пришлось считать так: брать данные своих активов доллар и евро и через сумму и доходность высчитывать курс к рублю. Потом я прохожу по списку позиций и каждую позицию умножаю на курс к рублю, чтобы получить рублёвый итог.
По итогу несмотря на кучу неточных вычислений я получил довольно точные цифры, отличающиеся от приложения на доли процентов. И мне порой даже кажется, что мои данные чуть точнее, поскольку я сам вывел все формулы и сам по ним считаю свои денежки 🙂
Во избежание ошибок float-вычислений, использую BigDecimal — этакий float с гарантированной десятичной точностью. То есть складывая 1.1 + 1.2 получится 2.3, а не 2.2999999999999.
API в целом рабочее, но немного бесполезненькое. Иногда замирает, иногда некоторые поля приходят нулевые, пару раз ловил 500. Может через вебсокеты получится что-то интересное добыть.
Я курс доллара тоже у Тинькова беру
cd2 = datetime.now(tz=timezone(‘Europe/Moscow’))
cd1 = cd2 — timedelta(days=3)
cur = client.market.market_candles_get(‘BBG0013HGFT4’, cd1, cd2, ‘day’)
if len(cur.payload.candles) == 0:
print(»)
else:
print(cur.payload.candles[len(cur.payload.candles) — 1])
Это инструмент USD000UTSTOM — курс с поставкой валюты «завтра», но меня устраивает.
Источник