Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через API в большую таблицу Excel

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

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

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

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

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

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

  • Каким образом была посчитана эта зелёная сумма и 12,21%? Причём, несколько дней назад у меня было что-то около +17%, потом я зафиксировал одну бумагу с профитом, стоимость портфеля почти не изменилась, а вот этот зелёный "общий процент" сразу упал до 12,21.

  • За всё время - это за несколько лет инвестиций? Ещё есть опция: за сегодня. А какой процент у меня, например, за год?

  • Мой портфель почти полностью в иностранных бумагах и USD. Каким образом это было переведено в рубли: по курсу ЦБ или по рынку?

  • Сколько от этой суммы у меня реально останется после уплаты налогов и комиссий, если я продам весь портфель и выведу деньги?

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

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

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

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

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

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

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

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

  • Разобраться, как вычисляются значения, отображаемые в мобильном приложении

  • Выяснить реальные показатели эффективности портфеля

  • Узнать общие суммы налога и комиссий, которые я уплатил за всё время

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

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

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

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

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

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

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

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

https://tinkoffcreditsystems.github.io/invest-openapi/

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

Приведены и неофициальные: Python @daxartio,Python @Awethon, Python @Fatal1ty, PHP, Ruby.

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

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

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

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

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

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

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

import tinvest

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

client = tinvest.SyncClient(account_data['my_token'])

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

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

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

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

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

operations = client.get_operations(from_=account_data['start_date'], to=account_data['now_date'])

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

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:

print('name:', pos.name)

print('ticker:', pos.ticker)

print('balance:', pos.balance)

print('currency:', pos.average_position_price.currency)

print('price:', pos.average_position_price.value)

print(' ')

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

https://xlsxwriter.readthedocs.io/

import xlsxwriter

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

ecxelFileName = 'tinkoffReport_' + today + '.xlsx'

workbook = xlsxwriter.Workbook(ecxelFileName)

worksheet = workbook.add_worksheet()

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

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

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

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

НЕ ПОВТОРЯТЬ
НЕ ПОВТОРЯТЬ

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

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

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

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

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

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

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

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

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

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

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

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

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

Структура таблицы

- Позиции

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

