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

Текущая аналитика брокера показывает только открытые позиции, а профиль в "пульсе" подсчитывает лишь общий процент, без конкретики. Это не дает возможность увидеть «настоящую» картину своего портфеля.

К примеру, покупаем 1 акцию по 1000, после падения до 900 усредняем еще одной акцией. Затем при отскоке до 950 продаем 1 акцию. В итоге оставшаяся акция в портфеле "горит зеленым" (образуется плюс +50 по правилу fifo), хотя фактический результат бумаги на данный момент будет 0 (без учета комиссий). Такое отображение бумаг в приложении может сбить с толку, и привести к неправильным решениям и большим потерям, при совершении множества сделок.

Идея вести дневник сделок в excel, или периодически копаться в налоговом/брокерском отчете, мне не понравилась. Зато приглянулась мысль - обрабатывать данные полученные из официального API.

Результатом стал онлайн-инструмент, в который легко загрузить историю операций. После чего она отображается в табличном виде, с которыми удобно работать.

В статье я продемонстрирую, как пользоваться созданным инструментом, и какие задачи решаются. Подсвечу некоторые особенности данных полученных из API.

Об инструменте, немного лирики

Мои первые шаги по анализу истории были сделаны года два назад. Результатом были таблицы, которые помогали мне закрыть любые вопросы:

Скрин статистики 2020 года
Скрин статистики 2020 года

Я даже периодически делал разного роды выгрузки друзьям и знакомым. Передавать VM/doсker образ со скриптами людям без навыков в IT было сложно, поэтому делалось все мною вручную. Зародилась мысль автоматизировать и вывести процесс в онлайн.

По акции от AWS достался бесплатный сервер на год, куда я перенес базу и продолжил изучение python, придумывая себе различные задачи, позволяющие автоматизировать торговлю.

Позже к разработке подключился друг. И вот мы больше года держим сервер, где крутятся наши наработки на python (Telegram-боты, скринеры и прочее). К примеру, боты уведомляют о различных событиях по акциям наших портфелей.

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

Результатом полуторамесячной работы по выходным стал сайт https://tstocks.ru/, который использует:

  • Front: ReactJS (Nginx)

  • Backend: Python Flask

  • СУБД: Postgres

Сайт должен работать во всех современных браузерах. Публично пока доступен лишь анализ истории.

Ближе к делу, как загрузить данные для анализа

Для анализа требуется история сделок, которую можно забрать в формате json из API Тинькофф. Пример для curl, а ниже будут команды и для Winodws.

Следует ознакомиться с правилами использования OpenApi Тинькофф. Никому не передавайте токен и не оставляйте его в истории команд, т.к. с помощью него можно совершать операции. Если вы считаете, что токен мог быть скомпрометирован, то отзовите его на странице банка https://id.tinkoff.ru/account

Если вы ранее не работали с консолью, и у вас вопросы по использованию команд, то лучше спросите в ЛС/комментариях перед использованием.

curl -X GET "https://api-invest.tinkoff.ru/openapi/operations?from=2015-01-01T00%3A00%3A00%2B03%3A00&to=2025-01-01T00%3A00%3A00%2B03%3A00" -H "accept: application/json" -H "Authorization: Bearer t.TOKEN" > _my_invest_operations.json
Параметры запроса CURL

Можно изменить параметры запроса в url к api-invest.tinkoff.ru/openapi/operations:

from=2015-01-01 - период выгрузки ОТ

to=2025-01-01 - период выгрузки ДО* лучше указывать максимальный период, для консистентности данных

&figi=******* - необязательный параметр, выгрузка операций по конкретному FIGI

&brokerAccountId=****** - необязательный параметр, указываем конкретный брокерский счет, если у вас их несколько

brokerAccountId можно получить командой:

curl -X 'GET' \
'https://api-invest.tinkoff.ru/openapi/user/accounts' \
-H 'accept: application/json' \
-H 'Authorization: Bearer t.TOKEN' # -- УКАЗЫВАЕМ СВОЙ ТОКЕН

Json не содержит API токен и прочую личную информацию. Исключить передачу токена было главной целью.

