Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях Архив процентов по вкладам

Время на прочтение

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

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

Пока Олег прикалывается над фаундерами Rocket Bank-а, его сотрудники вовсю работают над улучшением функционала приложения для инвестиций Тинькофф Инвестиции. Сегодня они выкатили киллер-фичу, что идёт вразрез со всеми трендами в разработке приложений для инвестирования, надо похвалить их за смелость! Суть на скриншотах. Отныне нельзя посмотреть историю своих сделок в реальном времени, только на следующий день, скачав откуда-то брокерский отчёт. ВАУ!!! Это очень круто. Экономия на облачном хранении в разы. Одним махом скосили лямов 40 на клауд. Клиенты наверняка оценят прорывное решение ТИ. Ведь правильно говорят гуру финансовых рынков, что не надо смотреть на котировки каждую минуту, достаточно раз в день.

UPD: ЭТО НА САМОМ ДЕЛЕ ТАК

“конечно же важно видеть операции, которые вы совершали”. Чё-то у них с головой не всё впорядке. Как мне теперь торгововать до момента, когда они выкатят обновление????? Я вообще не понимаю, как можно брать комиссию за такой сервис.

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

Вот так тепрь я торгую

ПРЕДСТАВИТЕЛИ ОЛЕГА ТИНЬКОВА НАГЛО ВРУТ И СКРЫВАЮТ ПРОЮЛЕМУ

на banki.ru много отзывов об этой проблеме, вот хорошее описание

Проблема не единичная!!!

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

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

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

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

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

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

Описание проблемы

Рассмотрю на примере своего портфеля (не ИИС) в мобильном приложении. (С даты публикации приложение может обновиться).

На главном экране видим ободряющие значения:

Как посмотреть пополнения в тинькофф инвестициях

У меня здесь сразу возникают вопросы:

Заходим в раздел Портфельная аналитика, и находим там уже другие значения:

Как посмотреть пополнения в тинькофф инвестициях

Почему на главной странице было +955 644, а здесь почти на 2 миллиона больше?

Кстати, здесь уже можно посмотреть результаты за год, приложение выводит сумму, но не процент.

Пока всё выглядит весьма оптимистично, открываю профиль в Пульсе.

Как посмотреть пополнения в тинькофф инвестициях

Вот это результат! Посмотрим по-подробнее.

Как посмотреть пополнения в тинькофф инвестициях

Здесь приведены результаты по месяцам. За 4 месяца текущего года +6,67%, а если посмотреть на 2020 год, там у меня +31,41%. Для сравнения, если не ошибаюсь, S&P 500 за 2020 год вырос на 16,26%. Не совсем понимаю, как я мог его так обогнать, если только дело не в курсовой разнице. В любом случае, это не вяжется с обозначенными на главном экране +12,21% за всё время, т.к. 2019 и 2018 года тоже зелёные. В общем, не понятно, как и в какой валюте они считают, надо разбираться.

Как посмотреть переводы в Тинькофф?

В приложении на главном экране выберите «Кредит наличными», на появившемся экране будет указана сумма крупным шрифтом — это и есть ваша оставшаяся задолженность по кредиту наличными. В личном кабинете выберите «Кредит наличными» на панели счетов слева.

Какой лимит на переводы в Тинькофф?

Есть ли лимиты для переводов с дебетовой карты Тинькофф? Максимальная сумма перевода с карты на карту — 150 000 ₽. В сутки не больше 10 переводов с одной карты.

Как очистить историю операций в Тинькофф?

В индивидуальном кабинете выбрать пункт «Настройки». После совершенных операций зайти в меню Мобильного Банка. Избрать пункт «SMS-запросы и шаблоны». Избрать нужный шаблон и рядом с ним кликнуть на клавишу удаления.

Как в приложении Тинькофф пополнить карту?

Когда банк начисляет кэшбэк? Например, банк формирует выписку каждый месяц 15 числа, следующая должна прийти 15 апреля. В этот день банк начислит кэшбэк за покупки в период с 16 марта по 15 апреля.

