История

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

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


  1. chernish2
    11.09.2021 19:56

    А экономический смысл какой? Если инструмент XYZ вдруг сильно вырос - что Вы делаете с этой информацией?


    1. Areso
      11.09.2021 21:42
      +1

      Выходят из сделки. Упал - заходят. Повторять до бесконечности


      1. denis-isaev
        11.09.2021 22:35
        +7

        Чаще до банкротства :)


      1. chernish2
        14.09.2021 23:22

        Для этого вроде take profit есть, зачем это руками мониторить?


        1. Areso
          15.09.2021 00:58

          Для выхода - да, а для входа?

          Take profit на торгах до открытия / после закрытия имеет свои особенности и риски.


    1. DiTsi Автор
      11.09.2021 22:24
      +1

      Для меня эффект скорее психологический. Мне нравится в режиме online знать, что происходит с моими акциями без ежедневных|недельных проверок Tinkoff Investing с вводом пин-кода.

      В целом если посмотреть на мои результаты в Инвестициях, то можно сказать, что экономического эффекта нет, но я знаю людей, у кого он есть и вполне ощутимый. Поэтому и тут, думаю, всё индивидуально. Может кто-то умнее чем я воспользуется инструментом. Если кто-то придумает, как на этом заработать миллионы, дайте знать)


      1. asmolenskiy
        12.09.2021 00:52
        +7

        Если Вы не трейдер а ну типа... инвестор - Вам лучше вообще не знать, что происходит с Вашими ценными бумагами в реальном времени и не проверять Тинькофф Инвестиции.

        Рынок обычно отыгрывает прыжки/падения в воротах 20%, а вот Ваши яйца психика может не отыграть и сделать глупость. Просто инстинктивно реагируя на движение цены не понимая его причин, при этом не будучи трейдером, реагирующим мнгновенно - вы проиграете.

        Вот Вам конкретный пример - у меня по портфелю с начала июля до конца августа был стабильный лосс который отрос до -10% (по некоторым тикерам было ниже -20%), а в последнюю неделю августа за 2 дня превратился в +8%. Но я шевелю свой портфель максимум раз в 2 недели, а то и реже и не проверяю его каждый день - будь иначе - мог бы легко выйти на дне (я думаю там были просадки и ниже, он у меня сильно волатильный по составу). У меня даже приложение не стоит, а чтобы зайти в банкинг - надо по RDP подключиться к безопасной машине, вычислить пароль к KeePass, вставить USB-Token ну - и зайти в банкинг. Короче почти как в Сбербанк сходить ногами. Моя психика защищена.


      1. AnonimYYYs
        13.09.2021 21:22

        Действительно, присоединюсь к предыдущему комментатору.

        Если вы именно трейдер, который держит акции не больше 3 дней и перепродает их тоннами, то да, приложение неплохое (хотя трейдеры скорее используют инструменты биржы, где все видно реал-тайм)

        Если же вы инвестор (а это как минимум пол года держать акцию, с учетом местного законодательства в идеале - от трех лет), то вам это нафиг не надо. Положили 100 тысяч условных тугриков и забыли на целый год, что они есть. Через год посмотрели, порадовались, и забыли еще на два года. И уже только потом начали думать о продаже.

        Следить ежедневно не только бесполезно, но и вредно. Сейчас, например, весь рынок за месяц упадет на 30%, вы сляжете с сердечком, а рынок возьмет и вырастет на 80% за оставшиеся 11 месяцев - в итоге за этот год вы получили 26% роста и проблемы с сердцем.


    1. tuxi
      12.09.2021 10:01

      Как что? Девиз пульсят: покупай на хаях, продавай на лоях )))


  1. sogarkov
    12.09.2021 00:00

    Как бы сделать похожее для ВТБ Мои Инвестиции? У ВТБ есть анонс API и партнёрства с Яндекс, но документацию они не открывают.


    1. tuxi
      12.09.2021 10:04

      Запускаете TradingView через селениум, вешаете обработчик на вебсокеты, получаете котировки всех тикеров что есть в окне , смотрите на котировку и разницу в обьеме торгов с предыдущим тиком и генерите себе нужные события. Уже год работает такая схема у меня. Минус только один, ТВ премаркет СПб не показывает. Но это можно из Квика получать например.


      1. sogarkov
        12.09.2021 13:25

        Спасибо, попробую так.


    1. DigitalBerd
      13.09.2021 17:58

      Пару месяцев назад звонил на горячую линию ВТБ - они говорили что делать API для инвестиций у них даже близко в планах нет.


      1. 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/

        Что-то они открыли наружу.


  1. belyvoron
    13.09.2021 08:44

    У меня всё это безобразие с фондовых рынков считается в банальной табличке Google sheets. Курсы валют и акции она нативно умеет через функцию GOOGLEFINANCE, остальное через API мосбиржи.

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

    Можно сделать и уведомлялку на почту, но не вижу смысла.

    Городить что-то больше... Докер... А смысл?


  1. DigitalBerd
    13.09.2021 17:48

    Сейчас тоже пишу сервис, основанный на API Тинькофф инвестиций и сильно бесят несколько моментов:

    1. Нет официального API на Python. Есть OpenAPI, но во-первых, в нём нет никаких гарантий, что что-то будет работать, во-вторых ужасающее документирование API.

    2. Лимиты. Нельзя по 1 бумаге забирать стакан с глубиной в 1000, раз в секунду, чтобы анализировать динамику. О том, чтобы раз в минуту выгружать информацию по всем инструментам - нечего даже и думать - жёсткие лимиты, создаёшь нагрузку на сервер - тебя режут. И нет никаких гарантий, что завтра эти лимиты не срежут ещё, как это уже делали. С такими лимитами автоматизировать можно максимум работу с акциями 2х - 3х компаний одновременно, больше - никак.

    3. Больше всего бесит то, что особо никаких альтернатив и нет. Т.е. друге банки вообще API для автотрейдеров не разработали и не собираются, существующее решение от тинька - ужасное, но хоть как-то работает, брокеры, которые не банки - с ними работать стрёмно - что не кинут, а напрямую с биржей (например, Московской) - работать никак - они только с брокерами работают, а чтобы себе оформить фирму с брокерской лицензией - затрат на первый взгляд лямов на 10 минимум...


    1. tuxi
      14.09.2021 00:45

      Нельзя по 1 бумаге забирать стакан с глубиной в 1000, раз в секунду


      Тут скорей всего не совсем брокер виноват. У мосбиржи например есть четкие ограничения, кому можно давать «стакан раз в секунду», а кому нет. Тут «комунет» — это физлица без брокерской лицензии.


    1. asmolenskiy
      17.09.2021 00:10

      Банк точно также может кинуть - потому что Вы работаете не с банком, а с брокером под крылом банка. Это отдельное юр лицо с собственной лицензией на осуществление этого вида деятельности. Даже зеленый брокер - это не Сбербанк.

      Никакой ответственности кроме репутационной банк за своего брокера не несет. Еслии ЦБ лишит его лицензии - точно также будете выцарапывать оттуда свои акции как из какого-нибудь Финам, а фиат потеряете. А если торгуете американскими бумагами - то и их потеряете, потому что они не ваши на самом деле. Там какая-то адская магия с прокладками - что они даже и не брокера. В общем если не предпринимать для того специальных телодвижений (что для трейдера глупо) то не существует такого места где написано что акции TSLA сегодня принадлежат Вам.


    1. asmolenskiy
      17.09.2021 00:10

      ***


  1. DenisGerasimenko
    26.09.2021 04:54

    Уже около года есть проект в Телеграме: @AlertStocksBot сервис для получения уведомлений по рыночным инструментам. Тема уведомлений раскрыта более полно.

    Подключены все акции рынка США, все акции Московской биржи, фьючерсы Московской биржи, криптовалюты (Binance).