Пример json

Некоторые операции имеют вложенный элемент "trades"

{
    "trackingId": "9e46ad76c68c9a37",
    "payload": {
        "operations": [
            {
                "operationType": "Dividend",
                "date": "2021-12-13T06:00:00+03:00",
                "isMarginCall": false,
                "instrumentType": "Stock",
                "figi": "BBG000BR2B91",
                "payment": 1.37,
                "currency": "USD",
                "status": "Done",
                "id": "2825259975"
            },
            {
                "operationType": "BrokerCommission",
                "date": "2021-12-10T19:18:32.273+03:00",
                "isMarginCall": false,
                "instrumentType": "Stock",
                "figi": "BBG006L8G4H1",
                "quantity": 0,
                "quantityExecuted": 0,
                "payment": -5.63,
                "currency": "RUB",
                "status": "Done",
                "id": "2826624962"
            },
            {
                "operationType": "Buy",
                "date": "2021-12-10T19:18:31.273+03:00",
                "isMarginCall": false,
                "instrumentType": "Stock",
                "figi": "BBG006L8G4H1",
                "quantity": 3,
                "quantityExecuted": 3,
                "price": 4690.8,
                "payment": -14072.4,
                "currency": "RUB",
                "commission": {
                    "currency": "RUB",
                    "value": -5.63
                },
                "trades": [
                    {
                        "tradeId": "498456613",
                        "date": "2021-12-10T19:42:09.441+03:00",
                        "quantity": 3,
                        "price": 4690.8
                    }
                ],
                "status": "Done",
                "id": "29072082626"
            }
        ]
    },
    "status": "Ok"
}

Далее эти данные загружаются на сервер, в json ответе возвращается sha1 hash ваших операций (именуемый id).

Получение и импорт сделок можно поместить в одну команду:

#Загружаем операции одной командой через pipeline, не забыв указать токен в первом curl
curl -X GET "https://api-invest.tinkoff.ru/openapi/operations?from=2015-01-01T00%3A00%3A00%2B03%3A00&to=2025-01-01T00%3A00%3A00%2B03%3A00" -H "accept: application/json" -H "Authorization: Bearer t.TOKEN" | curl -H "Content-Type: application/json" -X POST --data-binary @- https://tstocks.ru/api/operations/upload
повторный импорт

При повторном импорте, если данные по сделкам не изменились, то будет выдан тот же id, а загрузка пропущена.

*Nginx имеет небольшие лимиты на повторный импорт

Пример для Windows:

Windows PowerShell
  1. Сохраняем историю сделок в файл

    Дополнительные параметры

    Можно изменить параметры запроса в url к api-invest.tinkoff.ru/openapi/operations:

    from=2015-01-01 - период выгрузки ОТ

    to=2025-01-01 - период выгрузки ДО* лучше указывать максимальный период, для консистентности данных

    &figi=******* - необязательный параметр, выгрузка операций по конкретному FIGI

    &brokerAccountId=****** - необязательный параметр, указываем конкретный брокерский счет, если у вас их несколько

    brokerAccountId можно получить командой:

    (Invoke-WebRequest -Uri "https://api-invest.tinkoff.ru/openapi/user/accounts" -Headers @{
    "method" = "GET"
    "accept"="application/json"
    "authorization"="Bearer t.TOKEN" # -- УКАЗЫВАЕМ СВОЙ ТОКЕН
    }).Content
(Invoke-WebRequest -Uri "https://api-invest.tinkoff.ru/openapi/operations?from=2015-01-01T00%3A00%3A00%2B03%3A00&to=2025-01-01T00%3A00%3A00%2B03%3A00" -Headers @{
"method" = "GET"
"accept"="application/json"
"authorization"="Bearer t.TOKEN" # -- УКАЗЫВАЕМ СВОЙ ТОКЕН
}
).Content > _my_invest_operations.json # название файла в который сохранятся операции
  1. Отправляем файл на сервер

Invoke-RestMethod -ContentType 'application/json' -uri https://tstocks.ru/api/operations/upload -method POST -InFile _my_invest_operations.json

Как пользоваться