Как посмотреть статистику в Тинькофф?

«Тинькофф-банк» уведомил своих клиентов, что он теперь будет брать комиссию в 1,5% (но не меньше 30 руб.) за переводы в Сбербанк по номеру телефона. Соответствующее письмо кредитной организации есть в распоряжении «Ведомостей». «Бесплатными остаются переводы через Систему быстрых платежей.

Что делать если с карты Тинькофф сняли деньги?

Что делать, если украли деньги с карты?

Почему Тинькофф не переводит деньги?

Возможно, вы ошиблись в реквизитах получателя. Перепроверьте, правильно ли вы их заполнили. Если вы ошиблись в реквизитах, деньги до получателя не дойдут — в течение 5 рабочих дней банк-получатель вернет их на ваш счет.

Как узнать сколько осталось платить кредит Тинькофф по номеру договора?

Отправьте СМС: на номер 2273 — в России для абонентов МТС, «Билайна» и «Мегафона»; +7 903 767-22-73 — для СМС других мобильных операторов или из-за границы. В тексте сообщения напишите «Баланс ?», где ? — последние четыре цифры номера карты. Вместо «Баланс» можно набрать «Бал/Bal/Balance».

Как можно узнать остаток по кредиту?

Способы узнать остаток по кредиту

Как зайти в личный кабинет Тинькофф?

В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.

С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).

Общие знания по Python я брал из своего любимого справочника: https://www.w3schools.com/

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

Вообще, чисто субъективно, мне этот язык сразу понравился. Порадовала краткость путей решения задач. Сложилось впечатление, что если просто нужно, чтобы что-то заработало, оно здесь заработает в два счёта, без лишних заморочек. Гуглится всё элементарно, по крайней мере, на моём уровне сложности. Чаще всего, решения находил на https://stackoverflow.com/

Читайте также:  Можно ли вводить номер карты при оплате через интернет

– Позиции

В левой части таблицы выводится информация по текущему портфелю:

Как посмотреть пополнения в тинькофф инвестициях

Параметры (базовые, из API):

name – название бумаги

ticker – тикер

balance – количество бумаг в портфеле

currency – валюта

ave.price – средняя цена покупки в валюте

exp.yield – ожидаемая прибыль с продажи (без учёта налогов и комиссий)

Тут, кстати, стало понятно, откуда взялась сумма 955 644 руб (+12,21%) на главном экране приложения – это как раз и есть суммарный exp.yield в рублях по рыночному курсу.

Параметры, посчитанные на основе базовых:

market price – текущая рыночная цена одной бумаги (ave.price + exp.yield)

% change – процент изменения стоимости актива (market_price / ave.price) * 100) – 100)

market value – текущая рыночная стоимость всей позиции (market_price * balance)

market value RUB – рыночная стоимость всей позиции в пересчёте на рубли по текущему рыночному (не ЦБ) курсу

ave. % – среднее арифметическое всех % change. Сейчас я понимаю, что это бесполезный параметр. Надо было считать по-другому, возможно исправлю в следующих версиях программы.

total value: – рыночная стоимость портфеля в рублях (сумма всех market value RUB)

Как видим из скриншота, total value составляет 8 782 836, что близко к значению на главном экране приложения: 8 782 160р, но не соответствует ему точь-в-точь. Отклонение составляет 0,0077%. Не существенно, но чем вызвано, я не совсем понимаю. Если есть идеи по исправлению – напишите, пожалуйста, в комментариях.

Дальше – интереснее!

Сразу после блока с рыночными ценами, располагается самый сложный, с точки зрения расчётов, блок: стоимость активов по ЦБ и расчёт ожидаемого налога при продаже.

Как посмотреть пополнения в тинькофф инвестициях

CB value RUB – стоимость позиции в рублях по курсу ЦБ на сегодня.

Внизу считается сумма, которая у меня составила 8 749 045 – это оценка стоимости моего портфеля, с точки зрения ЦБ, и она отличается от рыночной стоимости на 33 791 руб, что вполне нормально.