Параметры (базовые, из 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 руб. - такой налог будет удержан, если я продам весь портфель сейчас.

- Операции

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

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

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

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

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

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

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

- Аналитика

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

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 руб. Не знаю, насколько это здесь существенно.

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

Заключение

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

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

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

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

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

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

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

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

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

Средняя зарплата в IT

120 000 ₽/мес.
Средняя зарплата по всем IT-специализациям на основании 7 859 анкет, за 1-ое пол. 2021 года Узнать свою зарплату
Реклама
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее

Комментарии 104

    +2
    Всё работает. Потестил на себе. У меня Profit практически сошелся с тиньковским «доход за все время» (Может потому, что сейчас сижу в глубоких минусах).

    Я слишком в код не всматривался (только на предмет бэкдоров ;)) поэтому вопрос, вы корректно обсчитываете сценарии в которых в рассчетный период осуществлялся вывод средств? Я выводил и когда был в плюсах и когда в минусах. Последний раз когда выводил платил удержку в 50% с суммы вывода, мне аж икалось.
      +5

      платил удержку в 50%

      Имеется ввиду удержанный налог? В таком случае попробуйте выводить меньшую сумму. Если брокер при выводе не может удержать весь налог, он будет удерживать только 13% от суммы вывода.

      Пример:

      Ваш профит 100000, налог 13000.

      Вы пытаетесь вывести 15000, брокер удержит 13000, вам на счёт поступит 2000

      Если вывести 10000, то, т.к. брокер не может удержать 13000, он удержит только 1300 (13% от 10000), на счёт поступит 8700. Оставшиеся 5000 можно вывести следующей транзакцией, с которых удержится только 650.

      Оставшийся налог 13000-1300-650=11050 вы заплатите в конце года, либо уже при следующих выводах.

        +2
        Да, всё верно пишете. Мне интересно считает ли это правильно программа (то что я в начале года уже успел уплатить при выводе большую часть налога)
          0
          11050 же мы вывели. Почему это оставшийся налог?
        0
        Подскажите, а с ИИС есть возможность получить информацию? А то просмотрев весьма скудную документацию по API от Тинькофф не нашел там ничего… хотя может не туда смотрел :)
          0

          В большинстве запросов к API можно выбрать счёт.

          Id cчета можно получить запросом GET /user/accounts (https://tinkoffcreditsystems.github.io/invest-openapi/swagger-ui/)

          UPD. У автора в настройках вроде такого варианта не увидел. По умолчанию Тинькофф берёт обычный счёт, не ИИС.

            0

            Код автора никак не изменить, чтобы инфу по ИИС такую же получить? Или это уже дело в библиотеке tinvest?

              0
              В API есть метод /user/accounts, который возвращает два счета (Tinkoff и TinkoffIis (если есть)). Для получения данных по ИИС при запросе портфеля или операций надо подставлять в поле brokerAccountId = TinkoffIis. В этом случае вы будете получать бумаги и сделки именно по ИИС счету.
            0
            Можно увидеть ИИС, но нужно проявить немного фантазии.
            Сначала нужно получить Id-ы своих счетов

            # Список счетов
            client.user.user_accounts_get()

            Ответ:
            {'payload': {'accounts': [{'broker_account_id': '2000270000',
                                       'broker_account_type': 'Tinkoff'},
                                      {'broker_account_id': '2000490000',
                                       'broker_account_type': 'TinkoffIis'}]},
             'status': 'Ok',
             'tracking_id': '04b94f70499c4630'}


            Затем, запрашиваем операции по счету с типом TinkoffIis (указываем broker_account_id='2000490000') и получаем то что нужно
            d2 = datetime.now(tz=timezone('Europe/Moscow'))
            d1 = d2 - timedelta(days=5000)
            ops = client.operations.operations_get(_from=d1.isoformat(), to=d2.isoformat(), broker_account_id='2000490000')
              +4
              В API есть метод /user/accounts, который возвращает два счета (Tinkoff и TinkoffIis (если есть)). Для получения данных по ИИС при запросе портфеля или операций надо подставлять в поле brokerAccountId = TinkoffIis. В этом случае вы будете получать бумаги и сделки именно по ИИС счету.
              0
              В планах сделать оконную версию программы с интерфейсом в виде приложения .exe
              Стоит еще попробовать оформить в виде интерактивного Jupyter notebook. Заодно попрактиковаться в Data Analysis and Visualization with Python и может в итоге отложить Excel на полку подальше
                0
                С налогами вы, кажется, не учитываете инвест. вычет. Его размер зависит от срока владения ЦБ и порой может полностью перекрыть фин. рез.
                  0
                  Инвестиционный вычет применяется для ИИС (нельзя в течение 3 лет закрывать). Автор упомянул, что он использует не ИИС. Но Вы всегда можете доработать скрипт и сделать PR ;)
                    0
                    Есть и другие вычеты, в том числе на владение ценной бумагой… Т.е. если у тебя есть акции и ты держишь их более трех лет, то можно не платить НДФЛ на прибыль от их продажи, но там тоже свои нюансы…
                    +1
                    есть еще лдв
                  +3
                  Eсли я продам весь портфель и выведу деньги

                  А почему вы не считаете 2% комиссии вывода с карты Tinkoff Black? Вся эта история с Тинькофф работает до тех пор, пока вам не понадобится кэш, а когда понадобится — вам предстоит либо почти год выводить по лимиту карты 500к в месяц, либо платить еще 2% комиссии. А с 8 млн. это еще +160к комиссии. Такая себе история с этим Тинькофф.

                  Ну и второй вопрос. Вы же в курсе, что владельцем всех валютных активов является сам Тинькофф, и в случае банкротства/отзыва лицензии последнего, вы вряд ли что получите, весь в зарубежных депозитариях по всем акциям владелец — Тинькофф?
                    +3
                    Вообще, есть вариант снять через другой банк, а туда перевести себе на счёт…
                    Но интереснее другое — зачем выводить с карты наличку, тем более 8млн?
                      +2

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

                      А откуда такая информация, скажите, пожалуйста?

                        0

                        @tinkoff_bank, думаю, может дать комментарий без проблем

                          +1

                          Спасибо. Как раз этот вопрос я уточнял у поддержки Тинькова и у людей которые там работают.

                          Записи о том, что вы владеете ценными бумагами, хранятся на специальном депозитарном счете.

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

                          Выписку по ценным бумагам можно получить в электронном виде. Для этого заполните заявление и отправьте его через чат в личном кабинете на сайте Tinkoff.ru или в приложении Тинькофф Инвестиций. Выписка будет готова в течение 5 рабочих дней.

                          Вот ответ от службы поддержки. И отсюда же мой вопрос про источник информации у @Amoled. В принципе, не отказался бы и от комментария @tinkoff_bank.

                            0
                            В поддержке все правильно описали :)

                            Дополним только, что в целом ситуация банкротства брокера регламентируется ЦБ. Ценные бумаги переводятся в другой депозитарий, деньги выводятся.
                              0
                              А бумаги, на момент банкротства взятые брокером у клиента в РЕПО?
                                0
                                Как выше написали, ситуация регламентируется ЦБ. Все ваши бумаги перенесут к другому брокеру. Не смотря на то, что бумаги в РЕПО, вы все еще являетесь владельцем этих бумаг и они должны быть возвращены вам.
                                +1

                                Добавлю пару ссылок:

                                1. Функции депозитария для счетов в Тинькофф.Инвестициях выполняет сам Тинькофф, соответствующую лицензию можно посмотреть на https://www.tinkoff.ru/about/documents/disclosure/

                                2.
                                http://www.consultant.ru/document/cons_doc_LAW_39331/fcbc20b808b1f64ec8800e97f858bb3b2e117381/
                                ФЗ "О несостоятельности (банкротстве)" ст.185.6 п.1

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

                                  0
                                  А что будет с фондами от Tinkoff в таком случае?
                            +1
                            При премиальной подписке (а она бесплатная при суммарном балансе на инвестиционном и других счетах больше 3кк) с заменой Tinkoff Black на Tinkoff Black Metal можно выводить до 100 000 000 без комиссии (почему-то на сайте написано про отсутствие лимита, но в приложении я его четко вижу). www.tinkoff.ru/cards/debit-cards/tinkoff-black/black-edition/tariffs
                            А перевод на другой счет так и на обычном тарифе без комиссии.
                              +1
                              Можно перевести в другой банк, при этом в отличие от многих других банков, Тинькоф не берет за это вообще никакой комиссии.
                              То есть выводим с Тинька в какой-нибудь условный Сбер или Альфу (смотря чья карта есть) и дальше уже в их отделениях забираем наличные.

                              Касательно факта владения бумагами — насколько мне известно, любые активы которые я покупаю с помощью Тинькоф Инвестиций как раз-таки записываются на мое имя. Я делал выписку о списке депозитарных счетов на мое имя и там есть все активы, как валютные, так и рублевые
                                0
                                Можно перевести в другой банк, при этом в отличие от многих других банков, Тинькоф не берет за это вообще никакой комиссии.

                                В другом банке может быть комиссия за снятие, если снимать раньше какого-то периода после перевода
                                0

                                Может быть полезным уточнением, но межбанк у них бесплатный, сталкивался при оформлении ипотеки в другом банке. И на пользование СБП лимитов не было, только при переводе свыше 1 млн в день (час?) идентификатор сбрасывался на 20 минут

                                +19
                                Здравствуйте!

                                Доходность на сервисе считаем по разным показателям. Постараемся ответить по пунктам.

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

                                Доходность «за все время» — показывает доходность портфеля по всем открытым позициям. Считается она путем суммирования доходностей по всем позициям в портфеле. Если вам нужно посмотреть доходность за какой-то определенный период, нужно перейти в раздел «Портфельная аналитика». Там по периодам все подробно расписано.

                                Если в портфеле есть актив в валюте, приводим его к рублю по биржевому курсу валюты (Last Price). Пополнение и выводы в валюте влияют на доходность валюты в портфеле. В свою очередь валюта также влияет на показатели доходности всего портфеля.

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

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

                                Стоимость портфеля в Пульсе обновляется один раз в день к началу торгов. На странице профиля доходность отображается за 365 дней от текущей даты, не за календарный год. Подробнее о том, как считаем доходность в пульсе описали в нашей базе знаний — help.tinkoff.ru/pulse/profile/yield.
                                  0
                                  Приятно, что отвечаете!
                                  А когда всегда введете объемы на графиках? Обещали уже давно?
                                    0
                                    Пока объемы есть в терминале. В будущем добавим в приложении, уже работаем над этим :)
                                    0
                                    Автор написал
                                    Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.

                                    По сути он реализовал паттерн учёта LIFO (последний пришёл — первый ушёл), а в Тинькофф рассчитывается по FIFO (Первым пришёл — первым ушёл). Из за чего при усреднении, а после частичной фиксации позиции показатели доходности в портфеле тинька показывают не верные данные с точки зрения пользователя (и меня :D)
                                    Вот допустим купили 1 акцию X за 100$, после цена упала до 90$. В портфеле над позицией будет гореть красным шрифтом -10$ (-10%). Хорошо, пока что всё верно. Решаем докупиться по этой цене и у нас теперь 2 акции X, средняя цена покупки (100+90)/2=95$, теперь в портфеле горит красным -5$ (-5.3%).
                                    После падения акция начинает расти и допустим цена вырастает до 93$. Мы помним что купили 1 акцию по 90$ (и история сделок помнит) и решаем сейчас зафиксировать профит в 3$ и продаём 1 акцию.
                                    Ба бах! После этого пользователь смотрит в портфель в приложении и не понимает, потому что теперь там горит зелёным +3$ (+3.2%). А всё потому что тинькофф считает что мы сейчас продали не акцию за 90, а акцию за 100, то есть продали себе в минус. И в портфеле осталась 1 акция X, со средней стоимостью покупки 90$
                                    После этого начал считать всё сам, а после постоянных сбоев в тинькофф инвестиции ушёл на ВТБ (не реклама, там тоже считается не по LIFO, просто там реже сбои)
                                      0
                                      Вроде, все брокеры традиционно считают по принципу fifo.
                                        0
                                        А с какого перепуга в поле действия НК РФ должно считаться не по FIFO?)
                                          0
                                          автор как раз FIFO и реализовал. Ну а для собственных нужд кстати учет можно вести любым методом, он не обязан с налоговым совпадать.
                                        +1
                                        Возможно я упустил этот момент: а учитывается срок владения активом при учет налога? Насколько я помню, при владении больше 3/5 лет не уплачивается налог на прибыль. Поправьте пожалуйста, если ошибаюсь.
                                          +2

                                          Более 5 лет. Также есть другие варианты применения нулевой ставки (гарант):


                                          • Акции были приобретены до 2011 года, при этом не более половины объектов собственности эмитента акций зарегистрированы в иностранных государствах.
                                          • Акции выпущены организацией, представляющей высокотехнологичный производящий сектор экономики. При этом срок владения такой акцией составляет не менее 1 года и 1 дня.

                                          Ну и много других вариантов описаны в статьях 284.* НК РФ

                                            0
                                            Это понятно. Я просто не совсем понял — вот в этих расчетах выше этот момент как-то учитывается? Вот что меня интересовало изначально.
                                              0
                                              нет
                                            +1
                                            Финансовый результат по бумагам, которыми вы владели 3 года и более налогом не облагается. Соответственно, при продаже такого актива автоматически этот момент учитываем.
                                              0
                                              О, а пока есть такая возможность — подскажите как будет рассчитан налог с учетом валюты?
                                              Ситуация — я покупаю акцию по цене 50 долларов. Доллар стоит 50 рублей. Проходит 3 года — стоимость акции вырастает до 60 долларов, доллар вырастает до 60 рублей. Все цены условны.
                                              Изначально в рублях эта акция стоила 2500р. Сейчас она стоит 3600р. Из них 500р то сам прирост акции, а 600р это рост стоимости доллара. Или наоборот, тут уже сложная математика для меня пока что.
                                              Вопрос: должен ли я что-то заплатить в качестве налога? Или весь прирост независимо от источника не будет облагаться налогом?
                                                0
                                                заплатишь 13% с 1100 рублей
                                                  0

                                                  Три года же прошло. Так что налог платить не нужно

                                                0
                                                Было бы здорово иметь способ разделять акции в долгосрок с 3 года и более, от активов для среднерочных спекуляций, т.е. те которые покупались с намерением продать когда вырастет, а не для накоплений.
                                                  +1
                                                  Фактически — иметь два брокерских счета.
                                                  tinkoff_bank кстати, почему так нельзя?

                                                  А, да. Еще при переходе в инвестиции он почему-то предлагает мне «собрать портфель», хотя у меня уже там давно активов на много денег.
                                                    0
                                                    Ну или два счета. С возможностью просто перебрасывать активы.
                                                      0
                                                      Возможность перебрасывать будет давать тот же эффект, что и продажа в плане учета.
                                                    0
                                                +1
                                                Посаны! Есть такие у кого на главном экране «минус»?
                                                0
                                                О с тиньком много вопросов, я вот прям никак не могу понять как, при доходе в 1М с меня удержали налогов в 250К? Получил расширенный отчет, вроде по каждой позиции все верно, но результат все равно очень подозрителен. Думал тоже написать скрипт проверить их расчеты, кажется в них собачатина порылась знатно. Но руки дошли только написать скрипт который считает налоговую базу по операциям с валютой. Так как тиньку сделать отчет по валюте видимо религия не позволяет!
                                                Может его тоже выложить в паблик, может кому то пригодиться.
                                                  0
                                                  как, при доходе в 1М с меня удержали налогов в 250К?
                                                  Налог удерживается с прибыли, но не возвращается при убытках. То есть например вы продали акций газпрома с прибылью 2 млн, и заплатили с них налог 260 т.р., и затем продали акций лукойла с убытком 1 млн, и заплатили 0 рублей налога, итого ваша общая прибыль 1 млн, а налога уплачено 260 т.р.
                                                    +1

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

                                                    Если сделки из вашего примера закрыты в один год, то не будет 260 налога, будет 130.

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

                                                      0
                                                      Да, похоже вы правы, налог же снимается в конце года, а не после операции.
                                                        +1

                                                        Налог так же снимается при выводе в кэш

                                                        0
                                                        Увы сумма налога уже зафиксированна, все деньги выведены, налоги удержаны.
                                                        Там вся радость в расчетах, за акции в долларах, я же говорю что если мотреть по сделкам то все выглядит корректно, а если взять общий профит и сумму налогов то получается больше. Думаю я все же доберусь до анализа всех сделок и пойму где собака порылась.
                                                          0
                                                          В налогах сальдируются (учитываются расходы по одинаковым категориям) операции с бумагами и пфи раздельно
                                                          Возможно, в вашем случае, например IPO-шки принесли 2 ляма, а торговля на акциях условного яндекса убыток в лям
                                                          Тк это разные категории — убыток снизит налог только по успешным торговлям с акциями
                                                          Итого с айпио вы платите 260, общий доход всего лям, и в следующем году 130тысяч убытка сможете зачесть в успешную торговлю акциями яндекса

                                                          Я для фридома с налогами ковырялся, если много отчетов от тинькова будет, смогу и его считать. Вот мой бот для фридома: t.me/Nalogusbot
                                                    0
                                                    Ого. 8млн рублей держать у одного брокера… сильно.
                                                      0

                                                      А в чем риск?

                                                        0

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

                                                          0
                                                          Подтверждаю коммент выше. Технические неполадки брокера в самый неподходящий момент — вот риск.
                                                          Конкретно у меня были проблемы с продажей валюты в начале утренней сессии через одного желтого брокера с полгода назад (заявки тупо не проходили). Также были неприятности с тем, что однажды не смог выйти из компании Phizer, когда пошли негативные новости ну и получил убыток. Желтый брокек/банк в этот момент решил провести плановые работы. Теоретически можно не успет купить актив по самой привлекательной цене изза таких вот моментов.
                                                            +2

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

                                                              0
                                                              тут нужно разделять, получаешь ты ЗП в рублях или в баксах)) выгоднее всего продавать доллары на бирже
                                                                0
                                                                покупать тоже…
                                                                  0
                                                                  Нажал тут случайно «пополнить счёт» в терминале, не увидел что выбрался евро счёт (не используемый ранее), а не рублевой как обычно, в итоге покупка прошла при +3% от биржевой цены. Вот тебе и биржа, я в шоке. Даже по рыночной заявке и то не было бы такой дикой накрутки.
                                                                  Похоже в тот день тиньков решил постричь лосей на невнимательности, поменял порядок валют в выпадающем списке на пополнение, обычно там рубли всегда были первыми.
                                                              0
                                                              Увы, никто не застрахован от технических неполадок. Согласно декларации о рисках, которая указана в нашем Регламенте, инвестор соглашается с рисками, уведомлен о них, и ответственность за риски берет на себя. При этом, мы всегда стараемся решить проблему максимально быстро и идем навстречу клиенту, когда есть возможность.
                                                            +4

                                                            Я думаю это зависит от того, какой общий объем сбережений. Если сто мультов, почему бы 8 не хранить у одного из брокеров?

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


                                                            pip install xirr


                                                            Делал себе расчет доходности за прошлый год в начале этого года. Берем все операции ввода-вывод на счет:

                                                            notTradingOperations = list(filter(lambda item: 
                                                            (item.operation_type==tinvest.OperationTypeWithCommission.pay_out or 
                                                            item.operation_type==tinvest.OperationTypeWithCommission.pay_in) and 
                                                            item.status == tinvest.OperationStatus.done, operations.operations))


                                                            Делаем dictionary с парами Дата — Сумма. По хорошему надо еще учитывать курс для валютных операций, я для простоты взял средний 75:

                                                            valuesPerDate = { datetime.fromisoformat(item.date[:10]):
                                                             item.payment if item.currency == tinvest.Currency.rub else 
                                                            item.payment * 75 for item in notTradingOperations }


                                                            Добавляем пары: дату начала и остаток на эту дату, дату конца и остаток на эту дату. Передаем функции xirr, которая показывает нам доходность

                                                            xirr(valuesPerDate)
                                                              0
                                                              softandiron Будьте аккуратны с различными реестрами, получаемыми через API. Я себе собирал через PowerQuery в Excel напрямую, так вот в списке всех операций отсутствовали некоторые удержания налогов, суммой тысяч на 10-15 рублей. Писал в поддержку, побаландали мой запрос и забили, ничего не решив. Не думал, на самом деле, что по API может что-то не отдавать, но вот так…

                                                              Советую делать периодический чек с налоговым отчетом, выгружаемым из ЛК — на всякий)
                                                                0
                                                                Боже, дружище, огромное спасибо за твои старания! Задавался ровно теми же вопросами и не понимал, какого чёрта в трёх местах разные цифры, а поддержка толком разъяснить не могла.image
                                                                  –2
                                                                  «Увожение» — шикарная безграмотность.
                                                                  Первая мысль что-то «унавожено» :)))
                                                                    +1

                                                                    Это мем. По смыслу, кстати, противоположный тому, что хотел сказать @EgoPingvina

                                                                      +2
                                                                      Не знал. Мемов тысячи насочиняли.
                                                                      Почитал про этот, занятно. Получается мем надо употреблять когда вроде и уважаешь, но с сильным сарказмом. Дурдом! Немудрено что автор перепутал.
                                                                      Блин, лучше словами…
                                                                        0
                                                                        Всегда воспринимал его в прямом смысле, только с оттенком иронии.
                                                                        Противоположно его, по-моему, мало кто воспринимает.
                                                                    0

                                                                    Просто. Оставлю. Это. Здесь.

                                                                      0
                                                                      А напишите нам на [email protected] ваши ФИО и дату рождения, приложив скрин. Проверим, в чем дело.
                                                                      0
                                                                      В процессе чтения бумаг, на одной их бумаг выдает ошибку, с чем может быть связано?
                                                                        0
                                                                        А какая именно бумага и как она у вас появилась?
                                                                        У меня была ошибка в день появления бумаги на бирже после IPO.
                                                                        Ещё может быть ошибка, если бумага торгуется в валюте, отличной от USD и EUR.
                                                                        Кстати, у меня в портфеле не оказалось бумаг, номинированных в EUR, поэтому с ними программа не тестировалась. По коду всё писал так же, как для USD, но мог где-то проглядеть.

                                                                        UPD: Пользователи на GitHub заметили ошибку «деление на 0», которая появляется, если бумага досталась вам по нулевой цене.
                                                                        Обязательно исправлю в будущей версии.
                                                                          0
                                                                          Да спасибо, ошибка именно в делении на 0, хотя не знаю как так вышло вроде все бумаги я покупал
                                                                        0
                                                                        Спасибо большое за такое отличное исследование! У меня тоже всегда вызывали вопросы цифры от Тинькоффа, почему везде статистика разная. Надо будет попробовать все просчитать вашим скриптом.
                                                                          +1
                                                                          А в чем профит отказа от формы W8BEN?
                                                                            0

                                                                            Некоторые думают, что из-за этого не придётся подавать декларацию на дивиденды, а на самом деле при первой же камералке вам придётся выплатить налог по полной программе и в России и в США

                                                                            +1

                                                                            Мне попадалась информация, что апи Тинькова не отдает данные по премиумным бумагам. Сейчас это актуально или уже поправили?

                                                                              0
                                                                              Еще вариант. Загрузить excel-отчеты брокера на intelinvest.ru и сравнить расчеты баланса.
                                                                                +3
                                                                                Если есть идеи по исправлению

                                                                                При вычислениях (в том числе сложении и умножении) с валютой всегда оперируйте целочисленными значениями «копеек», а не дробными значениями «рублей». При необходимости вывода в дробном виде — делите на сто непосредственно перед выводом.

                                                                                Почему: docs.python.org/3/tutorial/floatingpoint.html
                                                                                  0

                                                                                  Нет. Есть инструменты с шагом значительно меньше копейки, тот же VTBR. К счастью, есть Decimal. tinvest, кстати, их и возвращает.

                                                                                    0
                                                                                    Признаю ошибочность формулировки — хотел поправить, но было поздно.
                                                                                    Ваше «используйте инструменты подходящие необходимой вам точности» будет уместнее.
                                                                                    Мой совет скорее относительно работы с деньгами для «общего случая».

                                                                                    К счастью, есть Decimal. tinvest, кстати, их и возвращает.

                                                                                    Уж больно разница в 0,0077% смахивает на обозначенную мной проблему хранения float'ов.
                                                                                    Если tinvest возвращает decimal, какая тогда ошибка может дать разницу в десятитысячные доли процента в данной ситуации?
                                                                                    Если я правильно понимаю — кроме сложения и умножения там и нет ничего.
                                                                                  +1
                                                                                  даже не для первого раза очень даже неплохо!
                                                                                  задумался о брокерском счете)
                                                                                    0
                                                                                    Пытаюсь дополнить проект автора, чтобы получать информацию по ИИС.
                                                                                    В файле data_parser.py в функции get_api_data прописываем строку print(client.get_accounts()) после строки print("- authorisation success")
                                                                                    image
                                                                                    Затем запускаем main.py и потом можно нажать ctrl+c, чтобы остановить выполнение после получения нужных данных, а именно:
                                                                                    image
                                                                                    Нам нужен broker_account_id от TinkoffIis, записываем его просто в код, а добавленную строчку удаляем:
                                                                                    image
                                                                                    Можно записать также и id от брокерского, чтобы потом было проще менять в параметрах, пометив в комментарии, где иис, а где брокерский, после оставляя раскомменченным тот, который нужно запустить:
                                                                                    image
                                                                                    Теперь добавляем новый параметр в строку operations = client.get_operations(from_=account_data['start_date'], to=account_data['now_date']):
                                                                                    image
                                                                                    И все, запускаем вновь main.py

                                                                                    Вроде работает, получает другое количество операций:
                                                                                    image
                                                                                    image
                                                                                    но почему-то валится на том, что item_list из метода calculate_ave_buy_price_rub в файле main.py — пустой, соответственно деление на ноль и вылет (выводил этот список перед этим, пустой):
                                                                                    image
                                                                                    а с брокерским счетом все нормально (т.е. если в параметрах указать id брокерского):
                                                                                    image
                                                                                    Вот пока не пойму, с чем это связано и как можно исправить, если можно
                                                                                      0

                                                                                      Почему-то не могу изменить ответ. Автор исправил уже вчера ошибку с нулем, все работает, только 1 момент - добавлять новый параметр надо в 3 строки, а не только в одну:

                                                                                      –1
                                                                                      Главная проблема Python API тинькоф инвестиций в том, что его нет.
                                                                                      Как нет, если вот человек пользуется?
                                                                                      А вот так: нет официального Python API — т.е. как только вы написали программу на стороннем API и ввели туда ваш код для доступа к счёту — сохранность ваших средств никто не гарантирует.
                                                                                      Бесит это.
                                                                                      А у тех API, которые сейчас существуют — очень плохо с документацией — нету даже тупо описания всех функций с примерами кода. И это при том, что о разработке API заявили 3 года назад — до сих пор всё осталось на уровне ВУЗовской самодеятельности, а не нормального API.
                                                                                        +2
                                                                                        В репозитории сделай ссылку на статью эту, так ее будут находить и разбираться че почем.
                                                                                          0
                                                                                          Сделал, в файле README.md
                                                                                          0
                                                                                          Отличная статья. Только десктопное приложение я бы не рекомендовал делать. Лучше выгружать в гугл докс и рисовать дашборды на datastudio.google.com
                                                                                            0

                                                                                            Статья не совсем соответствует заголовку. Что же в итоге "скрывает" API и почему не сошлись цифры?

                                                                                              0
                                                                                              а с intelinvest не сравнивали? когда понял, что брокер лицо заинтересованное, перестал смотреть их отчёты.
                                                                                                0
                                                                                                На первый раз неплохо. Что странно:
                                                                                                1) Подсчет налогов например акций TCS — ave.buy in RUB стоит 0 руб, и tax base почему то посчитался не на exp.yield, а на всю сумму market value

                                                                                                2) Немного поправил формат даты файла и настроил отправку ежедневного отчета себе же в Телеграм в определенное время.
                                                                                                  0
                                                                                                  Выплаченный налог считает как-то неправильно.
                                                                                                  Taxes payed — 141,00 ₽

                                                                                                  Сам тинькофф в своём Excel говорит:
                                                                                                  Налогооблагаемая база 3 088,28
                                                                                                  Налоговая ставка, % 13
                                                                                                  Налог к удержанию 401
                                                                                                  Удержанный налог 252
                                                                                                  Задолженность по налогу 149
                                                                                                    0
                                                                                                    Здорово, я как-то тоже исследовал api Тинькофф, чтобы разобраться с доходностью.
                                                                                                    Выяснял, какие бумаги мне принесли доход/убыток когда-либо, сколько съели шорты Telsa (а казалось, что я в плюс наторговал :)) и т.д.

                                                                                                    Отчет брокера меня пугал настолько, что было проще самому все распарсить, затолкать в базу, и получить табличку вида:

                                                                                                    *скрин старый под рукой

                                                                                                    tinkoff_bank не планируется добавить какую-нибудь настраиваемую группировку/сортировку/фильтрацию по своему портфелю? А то очень не удобно ориентировать в своем же портфеле
                                                                                                      0
                                                                                                      Пока не планировали. Но подумаем в этом направлении в будущем, чтобы сделать приложение еще удобнее. Спасибо за фидбэк!
                                                                                                      0
                                                                                                      Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку

                                                                                                      Можно еще исторические данные сохранить в БД SQLite и читать оттуда, чтобы сократить время формирования, и не ддосить api
                                                                                                      А отсутствующие данные получать и добавлять в БД на будущее
                                                                                                        0
                                                                                                        При покупке валюты, даже если её не трогать, пишет expected tax со все суммы покупки. Хотя вроде должно с положительной разницы между текущей ценой и ценой покупки.

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

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

                                                                                                        Самое читаемое