Робот для торговли акциями на тинькофф
Роботы для Тинькофф инвестиции
Ну что. Добрались до Тинькофф инвестиций и теперь там можно торговать нашими роботами. В этой статье пройдёмся по тому как именно подключить OsEngine к торгам, как выписывать ключи и что нужно делать в самой платформе. С картинками, шаг за шагом.
Также, выскажу своё личное мнение о том что в итоге получилось и какие хорошие и плохие стороны есть в их API и на сколько оно подходит в итоге вообще для торговли. В общем – самое интересное снизу)
Также на нашем портале Вы можете научиться алготрейдингу у профессионалов с многолетним стажем: https://o-s-a.net/training.html
Это часть известного онлайн-банка и мне лично кажется что всё у них очень круто будет в этом отношении. Они и дальше будут расти очень быстро. В общем, теперь алготрейдинг пришёл и в их дом. Пользуйтесь.
11. Делаем токен для доступа к Тинькофф инвестициям
22. Запускаем торговых роботов для Тинькофф инвестиций
33. Что думаю лично я
1. Делаем токен для доступа к Тинькофф инвестициям
Начинаем с того что нужно залогиниться на сайте тинькофф инвестиций. И далее, в личном кабинете идём в настройки:
После чего скролим страницу вниз до момента где у нас можно выписать себе токен:
Нажимаем на кнопку «Токен для торговли». Вам там придётся ещё раз ввести пароль в личном кабинете. И перед Вами появиться строка с токеном.
Вы её сохраните в файлик, он нам дальше понадобиться.
2. Запуск торговых роботов для Тинькофф инвестиций
Качаем конструктор роботов с нашего сайта: http://o-s-a.net/os-engine.html
Полистайте страницу и посмотрите видео. Попереходите по ссылочкам по папкам. Это проект с полностью открытым кодом который Вы можете использовать как угодно. Написан на языке СиШарп. Это программа полного цикла алготрейдинга. Делаем бота – тестируем – оптимизируем – запускаем в торги. Ну и не будем повторятся… Почитайте.
В общем, качаем зипку себе на ПК, распаковываем и дём вот к этому экзешнику:
Запускаем от Админа.
BotStation по стрелочке:
Далее идём в окно настроек подключений:
11) « Control » в правом меню
22) Далее Connection Servers
В графу токен вводим значение которое получали в личнок кабинете у брокера.
И уже после этого можем создавать роботов и всё вот это прочее что есть в нашей платформе:
Единственное. Поскольку из за убогости потокового сервиса мы его подключать не стали, постройку свечек Вам придётся делать из стаканов:
Если Вы вдруг не знаете что делать дальше, милости прошу на наш форум или ютуб канал:
Также, ВАЖНО. Не забывайте перевести время компьютера на Московское! Зачем? Лучше Вам не знать ей богу… Но без этого работать не будет.
3. Тинькофф Инвестиции и роботы – что думаю лично я
Удобные сервисы рулят. Лично у меня открытие брокерского счёта заняло 15 минут, вместе с переводом денег на него – вот что главное. И не даром клиентская база Тинькова растёт огромными темпами. Всё очень удобно. Ну ессно, для тех кто уже у них обслуживается.
Восхищаюсь тем подходом который он несёт в каждую область куда заходит. Везде делает прорывы. Везде его товар и сервисы лучше чем у конкурентов на порядок. Илон Маск российский, не иначе. Вот и здесь так.
Скорость входа в трейдинг быстрее чем на биржах криптовалют. Если у Вас уже есть карта – начать торговать, дело 10 – 15 минут. И это великолепно. Прямо бальзам на душу. Спасибо Олег.
Для алготрейдинга вся эта история пока дно полное. Кроме получасовиков торговать абсолютно и решительно нельзя.
Апи – маразматичное и сделано на от..бись. В натуральном смысле этого слова. Люди его делавшие вообще ни разу в жизни робота для трейдинга не видели. И вероятно даже с понятием трейдинга знакомы очень и очень поверхностно. Ибо не знают вообще какие типы данных есть на бирже и как их нужно рассылать.
Из поточных данных вообще идёт полный шлак. Ордеров нет, моих трейдов нет. Ленты сделок с.ка нет. Есть только стаканы, и то их скачивание ограничено 6стью штуками.
Время нигде нет. программисты. Как так у стакана нету таймШтампа. Какого хрена?
Короче. Потоковые данные мы полностью зарезали. Брать там нечего. И в ближайший год там всё это будет переделываться несколько раз. Тинькофф это так не оставит. Просто видать сказать некому пока. Ну ладно. Поэтому даже и начинать не стоит. Всё на чём основан наш коннектор – это запросы. Отсюда у нас задержки с получением данных и прочее. Кроме того, построение свечек только по центру стакана и только классика, ибо объёмов никто не знает, т.к. они их не дают. Такие дела.
В общем – история с АПИ для Тинькофф инвестиций абсолютно вторична и я когда смотрел на итоговый результат по коннектору плакал без остановки несколько часов. Надеюсь они в течении года это дело как-то подхилят и найдут нормального архитектора для Апи.
11) Отличный сервис для людей. 10 домохозяек из 10 я им ставлю.
22) Для алготрейдеров – ад и садомазохизм.
33) На стаканах соответственно вообще нельзя ничего торговать.
44) Быстрые алгоритмы тоже.
55) Много сделок выставлять нельзя.
66) Сервисы прямого доступа отсутствуют(плаза / ASTS / Fast / Twime ). Или есть, но я не увидел.
77) Готовьтесь к тому что они будут Api переделывать и будут проблемы с нашей уже стороны, т.к. мгновенно мы ничего не правим)
88) Торгуем получасовик
99) Собираем свечи из центра стакана
110) Много инструментов не торгуем одновременно
111) Ждём фиксов со строны Тинькофф Инвестиций, чтобы они озаботились судьбой программистов.
Всем удачных алгоритмов!
Уважаемые товарищи из Тинькофф Инвестиций. Будете читать) Я знаю. Наймите нормального консультанта который в этом понимает. У которого есть понимание того какие данные нужны алготрейдерам. Как их нужно давать. Как нужно устраивать подписку. Какие нужны таблицы данных. И за пару месяцев сделаете лучший сервис для алготрейдеров тоже. На том же высоком уровне как Вы уже сделали для домохозяек.
Блог компании Тинькофф Инвестиции | Мы запустили Open API для создания торговых роботов в Тинькофф Инвестициях
Мы запустили сервис Open API (открытый программный интерфейс) для алготрейдеров, который позволит написать роботов и настроить автоматическую торговлю на биржах.
Через Open API алготрейдеры смогут:
— выставлять и отменять лимитные заявки;
— через стриминг (в режиме уведомлений) по стакану, бумагам на бирже и свечам получать информацию о фондовом рынке;
— запрограммировать интерфейс Тинькофф Инвестиций так, чтобы мгновенно реагировать на резкое колебание стоимости акций и автоматически выставлять заявку на их покупку или продажу, причем сразу на то количество лотов, которое нужно.
Как работает?
У алготрейдеров есть единый API и единый брокерский счет для торгов ценными бумагами с крупнейших мировых бирж. Открывать отдельные счета для торговли на каждой из бирж не нужно. На сервисе используется простой и понятный протокол для программирования: лаконичные инструкции, актуальная документация с оптимальным набором опций, удобные библиотеки (Java, Scala).
Как начать?
Сервис доступен всем клиентам бесплатно. Устанавливать отдельный терминал на компьютер не нужно. Для работы с Open API необходимо получить токен через личный кабинет, после чего можно писать код. Свои стратегии трейдеры смогут проверять на специальном демосчете без риска потерять деньги.
Роботы на Тинькофф и Binance на JavaScript и +5000$;
Все комьюнити разработчиков торговых роботов, варится вокруг Python и C#. На вопрос почему именно эти языки они начинают неразборчиво бурчать про многопоточность, количество готовых библиотек, а иногда даже про семафоры. Вот и я решил попробовать влезть в эту солянку, да-да именно солянку, по другому это назвать и нельзя.
В общем, есть масса инструментов вроде бы годных прям для работы, но таких громоздких и как то все у них распихано по разным углам и существует в полном творческом бардаке. При этом никто не задается вопросом «как и почему это так работает?», все лишь пытаются что-то написать, чтобы заработать немного денег, если повезет.
Как это водится у многих разработчиков, мне стало интересно на что способен JavaScript и V8 с JIT, может ли он дать нужную скорость для сложной математики? И изначально все началось больше как исследовательская миссия. А дело, кстати, было полтора года назад.
Итак, что нам потребуются для разработки и запуска торговой стратегии, ну например, на Тинькофф Инвестиции :
Технические индикаторы на JavaScript. Хорошо что они есть, пусть и не сильно в изобилии. Возьмем самые популярные по скачиваниям technicalindicators
Что-нибудь для работы с Тинькофф, их библиотечка invest-openapi-js-sdk
Не смотря на тупость стратегии, оптимизировать ее нужно умненько: либо по Монте-Карло, либо с применением генетики, возьмем генетику, потому что просто красивее звучит. Подойдет библиотека geneticalgorithm
Немного подробнее про стратегию и про расхождение двух линий SMA. Основана она на стремлении рынка к коррекциям. Если SMA с более быстрым периодом уходит ниже SMA с медленным, то значит рынок совершил резкое изменение в цене, которое с определенной вероятностью будет корректироваться взад. На картинке ниже такие расхождение показаны стрелочками, почти все из них имеют обратное движение. Это хорошая точка входа в покупку акций. В короткие позиции можно входить когда быстрая SMA резко ушла выше медленной.
График акций тесла и тупой стратегии
В целом план есть, осталось написать только какой-нибудь модуль транспорта для более высокоуровневой работы и модуль генетики, для адаптации алгоритма все же под финансовые задачи.
Так сложилось, что SDK от Тинькофф на тот момент почти никто и не использовал. Так что пришлось его попутно переписать как следует, чтобы обеспечить надежную работу, а то свет мигнул, или кабель кто-то жует, или библиотека плохо написана, в общем коннект при пинге в 3 миллисекунды с разрывами. SDK переделал быстро, встретил кучу приятной отзывчивости от владельца репозитория на GitHub. Так совместными силами и вышел инструмент, который я до сих пор использую.
Вот примерно этим же занимается библиотека генетических алгоритмов. Чтобы не было очень скучно, вот серия картинок как «бабочки» обучаются лететь в нужную точку.
Бабочка случайно двигается
Одинокая бабочка со случайными параметрами выполняет пируэты броуновского движения, двигаясь во все направления.
Если применить немного генетики, взяв 100 бабочек и 20 поколений поскрещивать их, выдавая конфетки за приближение к точке и *текст заблокирован за жестокое обращение с бабочками*, если те двигаются не в нужном направлении. Получим следующий слайд.
Бабочки летят в указаную точку
В общем-то уже понятно, я надеюсь, как это с бабочками работает. Давайте теперь про торговлю.
Торговая стратегия это то, что у нас теперь будет вместо летающих насекомых. В качестве критерия оценки, обычно берется математическое ожидание выигрыша, это такая характеристика в теории азартных игр, она прогнозирует сумму выигрыша, которую может заработать или проиграть игрок, в среднем, по каждой ставке. На языке азартных игроков это иногда называется «преимуществом игрока» (если оно положительно для игрока) или «преимуществом казино» (если оно отрицательно для игрока). То что нам нужно, чтобы понять выигрываем ли мы у биржи с нашей торговой стратегией или нет. Вот это и будет главным критерием генетической оптимизации в нашей системе.
Вот формула подсчета мат. ожидания, на всякий случай:
Позволю себе немного кодовых вставок, без них никак. Чтобы крутить параметры стратегии потребуется некоторый интерфейс для их описания. Ниже он представлен в виде литерала объекта с различными полями.
Интерфейс позволяет задать значения, которые принимает тот или иной параметр, например целые или нет, четные или нет, булевы или числа. Теперь генетика будет знать как заполнять нашу популяцию в 100 или в 500 особей случайно сгенерированными параметрами.
Кстати, про популяцию, в нашем случае в качестве особи будет одна торговая стратегия с определенным набором настроек (генов). Которые мы и будем сохранять и передавать при скрещивании от родителей к детям.
Пишу статью легко и беззаботно, избегая возможно не нужных технических деталей, на на самом деле уже прошел целый год хардкорной разработки и эксперимент вышел из под контроля, свел так сказать, с ума группу энтузиастов.
В результате получилась либа async-genetic отвечающая всем стандартам, да еще и работающая быстрее. Не только в плане кода, но и в плане решения задач. Из-за дополнительных настроек, например, решает задачу «угадай какое слово я загадала» в 2 раза быстрее (в среднем).
Кроме этого давно не было картинок, поэтому пора показать результат визуализации работы стратегии и открытия сделок.
Визуализация сделок по стратегии
Чтобы вы могли видеть эту картинку со сделками и двумя SMA, потребовалось еще много времени на написание небольшой системы визуализации сделок. И загруженной истории. И тут стало понятно, что эксперимент ну совсем уже вышел из под контроля и начал жить своей жизнью. Конечно к этому времени что-то уже работало на бирже и пыталось заработать немного денег. И надо сказать любой заработок мотивировал как ничто другое продолжать это нелегкое дело.
И изначально генетика отрабатывала хорошо, но очень уж долго. Что мне показалось странным и я стал разбираться в проблеме. После дебага NodeJS приложения, удалось выяснить, что основная проблема это индикаторы, которые написаны ну очень плохо. Опять что ли писать свои? На этой фазе проект уже начал образовывать экосистему вокруг себя и первоначальное исследовательское направление стало разрушаться. Теперь фокус был на заработок и на создание полноценной платформы.
Тут только 3 индикатора, руки не дошли проверить остальные но уже было ясно что все работает быстрее. В общем то основным преимуществом стала специфика индикаторов, в данном случае они писались не для графиков, а для потоковых вычислений и результаты предыдущих расчетов используются по максимуму в расчете на движение всегда слева на право во времени. Так появились собственные индикаторы.
После этого момента стало очевидно, что получается готовый продукт, для разработки стратегий. Оставалось только отрефакторить все это 15 раз чтобы подготовить к опенсорцу.
Перед тем как я перейду в рекламе, хотелось бы дорассказать все же про стратегию. В общем то стратегию мы не бросили, она и по сей день где-нибудь да работает, но конечно заработать нам удавалось в основном на гораздо более сложных стратегиях. И вот сунув немного денег в крипту и тинькофф инвестиции уже заработано более 5000$, но в основном на крипте кнечно, акции только только начинают возвращаться в качестве активов.
Стриминг сделок мы ведем в нашем телеграмм канале. Здесь публикуются данные обо всех позициях, с небольшой задержкой примерно в 30-100 секунд. А также каждый вечер публикуется дневная и общая статистика (как на картинке). Подписывайтесь, будем рады.
В итоге в конце концов мы создали целую систему инструментов и назвали ее Debut.
В основе Debut лежит архитектура ядра и надстраиваемых плагинов, позволяющих гибко кастомизировать любые решения. Основной целью всей экосистемы Debut, является упрощение процесса создания и запуска рабочих торговых роботов на различные биржи. На данный момент поддерживаются: Тинькофф Инвестиции и Binance (и да, где-то по дороге подключилась крипта).
В проекте есть две стартовые торговые стратегии «Для примера» как нужно работать с системой. Репозиторий с образцами и примерами.
В общем полтора года разработки привели меня ко многим открытиям, часть из которых осталась за ширмой, но я обязательно расскажу о них в каком-нибудь докладе на конференции.
Как устроены торговые роботы?
Сейчас на бирже очень популярны торговые роботы. Есть люди, которые активно этих роботов продают: якобы они автоматически торгуют на бирже, делают это быстрее человека в 1000 раз, и можно получить прибыль в размере 20—50% в месяц. Куча положительных отзывов, негативных крайне мало. Но мне не верится, что у этих инструментов инвестирования такая доходность.
Еще у крупных продавцов роботов есть свои партнерские программы — каким-то образом они активно зарабатывают бешеные деньги. Помогите, пожалуйста, разобраться, действительно ли это рабочая схема.
Алексей, действительно, торговые роботы, которые автоматически торгуют на бирже, существуют. И да, они могут делать это в 1000 раз быстрее человека.
Но что касается доходности и тем более покупки подобного торгового робота, то тут есть нюансы. О них и хочу рассказать.
Что за роботы и для чего они нужны
Торговый робот — это не двуногий андроид из металла и пластика, а компьютерная программа, которая обычно работает в связке с интерфейсом брокера. Как правило, связующим звеном выступает терминал QUIK. Но некоторые брокеры предоставляют и прямой доступ к собственному API — программному интерфейсу «клиент — сервер», в котором на сервере прописаны все команды, а клиент использует эти команды и получает то, что ему необходимо в данный момент. Например, подает торговые приказы или смотрит текущие позиции.
Большинство торговых роботов не пишут с нуля, а используют существующие программные решения. Довольно популярны программы Amibroker, Astrend, Equis Metastock Professional, Excel, Neuro, TSLab, Ninja Trader, Matlab, Metatrader, Omega Research Prosuite & Tradestation, Quik, Wealth-Lab Developer. Да, Quik тоже попадает в этот список за счет встроенных языков программирования: QPILE, или QUIK Programmable Interface and Logic Environment, и QLUA — это встроенный интерпретатор скриптового языка LUA.
Торговый робот, или механическая торговая система — МТС, хорош, когда есть четкая стратегия торговли, которая полностью формализована: четко определены и запрограммированы правила открытия, сопровождения и закрытия сделок. В этом случае робот позволяет полностью исключить человеческий фактор и эмоции — он будет слепо следовать алгоритму. Обычно роботов настраивают на торговлю в интервалах, кратных 15 минутам, часу, дню.
Например, робот может раз в час проверять отклонение цены от заданной — и покупать или продавать инструмент. Если хочется погрузиться в тему глубже, можно посмотреть журнал Technical Analysis of Stocks & Commodities, где в каждом номере открыто публикуют коды торговых систем, адаптированные для разных программ. Например, в июльском выпуске за 2019 год в центре внимания — статья Виталия Апирина «Полосы экспоненциального отклонения».
Еще бывают так называемые высокочастотные роботы, которые могут совершать тысячи сделок за секунду, — HFT, high-frequency trading. Про это есть хорошая книга Майкла Льюиса «Flash Boys. Высокочастотная революция на Уолл-стрит ». Но для высокочастотного трейдинга надо иметь минимальный пинг — промежуток времени, за который сигнал, отосланный с рабочего сервера, проходит через сеть до другого сервера и возвращается обратно, — до биржи и в идеале находиться в том же самом здании, что и сама биржа.
Инвестиции — это не сложно
Причина 1: аналитическая
Московская биржа совместно с брокерскими компаниями ежегодно проводит конкурс «Лучший частный инвестор» — ЛЧИ. Из итоговой статистики 2019 года видно, что самые активные участники конкурса, которые просто не могут быть людьми с таким количеством заявок и сделок, необязательно попадают в статистику лучших.
Организаторы конкурса ЛЧИ не указывают в явном виде, используется автоматический торговый алгоритм или ведется торговля руками. Но несколько десятков тысяч сделок за четыре месяца проведения конкурса однозначно говорят о применении алгоритмов. Например, там есть участник с 30 703 сделками и доходностью 172,60%, а есть участник, который совершил 657 058 сделок, но получил всего 1,69% дохода. Из этого можно сделать вывод, что алгоритмы тоже бывают разными: какие-то приносят их создателям доход, а какие-то нет.
Причина 2: логическая
Допустим, вы разработали алгоритм или считаете, что нашли какую-то локальную неэффективность на рынке. Дальше вы запрограммировали это, провели тесты на истории и подобрали необходимые параметры для работы, еще раз все проверили и запустили эту механическую торговую систему на реальном счете.
Допустим, что робот делает 20% в месяц. «Допустим», потому что тесты на истории не гарантируют, что в дальнейшем будет хоть какая-то доходность. Произведем расчеты из предположения, что у нас есть 300 000 Р и некий волшебный алгоритм, который гарантированно делает 20% в месяц.
Во что 20% в месяц превратят 300 000 Р за год
Месяц | Сумма |
---|---|
Январь | 300 000 Р |
Февраль | 360 000 Р |
Март | 432 000 Р |
Апрель | 518 400 Р |
Май | 622 080 Р |
Июнь | 746 496 Р |
Июль | 895 795 Р |
Август | 1 074 954 Р |
Сентябрь | 1 289 945 Р |
Октябрь | 1 547 934 Р |
Ноябрь | 1 857 521 Р |
Декабрь | 2 229 025 Р |
Из этой таблицы видно, что за год вложения увеличатся почти в восемь раз — и это при доходности только 20%. А вот что будет, если найти Грааль и брать 50% доходности ежемесячно.
Во что 50% в месяц превратят 300 000 Р за год
Месяц | Сумма |
---|---|
Январь | 300 000 Р |
Февраль | 450 000 Р |
Март | 675 000 Р |
Апрель | 1 012 500 Р |
Май | 1 518 750 Р |
Июнь | 2 278 125 Р |
Июль | 3 417 188 Р |
Август | 5 125 781 Р |
Сентябрь | 7 688 672 Р |
Октябрь | 11 533 008 Р |
Ноябрь | 17 299 512 Р |
Декабрь | 25 949 268 Р |
Первоначальный капитал увеличится почти в 90 раз всего за год. Возникает разумный вопрос: зачем отдавать кому-то курицу, которая несет золотые яйца? Если какой-то алгоритм работает, то любой разумный человек будет заинтересован в том, чтобы о нем знало как можно меньше людей: чем больше инвесторов пользуются алгоритмом, тем быстрее он перестает работать. Вероятнее всего, создатели пытаются выжать последние соки из уже отработавшего алгоритма, поэтому и пытаются продавать его, иногда совсем за смешные деньги. В нашей рубрике «Под прищуром» мы уже как-то разбирали один торговый робот и объяснили, почему не стоит его покупать.
К тому же именно с торговыми роботами есть дополнительные нюансы. Алгоритм принятия решений может быть скрыт или запутан. Может продаваться и так называемый черный ящик, в котором невозможно понять логику алгоритма. Это значит, что в определенной фазе рынка алгоритм может работать хорошо, а в другой может за несколько сделок слить весь депозит. Чтобы написать торгового робота, не требуются особые знания. Любой программист в состоянии разобраться с этим. Другой вопрос: зачем ему этим заниматься?
А что касается партнерских программ, то бешеные деньги там могут делать как раз создатели таких программ, и никакого отношения к торговым роботам такой бизнес может не иметь. На поверку это оказывается обычным сетевым маркетингом и, возможно, пирамидой, куда привлекают все новых и новых членов, заманивая чем-то неизвестным, но привлекательным и очень доходным, одновременно не предоставляя аудированных отчетов о прошлых результатах.
Если у вас есть вопрос об инвестициях, личных финансах или семейном бюджете, пишите. На самые интересные вопросы ответим в журнале.