ave.buy in RUB – средняя стоимость покупки в рублях по курсу ЦБ на дату покупки. Это важный параметр для последующего расчёта налога.

Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.

Чтобы решить эту задачу, я придумал сделать для каждой позиции упорядоченный список (массив). Программа пробегает по всем операциям покупки, находя операции с figi данной бумаги, и каждая покупка добавляет в список количество ячеек, соответствующее количеству приобретённых бумаг. Каждая ячейка содержит значение, соответствующее цене покупки в рублях по курсу ЦБ на дату операции. А каждая продажа удаляет нужное количество ячеек из начала списка. Затем считается среднее значение по оставшимся ячейкам, так получается средняя цена покупки в рублях по курсу ЦБ.

Как посмотреть пополнения в тинькофф инвестициях

Был небольшой подвох, связанный с тем, что в списке операций от Tinkoff API есть не только выполненные, но и нулевые операции, которые пришлось отсеивать.

Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку. В итоге, всё считается как надо, но этот этап обрабатывается ощутимо медленно. Чтобы обработались мои 15 позиций и 430 операций, приходится ждать около 1 минуты.

Как посмотреть пополнения в тинькофф инвестициях

Наверняка это можно как-то оптимизировать, но, в принципе, мы не торопимся.

Разобравшись с самым сложным этапом, можно составить следующие колоночки:

sum.buy in RUB – сумма покупки позиции в рублях по курсу ЦБ (ave.buy in RUB * balance)

Внизу считается сумма, которая составила 7 178 123 – на такую сумму, по мнению ЦБ, я приобрёл текущие активы.

tax base – налоговая база (sum.buy in RUB – CB value RUB)

expected tax – ожидаемый налог по ставке 13%, который нам насчитают, если продать бумагу сейчас.

Внизу получилась сумма: 207 145 руб. – такой налог будет удержан, если я продам весь портфель сейчас.

– Аналитика

Я впихнул этот маленький раздел прямо под таблицей с позициями.

Как посмотреть пополнения в тинькофф инвестициях

Investing period – период инвестирования с даты, которую мы указали в текстовом файлике до сегодняшней даты. По идее, должен пригодиться для последующих расчётов эффективности инвестирования.

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

PayIn – PayOut – разница между внесёнными на счёт средствами и выведенными по курсу ЦБ на дату операции. У меня это получилось 5 843 172 руб – столько средств я задонатил на свой счёт.

Commissions payed – сумма всех комиссий, уплаченных брокеру. У меня она составила 17 315 руб, из которых 2200 руб – это 2% побор за участие в IPO Сегежа, в которое я впутался пару дней назад. Если не принимать его во внимание, то за всё время я заплатил всего около 15 000 руб комиссий, что, я считаю, достаточно мало. На тарифе Премиум при покупке $1000 я плачу всего 18,22 руб комиссии.

Кстати, из-за появления в портфеле позиции “Сегежа” в первый день после IPO программа не могла выполниться и выдавала ошибку. На следующий день по бумаге с API стали приходить нормальные данные и программа снова заработала.

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

Если что, форма W8BEN, у меня, на данный момент, по некоторым причинам, не действует.

Итого, в российский бюджет я уже уплатил 117 631 руб, и, как было посчитано выше, мне предстоит уплатить ещё порядка 207К, если я зафиксирую портфель сейчас.

Здесь ещё раз уточню: налог считается в рублях, и если мы купили бумагу за $100 при курсе ЦБ 60р за доллар, а через год, когда доллар стал стоить 80р, продали эту бумагу за те же $100, мы должны будем заплатить налог 260р за счёт курсовой разницы, потому что, с точки зрения ЦБ, мы купили бумагу за 6000р, а продали за 8000р, хотя ни одного $ мы не заработали.

