История
В момент всеобщего интереса к теме инвестиций, этим начал заниматься и я. А так как я автоматизирую всё, что попадается мне под руки, эту тему также не обошёл стороной.
Для инвестиций выбрал Тинькофф, как один из наиболее популярных и функциональных сервисов. Очень быстро появилась потребность отслеживать цену акций, чтобы держать руку на пульсе. В Тинькофф Инвестициях есть инструмент для этого: уведомления по достижении некоего уровня цены. Но это уведомление срабатывает один раз и его приходится ставить заново, что неудобно. Подходящий для меня функционал обнаружил в приложении Investing.com: уведомление придёт, если цена акции изменится на заданную в процентах величину. После уведомления счётчик сбрасывается и уведомление придёт снова, если это повторится. Установил приложение и добавил для отслеживания свои акции - то что нужно!
Но со временем, когда я продал несколько акций и купил другие, стало понятно, что вносить те же изменения в приложении Investing.com мне лень + раздражало лишнее приложение на телефоне. Благо, у Tinkoff Investing есть API. Решил реализовать тот же функционал с уведомлениями, но непосредственно для моих акций, а уведомления получать в Telegram. Так родился проект https://github.com/DiTsi/tinkoff_investing_notifier.
Конфигурация
Telegram
Необходимо создать бота в Telegram (инструкция) и получить его Токен и ID группы или пользователя, которому бот должен посылать уведомления.
Tinkoff Investing Токен
ВНИМАНИЕ! Токен даёт доступ к вашему портфелю. Обеспечьте его безопасное хранение.
Для работы приложения необходимо получить токен для Тинькофф Инвестиций здесь.
.env file
Рядом с docker-compose.yml файлом создаём файл .env с переменными окружения, где прописываем все поля:
TIMEZONE=Europe/Moscow
TOKEN= # Токен для Tinkoff Investing API
TELEGRAM_GROUP= # ID группы или пользователя Telegram,
# куда бот будет отправлять сообщения
TELEGRAM_TOKEN= # bot token
MARIADB_HOST=
MARIADB_PORT=3306
MARIADB_DB=
MARIADB_USER=
MARIADB_PASSWORD=
docker-compose.yml
В docker-compose.yml необходимо поправить environment.
config.yml
notifications:
stock_change:
percent: 2.0 # на какую величину должна измениться цена на акцию
# для получения уведомления
На этом конфигурация завершена, можно запускать через
docker-compose up -d
Скриншоты
Так выглядят уведомления. При нажатии на название акции вас перебросит в портфель на соответствующую акцию.
Также поддерживаются уведомления о покупке / продаже акций:
Заключение
В коде есть что поправить, есть функционал, который хотелось бы нарастить, но, к сожалению, нет времени + интерес сместился в другую плоскость. Чувствую, что нескоро вернусь к проекту, чтобы исправить его недостатки, поэтому публикую как есть - надеюсь, не только мне будет полезен функционал. У меня уже несколько месяцев проложение работает и помогает мне следить за курсом.
Комментарии (20)
sogarkov
12.09.2021 00:00Как бы сделать похожее для ВТБ Мои Инвестиции? У ВТБ есть анонс API и партнёрства с Яндекс, но документацию они не открывают.
tuxi
12.09.2021 10:04Запускаете TradingView через селениум, вешаете обработчик на вебсокеты, получаете котировки всех тикеров что есть в окне , смотрите на котировку и разницу в обьеме торгов с предыдущим тиком и генерите себе нужные события. Уже год работает такая схема у меня. Минус только один, ТВ премаркет СПб не показывает. Но это можно из Квика получать например.
DigitalBerd
13.09.2021 17:58Пару месяцев назад звонил на горячую линию ВТБ - они говорили что делать API для инвестиций у них даже близко в планах нет.
sogarkov
13.09.2021 18:12Вот здесь анонс ВТБ и Яндекс Инвестиций: https://www.vtb.ru/o-banke/press-centr/novosti-i-press-relizy/2020/07/2020-07-02-vtb-integriroval-platformu-dlya-upravleniya-finansami-v-yandeksplyus/
Что-то они открыли наружу.
belyvoron
13.09.2021 08:44У меня всё это безобразие с фондовых рынков считается в банальной табличке Google sheets. Курсы валют и акции она нативно умеет через функцию GOOGLEFINANCE, остальное через API мосбиржи.
Из этого табличка строит остатки на каждый день, считает портфельную доходность и по каждому инструменту. И сколько нужно чего добавить для ребалансировки.
Можно сделать и уведомлялку на почту, но не вижу смысла.
Городить что-то больше... Докер... А смысл?
DigitalBerd
13.09.2021 17:48Сейчас тоже пишу сервис, основанный на API Тинькофф инвестиций и сильно бесят несколько моментов:
Нет официального API на Python. Есть OpenAPI, но во-первых, в нём нет никаких гарантий, что что-то будет работать, во-вторых ужасающее документирование API.
Лимиты. Нельзя по 1 бумаге забирать стакан с глубиной в 1000, раз в секунду, чтобы анализировать динамику. О том, чтобы раз в минуту выгружать информацию по всем инструментам - нечего даже и думать - жёсткие лимиты, создаёшь нагрузку на сервер - тебя режут. И нет никаких гарантий, что завтра эти лимиты не срежут ещё, как это уже делали. С такими лимитами автоматизировать можно максимум работу с акциями 2х - 3х компаний одновременно, больше - никак.
Больше всего бесит то, что особо никаких альтернатив и нет. Т.е. друге банки вообще API для автотрейдеров не разработали и не собираются, существующее решение от тинька - ужасное, но хоть как-то работает, брокеры, которые не банки - с ними работать стрёмно - что не кинут, а напрямую с биржей (например, Московской) - работать никак - они только с брокерами работают, а чтобы себе оформить фирму с брокерской лицензией - затрат на первый взгляд лямов на 10 минимум...
tuxi
14.09.2021 00:45Нельзя по 1 бумаге забирать стакан с глубиной в 1000, раз в секунду
Тут скорей всего не совсем брокер виноват. У мосбиржи например есть четкие ограничения, кому можно давать «стакан раз в секунду», а кому нет. Тут «комунет» — это физлица без брокерской лицензии.
asmolenskiy
17.09.2021 00:10Банк точно также может кинуть - потому что Вы работаете не с банком, а с брокером под крылом банка. Это отдельное юр лицо с собственной лицензией на осуществление этого вида деятельности. Даже зеленый брокер - это не Сбербанк.
Никакой ответственности кроме репутационной банк за своего брокера не несет. Еслии ЦБ лишит его лицензии - точно также будете выцарапывать оттуда свои акции как из какого-нибудь Финам, а фиат потеряете. А если торгуете американскими бумагами - то и их потеряете, потому что они не ваши на самом деле. Там какая-то адская магия с прокладками - что они даже и не брокера. В общем если не предпринимать для того специальных телодвижений (что для трейдера глупо) то не существует такого места где написано что акции TSLA сегодня принадлежат Вам.
DenisGerasimenko
26.09.2021 04:54Уже около года есть проект в Телеграме: @AlertStocksBot сервис для получения уведомлений по рыночным инструментам. Тема уведомлений раскрыта более полно.
Подключены все акции рынка США, все акции Московской биржи, фьючерсы Московской биржи, криптовалюты (Binance).
chernish2
А экономический смысл какой? Если инструмент XYZ вдруг сильно вырос - что Вы делаете с этой информацией?
Areso
Выходят из сделки. Упал - заходят. Повторять до бесконечности
denis-isaev
Чаще до банкротства :)
chernish2
Для этого вроде take profit есть, зачем это руками мониторить?
Areso
Для выхода - да, а для входа?
Take profit на торгах до открытия / после закрытия имеет свои особенности и риски.
DiTsi Автор
Для меня эффект скорее психологический. Мне нравится в режиме online знать, что происходит с моими акциями без ежедневных|недельных проверок Tinkoff Investing с вводом пин-кода.
В целом если посмотреть на мои результаты в Инвестициях, то можно сказать, что экономического эффекта нет, но я знаю людей, у кого он есть и вполне ощутимый. Поэтому и тут, думаю, всё индивидуально. Может кто-то умнее чем я воспользуется инструментом. Если кто-то придумает, как на этом заработать миллионы, дайте знать)
asmolenskiy
Если Вы не трейдер а ну типа... инвестор - Вам лучше вообще не знать, что происходит с Вашими ценными бумагами в реальном времени и не проверять Тинькофф Инвестиции.
Рынок обычно отыгрывает прыжки/падения в воротах 20%, а вот Ваши
яйцапсихика может не отыграть и сделать глупость. Просто инстинктивно реагируя на движение цены не понимая его причин, при этом не будучи трейдером, реагирующим мнгновенно - вы проиграете.Вот Вам конкретный пример - у меня по портфелю с начала июля до конца августа был стабильный лосс который отрос до -10% (по некоторым тикерам было ниже -20%), а в последнюю неделю августа за 2 дня превратился в +8%. Но я шевелю свой портфель максимум раз в 2 недели, а то и реже и не проверяю его каждый день - будь иначе - мог бы легко выйти на дне (я думаю там были просадки и ниже, он у меня сильно волатильный по составу). У меня даже приложение не стоит, а чтобы зайти в банкинг - надо по RDP подключиться к безопасной машине, вычислить пароль к KeePass, вставить USB-Token ну - и зайти в банкинг. Короче почти как в Сбербанк сходить ногами. Моя психика защищена.
AnonimYYYs
Действительно, присоединюсь к предыдущему комментатору.
Если вы именно трейдер, который держит акции не больше 3 дней и перепродает их тоннами, то да, приложение неплохое (хотя трейдеры скорее используют инструменты биржы, где все видно реал-тайм)
Если же вы инвестор (а это как минимум пол года держать акцию, с учетом местного законодательства в идеале - от трех лет), то вам это нафиг не надо. Положили 100 тысяч условных тугриков и забыли на целый год, что они есть. Через год посмотрели, порадовались, и забыли еще на два года. И уже только потом начали думать о продаже.
Следить ежедневно не только бесполезно, но и вредно. Сейчас, например, весь рынок за месяц упадет на 30%, вы сляжете с сердечком, а рынок возьмет и вырастет на 80% за оставшиеся 11 месяцев - в итоге за этот год вы получили 26% роста и проблемы с сердцем.
tuxi
Как что? Девиз пульсят: покупай на хаях, продавай на лоях )))