После загрузки операций и получения id, вставляем его на сайт. Не путайте с токеном TinkoffApi. Имеется демонстрационный id, для тех, кому интересно посмотреть функционал, не загружая свои сделки.

Disclaimer

На сайте нет авторизации в привычном виде, т.к. цель максимально упростить процесс, избежать регистраций и сбора личной информации.

Id это sha1 хэш, который достаточно уникальный и длинный для перебора. Просмотреть сделки сможет любой, кто знает id, что может быть удобно для передачи его другу-инвестору.

Имеется кнопка удаления данных по id, а также в планах ввести время жизни загруженного портфеля.

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

При нажатии на кнопки открываются соответствующие таблицы, я покажу несколько кейсов их использования, чтобы было понятно, как с ними работать. Постараюсь воздержаться от комментариев самих сделок и результата.

Статистика по инструментам

Таблица отображает данные сгруппированные по FIGI. В наименованиях столбцов кратко описан смысл, по ходу статьи дополнительно уточню значения некоторых столбцов.

а) Смотрим доходность торговли по конкретной бумаге

Почти два года назад я наивно игрался с "шортами Tesla", и мне было интересно сколько дохода это приносит. С этого кейса родилась идея извлекать данные из API.

Итог сделок плачевный, хотя начиналось все неплохо. Опыт, сын ошибок трудных..

Поясню значения столбцов:

  • Фикс разница - зафиксированный доход/убыток. Купоны/дивиденды/комиссии не включены, они отображаются в отдельных одноименных столбцах

Немного боли с расчетом

Оказывается, что это не так легко посчитать, если на руках не 0 бумаг.

Бумаги покупаются и продаются частями в разное время, требуется раскрывать и упорядочивать сделки, соблюдая правило FIFO, еще у некоторых акций огромные лоты (*в TGKB миллион шт.)

Все расчеты ведутся в БД, т.ч. пришлось повозиться с оптимизацией sql запросов и функций, чтобы это работало очень быстро. Для оптимизации использовал https://explain.dalibo.com/

  • Доход текущий - это примерно то, что мы видим в приложении по текущим позициям, купоны/дивиденды/комиссии не включены

  • Доход - это сумма двух предыдущих столбцов, купоны/дивиденды/комиссии не включены

  • Общий доход - это предыдущий столбец + налоги(див/купон)/купоны/дивиденды/комиссии

  • Figi содержит ссылку, по которой открывается вся история по бумаге:

Пример истории по FIGI
Пример истории по FIGI

*для демонстрационного портфеля некоторые подробности недоступны

**комиссия за маржинальную торговлю не привязана к конкретному figi, ее можно посмотреть на вкладке "Прочие платежи"

б) Смотрим то, что не видно в приложении при фиксации убытков, или активной торговле

Скоро конец года, и для снижения налога на доход я зафиксировал убыток по FEES, и снова выкупил акции. Открыв приложение брокера, я даже увижу прибыль (столбец "Доход текущий"). А если так зафиксировать все убытки, то можно увидеть "зеленый" портфель в приложении.

Однако, мне интересно видеть и не забывать про реальный итог торговли по тикеру.

в) Ищем бумаги, которые принесли наибольшую прибыль за все время

Столбцы таблицы поддерживают фильтрацию, сортировку и группировку по нескольким столбцам. Сортировка осуществляется кликом по нескольким столбцам через SHIFT, группировка осуществляется через меню-ПКМ в требуемой последовательности. При группировке некоторые числовые столбцы показывают итог с суммой, минимальным и максимальным значением

Группируем или фильтруем по валюте и сортируем по "Общему доходу"

Наиболее прибыльной стратегией для меня было - купить несколько голубых фишек, и забыть про них:)

г) Считаем дивиденды

Некоторые компании торгуются в рублях, но платят дивиденды в валюте (например "Полиметалл"). Поэтому для группировки введен отдельный столбец - "валюта дивидендов". Не буду повторяться и показывать, как группировать и сортировать.

В примере покажу некий парадокс, у меня приложение Тинькофф не отображает дивиденды по своим же акциям.

