The program for portfolio analysis via Tinkoff API
Hello! This is my first project, please, don't judge me. This project was developed for Tinkoff Investments' clients, like me, to gether accurate and full information about portfolio into Excel table.
Здравствуйте! Это мой первый проект, пожалуйста не судите строго. Этот проект был разработан для клиентов Тинькофф Инвестиций, чтобы собирать подробную информацию об инвестиционном портфеле в таблицу Excel.
Статья на Хабре: https://habr.com/en/post/555884/
Для автоматического сбора информации используется Tinkoff API. Для этого вам нужно получить его в личном кабинете Тинькофф. Далее вам нужно отредактировать файлик my_account.txt следующим образом:
Ваш API ключ Год начала инвестирования Месяц начала инвестирования День начала инвестирования Программа будет собирать данные за указанный вами период. Для работы программы все файлики программы: main.py, excel_builder.py, data_parser.py, my_account.txt - должны находиться в одной папке. В этой же папке появится файлик Excel с результатом.
Для работы программы на вашем компьютере должен быть установлен Python 3.9.1
Запускается программа файликом main.py или через docker
:
docker build -t tinkproject .
docker run --rm -it -v $(pwd):/app tinkproject
Чтобы не печатать логи, при запуске через командную строку добавьте опцию -q или --quiet
Внимание: бумаги, полученные в подарок, например за приведённого друга, могут не выдаваться через API и в отчёте они тоже будут отсутсвовать. Таким образом, если есть подаренные бумаги, итоговый баланс портфеля будет отличаться от того, который в приложении Тинькофф. Бумаги, полученные в результате дробления или, возможно, каких-то других корпоративных событий, в отчёте могут частично отображаться нулевыми значениями.
Полученный отчёт включает слудующие разделы:
Текущий портфель <рыночные цены>
Market today rates: курсы валют по бирже
name - название актива
ticker - тикер
balance - количество бумаг в портфеле
currency - валюта, в которой бумага торгуется
ave.price - средняя цена покупки бумаги
exp.yield - ваша потенциальная выручка при полной продаже данного актива
market price - текущая рыночная стоимость одной бумаги данного актива
%change - процент изменения стоимости по сравнению со средней стоимостью покупки
market value - текущая рыночная стоимость всего актива
market value RUB - текущая рыночная стоимость всего актива в рублях по рыночному курсу соответсвующей валюты
ave.% - средний процент изменения стоимости всех бумаг
total value - общая рыночная стоимость всего портфеля в рублях
<перерасчёт по курсу ЦБ>
CB value RUB - стоимость актива в рублях по сегодняшнему курсу ЦБ
ave.buy in RUB - средняя цена покупки одной бумаги в рублях по курсу ЦБ на дату покупки
sum.buy in RUB - общая стоимость преобретения актива в пересчёте на рубли по курсу ЦБ на дату покупки
tax base - разница, облагаемая налогом
expected tax - предполагаемая сумма удерживаемого налога по ставке 13%, если актив будет продан сегодня
Списки всех операций Здесь всё стандартно, сами переведёте, если что Небольшой анализ Investing period - анализируемый период инвестирования, начниая с даты, которую вы указывали в текстовом файле PayIn-PayOut - сумма всех внесённых на счёт средств (в рублях по курсу ЦБ на дату внесения) минус сумма всех выводов средств. Commissions payed - сумма всех комиссий, удержанных брокером Taxes payed- сумма всех налогов, удержанных брокером Clean portfolio - рыночная стоимость всего портфеля за вычетом предполагаемой суммы налога, которая будет удержана (комиссия брокера не учетывается!) Profit - это Clean portfolio минус PayIn-PayOut XIRR - так называется формула Excel для расчёта эффективности инвестиций с учётом всех пополнений и выводов (irregular internal rate of return). Считается в процентах годовых.