Clean portfolio – стоимость нашего портфеля по текущему рыночному курсу за вычетом предстоящего налога. Это те деньги, которые мы реально сможем вывести, если зафиксируем весь портфель сейчас. Сюда ещё можно накинуть комиссию брокера, но она варьируется, и я не стал её хардкодить. Навскидку, если у меня портфель примерно $116000 и тариф Премиум, комиссия за продажу всех активов получится где-то примерно 2000р. И ещё почти столько же, если я захочу поменять в рубли. Если не ошибаюсь, в Тинькофф Инвестициях комиссия на всё одинаковая.

Profit – сумма, которую мы заработаем при фиксации портфеля сегодня. Считается как Clean portfolio – (PayIn – PayOut), т.е., полученные средства, очищенные от налогов, минус вложенные средства. У меня получилась сумма 2 732 519, что похоже на сумму “Доход за всё время” из раздела “Портфельная аналитика” в мобильном приложении, только за вычетом налога 207К. Расхождение около 2500 руб. Не знаю, насколько это здесь существенно.

В общем-то, это пока всё, что я сделал.

Поиск решения

Чтобы внести больше ясности в процесс инвестирования, сделать этот процесс более осознанным, мне нужно:

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

Читайте также:  Газпромбанк - вклады для пенсионеров, какой выбрать и как открыть

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

Здесь на выручку приходит Tinkoff API – средство для разработчиков ПО, позволяющее взаимодействовать с Тинькофф Инвестициями автоматизированными средствами.

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

Немного боли с расчетомОказывается, что это не так легко посчитать, если на руках не 0 бумаг.Бумаги покупаются и продаются частями в разное время, требуется раскрывать и упорядочивать сделки, соблюдая правило FIFO, еще у некоторых акций огромные лоты (*в TGKB миллион шт.)Все расчеты ведутся в БД, т.ч. пришлось повозиться с оптимизацией sql запросов и функций, чтобы это работало очень быстро. Для оптимизации использовал https://explain.dalibo.com/

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

История в терминалеВ ленте приложения эти событие отображается, и при клике переводит в TCS ($)Но и в истории тикеров данной информации нет:TCSTCSG

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

UPD. В комментариях представители банка написали, что двойное списание осуществлено из-за технических проблем https://habr.com/ru/post/589865/comments/#comment_23875149

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

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

Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:

Как посмотреть пополнения в тинькофф инвестициях

Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.

Как посмотреть пополнения в тинькофф инвестициях

Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)

Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:

все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!

Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях

Итак, вот мы получили и разложили перед глазами все имеющиеся данные.

Теперь можно сделать из них выводы.

Новости по теме

Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях

Как посмотреть пополнения в тинькофф инвестициях

Структура программы

Я решил разбить проект на 3 модуля (файлика .py) и отдельный файлик .txt с данными аккаунта.

Модуль main.py – основной модуль программы, который мы запускаем. В нём создаются классы объектов, происходят вычисления и формируются объекты, заполняясь полученными данными. Парсит только курсы валют по разным датам с API ЦБ РФ.

Как посмотреть пополнения в тинькофф инвестициях

Модуль data_parser.py – содержет всего две функции, первая парсит данные аккаунта из текстового файла, а вторая из Тинькофф Инвестиций и больше программа к этому не возвращается.

Как посмотреть пополнения в тинькофф инвестициях

Модуль excel_builder.py – большой модуль, который ничего не считает, только берёт данные из main.py и строит огромную красивую таблицу.

Читайте также:  Архитектурные и конструктивные решения крытых стадионов

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

Пример для Windows:

Знакомство с API

Находим официальную страницу Open API от Тинькофф:

На странице предлагаются SDK: Java, C#, Go, NodeJS.

Ничего из того, что я умею. В основном, я делал DIY проекты на Arduino-подобных контроллерах с WiFi, проектировал и заказывал для своих электронных устройств печатные платы, делал небольшие одностраничные WEB-интерфейсы и телеграм-боты для взаимодействия с этими устройствами. Т.е., в основном я работал с железом и писал прошивки на Arduino Wiring (на основе C++).

Из представленного списка мне больше всего импонировал Python, я писал на нём что-то на уровне print(‘Hello World’) и давно хотел познакомиться поглубже. Поэтому, я решил, что буду делать проект с Тинькофф API на Python.