Обратил внимание, что TCS($) принес большие дивиденды, и огромную доходность (* считаю как отношение всего оборота доходов/расходов).

Понимаю, что этот доход скорее всего относится к рублевой акции, т.к. сумма достаточно большая. Почти все, кто использовал Тинькофф API знают, что TCS и TCSG раньше висели на одном FIGI, и создавали головную боль. Пришлось ввести простой костыль, который меняет FIGI в зависимости от валюты.

Но особенность в том, что даже в терминале по этим тикерам не видно информации по данным выплатам:

История в терминале

В ленте приложения эти событие отображается, и при клике переводит в TCS ($)

Но и в истории тикеров данной информации нет:

TCS
TCS
TCSG
TCSG

е) Еще один необычный пример. По STX статистика показывает отрицательное количество акций.

*в данном случае эмулируется шорт-позиция. Доход рассчитывается, словно я продал по 98, а выкупить сейчас можно по 104

Видимо у Seagate когда-то сменился figi. Такая же история в официальном терминале, т.е. я словно из воздуха получил и продал эти акции, никакого наследования не видно. Техподдержка отправила в брокерский отчет смотреть сумму покупки по старому isin (IE00B58JVZ52):

Вся история по STX в терминале
Вся история по STX в терминале

Есть еще минусы анализа данных из API, которые опишу в конце статьи.

е) Ищем "залежавшиеся" акции через столбец "дней с последней сделки"

Это была одна из первых покупок, оказавшаяся падающим ножом, которую я почему-то наивно храню. Акция не приносит дивидендов, и лежит в долгосроке почти 3 года. Возможно пора зафиксировать убыток..

Отклоненные операции

Таблица может быть полезна для обнаружения несработавших тейк-профитов/стоп-лосс, попыток купить/продать акцию.

Например, у меня стоял тейпрофит на TGKN, выставивший заявку, которая не исполнилась.

Несработавший тейк/стоп придется переставлять вручную.

Еще можно вспомнить, какие акции вы хотели купить/продать, и как повела себя акция по отношению к текущей цене.

В примере ниже видны мои попытки купить ISKJ, который взлетел в 3.5 раза за короткий промежуток времени.

Есть и обратные примеры, куда к счастью не удалось войти. Мне такой анализ позволяет вспомнить, чем я руководствовался и немного порефлексировать:)

Прочие операции

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

Дополнительные столбцы с датами позволяют удобнее фильтровать/группировать данные по периодам, а одна из таблиц уже сгруппирована по месяцам, валюте и типу.

Анализируя траты на оплату тарифа "Трейдер", я заметил, что в августе 2021 год плата списалась с меня 2 раза. Я даже подумал, что это глюк API:

Пример ручной группировки

Ответ тех. поддержки я не очень понял. Судя по всему, я с каких-то пор стал привязан к расчетному периоду и дате платежа (22-е). Хотя мне казалось, что если я заплатил 05.08.2021, то могу торговать до 04.09.2021.

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

Проблемы анализа через API

  1. API не возвращает историю по бумагам, которые больше не обращаются на бирже. Некоторых погашенных облигаций я тоже не нашел в ответе API.

    Видимо поэтому, чтобы узнать сколько я потратил на упомянутый выше Seagate, мне нужно скачивать отчет брокера.

    По этой же причине не берусь считать суммарный итог портфеля.

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

    На данный момент бумаги, прошедшие сплит/консолидацию могут неправильно отображать доход в таблице. Если кто знает, как это решить - напишите.

  3. Пока что не учитываю налоги, т.к. цель показать общую картину без тонкостей: учета ИИС; W-8BEN; сроков владения и т.д.

Итог

За последние годы приложение Тинькофф стало лучше, появились скринеры, группы, заметки. Не знаю есть ли такое у других брокеров. Но я до сих пор не нашел способа фильтровать/сортировать инструменты своего портфеля. Не раз писал предложения по улучшению, в том числе на Хабре. Как раз статья @softandiron вдохновила меня оживить забытый инструмент.

