Уведомления при изменении цены акций в Тинькофф Инвестициях

Sat 11 September 2021

None

Соответствующая статья опубликована здесь: https://habr.com/ru/articles/577416

История

В момент всеобщего интереса к теме инвестиций, этим начал заниматься и я. А так как я автоматизирую всё, что попадается мне под руки, эту тему также не обошёл стороной.

Для инвестиций выбрал Тинькофф, как один из наиболее популярных и функциональных сервисов. Очень быстро появилась потребность отслеживать цену акций, чтобы держать руку на пульсе. В Тинькофф Инвестициях есть инструмент для этого: уведомления по достижении некоего уровня цены. Но это уведомление срабатывает один раз и его приходится ставить заново, что неудобно. Подходящий для меня функционал обнаружил в приложении 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

Скриншоты

Так выглядят уведомления. При нажатии на название акции вас перебросит в портфель на соответствующую акцию.

None

Также поддерживаются уведомления о покупке / продаже акций:

None

Заключение

В коде есть что поправить, есть функционал, который хотелось бы нарастить, но, к сожалению, нет времени + интерес сместился в другую плоскость. Чувствую, что нескоро вернусь к проекту, чтобы исправить его недостатки, поэтому публикую как есть - надеюсь, не только мне будет полезен функционал. У меня уже несколько месяцев проложение работает и помогает мне следить за курсом.