Для начала я нашёл статью на Хабре.

И видео от профессионального разработчика.

Это сильно помогло мне продвинуться на начальном этапе: понять, как получать данные с API.

Если коротко, работает это так:

Открываем редактор кода, например Idle, импортируем установленную библиотеку:

Создаём объект для дальнейшей работы с API:

В my_token выше подставлем свой API key, который получаем в личном кабинете брокера.

Я не стал пробовать в демо-счёте, сразу указал API своего реального портфеля.

Создаём объект с позициями портфеля:

positions = client.get_portfolio() Это сложный массив, который содержит информацию по каждой бумаге.

Создаём объект с операциями. Здесь указывается дата начала инвестирования и текущая дата в определённом формате.

Получаем рыночные курсы валют (понадобятся для дальнейших расчётов):

course_usd = client.get_market_orderbook(figi=’BBG0013HGFT4′, depth=20

course_eur = client.get_market_orderbook(figi=’BBG0013HJJ31′, depth=20)

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

currencies = client.get_portfolio_currencies()

Данные можно выводить сразу же через print, например:

for pos in positions.payload.positions:

Но наша цель – это Excel таблица. Для её формирования я выбрал библиотеку XlsxWriter:

Файлик с excel появляется в папке с программной. Если файл с таким названием уже есть в папке – он перезапишется. Поэтому, я сделал, чтобы в названии файла была текущая дата, так удобно потом сравнивать отчёты за разные дни / месяцы:

ecxelFileName = ‘tinkoffReport_’ + today + ‘.xlsx’

workbook = xlsxwriter.Workbook(ecxelFileName)

worksheet = workbook.add_worksheet()

Так, на этом этапе, у меня получилась небольшая программка, создающая таблицу с базовой информацией по бумагам, получаемой по API, а именно:

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

Из имеющихся данных простой арифметикой высчитывались: текущая рыночная цена одного лота и суммарная стоимость всей позиции.

Писалось всё в Idle, выглядело как-то так: (НЕ ПОВТОРЯТЬ!)

Как посмотреть пополнения в тинькофф инвестициях

Подглядывая в проекты других разработчиков на Python, я тогда ещё мало что понимал, но было очевидным, что их проекты пишутся совсем по-другому, и мне придётся менять структуру в корне.

Я решил переписать всё заново, как положено, и в более удобной среде разработки.

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

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

Как посмотреть пополнения в тинькофф инвестициях

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

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

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

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

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

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

Немного внутренностейВсе запросы и параметры хранятся в БД. Получился достаточно удобный конструктор таблиц и прочих методовУправление таблицами в БДМеню

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

Заключение

Осталась неподсчитанной эффективность вложений. Мы знаем точный период инвестирования, знаем профит. Однако, сложность в том, что вложенные средства не были зачислены разово, а поступали на счёт периодически, разными суммами, а иногда выводились. Для расчёта эффективности инвестирования нужно что-то вроде формулы XIRR в Excel, но я пока не сообразил, как вкрутить её в эту программу. Если у вас есть идеи на этот счёт – поделитесь, пожалуйста.

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

Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.

Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.

А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.

Как посмотреть пополнения в тинькофф инвестициях

Проект опубликован на GitHub

В планах сделать оконную версию программы с интерфейсом в виде приложения .exe для тех, кто не хочет возиться с установкой Python на свою машину, и при этом ещё не боится вводить данные своего аккаунта в приложение неизвестного разработчика (я бы, наверно, не рискнул).

Это мой первый проект на Python и первая публикация на Хабре.

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

Итог

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

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

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

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

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

Хватает ли вам аналитики, предоставляемой брокером?

Проголосовали 105 пользователей.

Воздержались 25 пользователей.

Используете ли вы сторонние средства для анализа портфеля?

Использую бесплатные инструменты

Использую платные инструменты

Использую свои способы / Веду дневник сделок / Прочее

Проголосовал 91 пользователь.

Воздержались 27 пользователей.

Оцените статью