Я показал лишь часть ярких примеров использования. В будущем планируется расширить функционал сайта https://tstocks.ru/. Не откажемся от помощи грамотных инвесторов и программистов.

Как вам в целом такой формат загрузки, преобразования и отображения данных. Пользуйтесь ли вы сторонними инструментами, и помогают ли они пролить свет на портфель? Хватает ли вам штатного функционала брокера?

Таблицы несложно расширить, пишите, чего не хватает, сообщайте о недочетах и делитесь общим впечатлением.

Благодарю за внимание!

Комментарии (37)


  1. NikTrub
    22.12.2021 10:21
    +2

    Попробую вечером проанализировать, торгую мало, но будет интересно будет посмореть...


    1. NikTrub
      23.12.2021 09:29

      Прикольные таблицы! Даже чуть не всплакнул из-за одного момента

      Есть одна акция, в которою я по глупости вошел и оочень много потерял - GTX. Я не сразу понял почему у нее высокое отношение к текущей цене. Почему вообще есть текущая цена, ведь она вроде закрывалась для торговли, и собиралась делиститься.

      Поэтому в "последние дни" продал за копейки. Из-за этого почти перестал торговать

      А сейчас она еще и торгуется, и выросла выше чем я брал до усреднений!!

      график


      1. postgres Автор
        23.12.2021 18:42

        Да уж. Припоминаю подобное, тоже фиксанул убыток, но сумма небольшая.

        Стараюсь больше не лезть в рисковые акции. Где-то будет "ракета", а где-то наоборот


  1. Dreamka
    22.12.2021 10:25
    +4

    Да уж в тинькове не самый лучший терминал и аналитика. Но то что у них оказывается есть API мне в голову почему-то не приходило. Есть над чем подумать. А автору плюсик закину за статью.


    1. postgres Автор
      22.12.2021 11:11

      Спасибо. Я другими брокерами не пользовался, у них иначе?


      1. Dreamka
        22.12.2021 12:09

        Везде по разному. Я тоже пользуюсь только тиньков и БКС. Так что не могу ответить исчерпывающе Я считаю что тинькову например не стоило изобретать велосипед, а сделать просто возможным подключить МТ4 или МТ5. Не совсем понятно почему у них такого нет.


        1. rational
          22.12.2021 12:22
          +1

          Потому что подключение MT или QUIK тянет кучу легаси бэкенда. И ещё за них нужно платить лицензии)


          1. Dreamka
            22.12.2021 12:28
            +1

            Тоесть свой терминал на костылях это не легаси бэкенд?


            1. JustClickMe
              23.12.2021 10:34
              +1

              Почему на костылях?


        1. BilalOleg
          22.12.2021 12:58
          +6

          Мне кажется они пытаются создать максимально простые инструменты, для обычных людей. На эти Метатрейды страшно смотреть даже


  1. BilalOleg
    22.12.2021 10:58
    +1

    По поводу двойного списания комисии за месяц, я разок замечал это . Подумал, что это из-за подключения TinkoffPro, так как примерно в это время подключил его и даже не вникал что за платеж


    1. Kroning
      22.12.2021 12:03
      +1

      Так и есть. Писал им в конце августа. Но исправили или нет - не знаю.

      "По техническим причинам при подключении подписки "Тинькофф PRO" меняется дата расчетного периода, из-за чего некорректно списывается плата за обслуживание.

      Дата расчетного периода при подключении подписки меняться не должна.

      Мы уже знаем о ситуации и занимаемся исправлением, стараемся максимально оперативно всё решить.

      Приносим извинения за неудобства."


      1. postgres Автор
        22.12.2021 12:06

        Я тоже подключал, но совсем не 22-го числа, даже не подумал, что это вляет на Инвестиции..


      1. BilalOleg
        22.12.2021 12:56

        Т.е. мне нужно им написать, чтобы вернули деньги, и поправили дату?


        1. Kroning
          22.12.2021 18:00

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

          Более того, вспомнил ещё один возможный глюк.:
          "Комиссия списывается при первой операции в расчетном периоде, в той валюте в которой совершена первая сделка." С меня пару раз списали в баксах.


  1. vilgeforce
    22.12.2021 11:50
    +4

    Им бы ограничения прав токена ввести... Типа вот токен только для получения данных, ни для чего больше.


    1. postgres Автор
      22.12.2021 11:55

      Ага, жаль, что токен песочницы не позволяет получить данные реального портфеля(


      1. vilgeforce
        22.12.2021 11:56

        А Тиньк есть тут на хабре? Может их в тред позвать...


        1. postgres Автор
          22.12.2021 11:58
          +2

          Видел @tinkoff_bank


          1. wolfer
            22.12.2021 18:13
            +1

            у них, к сожалению, пока что на все вопросы про API ответ одинаковый - v1 мы развивать не будем, потому что пилим v2, а когда будет v2 не скажем, потому что сами не знаем) Пилят уже больше года


            1. tinkoff_bank
              22.12.2021 20:29
              +1

              Новая версия выйдет до нового года.


              1. vilgeforce
                22.12.2021 21:31

                2022-го? И там будет ограничение прав у токенов? ;-)


                1. wolfer
                  23.12.2021 12:11
                  +1

                  Да, будет. Выпустили уже описание. Походу и правда скоро запустят)
                  https://tinkoffcreditsystems.github.io/investAPI/token/


              1. ForeverYoung
                23.12.2021 07:24

                А поддержка 2го и далее счетов будет?


  1. Ninil
    22.12.2021 13:24
    +2

    У меня другой брокер, API нет, но можно выгружать брокерские отчеты из ЛК в том числе в формате XML (а потом парсить и делать с данными все, что хочешь). Идея взять данные и "анализировать-анализировать-анализировать их" конечно привлекательна. Но вот быстро встает вопрос: анализировать "чтобы что?". Зачем конкретно проводить тот или иной анализ? Ведь любая аналитика и отчет/цифра в отчете - не самоцель, а лишь инструмент принятия решений.

    В итоге после раздумий написал на питоне простенький скрипт, который объединяет брокерские отчеты с разных секций и счетов в один отчет и считает ровно 2 вещи: стуктуру портфеля (по сути круговая диаграмма) и доходность методом IRR (по годам и общую за все время).

    С учетом этого, вопросы автору для лучшего понимания смысла статьи (хорошо бы добавить это в статью, ИМХО):

    • вы активно скальпите, у вас стратегия "купил - держи" или еще какая-то? Ибо в зависимости от стратегии нужна разная аналитика.

    • какие решения вы принимаете на основании полученной вами аналитики?


    1. postgres Автор
      22.12.2021 21:07
      +2

      Хороший вопрос. Согласен, что просто так анализировать нет смысла.

      Были разные стратегии, а статистика портфеля показала, что лучшей стратегией для меня было - купить несколько голубых фишек, и забыть про них.

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

      Но сложные 20/21 годы немного отбили желание этим заниматься, сейчас осуществляю попытки вернуть интерес.

       


  1. Margin_Call
    22.12.2021 13:35
    +2

    Может сделать подробную инструкцию по получнию токена? Не сразу нашел эти настройки.

    А так данные загрузил, здорово, даже не ожидал что так отрисуется все.

    Увидел что я почти никогда не фиксирую убытки, а откладываю все в долгосрок и усредняю

    Хотел уточнить, работают ли фильтры больше или равно? а то хотел найти акции, которые я давно не трогал, но при сортировке хочется исключить проданные, где 'имеется' = 0


    1. postgres Автор
      22.12.2021 14:30

      К сожалению, на данный момент работает лишь условие "содержит". Иные условия отключены, т.к. требуют доработок.

      Про подробную инструкцию подумаю.. Но изначально не хотел описывать в статье эти шаги, чтобы люди не выполняли бездумно выпуск токена.


    1. OvkHabr
      22.12.2021 18:23
      +1

      https://habr.com/ru/post/496722/ - я описывал получение токена. Вроде, интерфейс у них не изменился


  1. KonishchevDmitry
    22.12.2021 20:12
    +4

    То, что рисуют в своей аналитике брокеры, не выдерживает никакой критики. Чего только стоит отображение долларовой прибыли, которая на самом деле не долларовая, а рублевая переведенная по текущему курсу в доллары.

    Ну и ни один брокер, само собой, не пытается включить налоги в расчет, хотя с нашей нестабильной валютой из-за валютной переоценки налоги могут очень сильно влиять на доходность. Для себя сделал вот такую красоту - https://www.youtube.com/watch?v=fMUxBDY3AUg. В первую очередь как раз хотелось увидеть, как сильно влияют налоги на реальную доходность, и насколько мне может удасться выправить эту ситуацию за счет налоговых вычетов.

    Возможно кому-то пригодится - https://github.com/KonishchevDmitry/investments. Интерфейс не насколько дружелюбный, но зато умеет уже довольно много. Раньше пользовался сторонними приложениями (Webull) для анализа портфеля, но потом полностью перешел на свою программу, т. к. во-первых ничего не надо вводить самому, а во-вторых - опять-таки ради более детальной аналитики.


    1. postgres Автор
      22.12.2021 21:05

      Вау! Попробую на досуге. Даешь Tinkoff prometheus exporter!


  1. tinkoff_bank
    22.12.2021 20:23
    +1

    Здравствуйте.

    Спасибо за подробный отзыв о нашем сервисе!

    Поймали ваше предложение по отображению сделок и бумаг в личном кабинете и приложению. Передали ее ответственным. Оставлять новые идеи можете по ссылке https://www.tinkoff.ru/invest/feedback/.

    В старой версии API есть проблема есть с возвращением истории, в новой версии работает все корректно. Также исправили в новой версии в списке операций есть информацию по погашенным облигациям.

    Учитывая все многообразие возможных корпоративных действий (КД), решить проблему только одним коэффициентом не получится. Чаще всего КД приводят к скрытию старых бумаг и созданию новых. Рекомендуем относится к ним как к новым бумагам.

    При подключении подписки устанавливаем новый расчетный период, при этом повторного списания не должно быть. Напишите, пожалуйста, ФИО и дату рождения со ссылкой на эту статью на connect@tinkoff.ru. Проверим корректность списания подписки.


    1. postgres Автор
      22.12.2021 21:28
      +2

      Спасибо за ответ!

      Ждем новый api:) Было бы волшебно, если был бы токен, который может видеть реальный портфель, но не иметь прав совершать сделки. Или чек-бокс ReadOnly какой-нибудь текущему токену ввести, от греха подальше.

      Учитывая все многообразие возможных корпоративных действий (КД), решить проблему только одним коэффициентом не получится. Чаще всего КД приводят к скрытию старых бумаг и созданию новых. Рекомендуем относится к ним как к новым бумагам.

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

      Как тогда решать такой пример: FXUS раньше стоил 4751 (1 лот / 1 штука)

      Затем вы раздробили его в 100 раз, и теперь цена 62,6 за 1 шт. FIGI не менялся, вы же как-то понимаете внутри, что я не в минусе?)


  1. Vendings
    22.12.2021 23:20

    Спасибо за идеи. На мой взгляд, самый лучший инструмент - обновляемая таблица со всеми сделками в максимально возможной детализации. Будучи выгруженной в Google Docs или ещё куда, на неё можно навертеть любую аналитику. Я так и сделал для себя с помощью скриптов, встреченных здесь на Хабре, настроив выходные таблицы под себя, в частности, итоги по всем инструментам с учётом комиссий, дивов и удержанных налогов. Даже примерно понял, как Тинькофф считает результат по портфелю ))


    1. postgres Автор
      23.12.2021 18:43

      Здорово, можете этим поделиться?)


  1. BilalOleg
    23.12.2021 10:07

    Возможно глупый для хабра вопрос, а что это за таблицы ? я начал изучать javascript, думал, что смогу взять их исходный код из браузера чтобы побаловаться с ними, подставить свои данные и тд. НО вообще ничего не понял в исходниках, это же какая-то библиотека?


    1. postgres Автор
      23.12.2021 18:53

      Это react-table на ReactJS, Webpack без исходников.

      Возможно, вам проще будет побаловаться с DataTables https://datatables.net/ на jquery