- Описание проблемы
- — аналитика
- — операции
- — позиции
- Достоинства тинькофф инвестиции
- Знакомство с api
- Знакомство с python
- Какие ценные бумаги купить: идеи по покупке акций, облигаций, биржевых фондов
- Недостатки тинькофф инвестиции
- Обучение в тинькофф инвестиции: в чем может быть подвох?
- Поиск решения
- Стоит ли инвестировать в 2022 году?
- Структура программы
- Таблица для учета инвестиций
- Таблица элементарных инвестиций от тинькофф (акция до 2000 р. в подарок)
- Заключение
- Отзывы о тинькофф инвестиции
Описание проблемы
Рассмотрю на примере своего портфеля (не ИИС) в мобильном приложении. (С даты публикации приложение может обновиться).
На главном экране видим ободряющие значения:
У меня здесь сразу возникают вопросы:
Каким образом была посчитана эта зелёная сумма и 12,21%? Причём, несколько дней назад у меня было что-то около 17%, потом я зафиксировал одну бумагу с профитом, стоимость портфеля почти не изменилась, а вот этот зелёный «общий процент» сразу упал до 12,21.
За всё время — это за несколько лет инвестиций? Ещё есть опция: за сегодня. А какой процент у меня, например, за год?
Мой портфель почти полностью в иностранных бумагах и USD. Каким образом это было переведено в рубли: по курсу ЦБ или по рынку?
Сколько от этой суммы у меня реально останется после уплаты налогов и комиссий, если я продам весь портфель и выведу деньги?
Заходим в раздел Портфельная аналитика, и находим там уже другие значения:
Почему на главной странице было 955 644, а здесь почти на 2 миллиона больше?
Кстати, здесь уже можно посмотреть результаты за год, приложение выводит сумму, но не процент.
Пока всё выглядит весьма оптимистично, открываю профиль в Пульсе.
Вот это результат! Посмотрим по-подробнее.
Здесь приведены результаты по месяцам. За 4 месяца текущего года 6,67%, а если посмотреть на 2020 год, там у меня 31,41%. Для сравнения, если не ошибаюсь, S&P 500 за 2020 год вырос на 16,26%. Не совсем понимаю, как я мог его так обогнать, если только дело не в курсовой разнице.
— аналитика
Я впихнул этот маленький раздел прямо под таблицей с позициями.
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 руб. Не знаю, насколько это здесь существенно.
В общем-то, это пока всё, что я сделал.
— операции
Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:
Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.
Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)
Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:
все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!
Итак, вот мы получили и разложили перед глазами все имеющиеся данные.
Теперь можно сделать из них выводы.
— позиции
В левой части таблицы выводится информация по текущему портфелю:
Параметры (базовые, из 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 руб. — такой налог будет удержан, если я продам весь портфель сейчас.
Достоинства тинькофф инвестиции
Для начала перечислим плюсы сотрудничества с платформой:
Знакомство с api
Находим официальную страницу Open API от Тинькофф:
Знакомство с python
В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.
С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).
Какие ценные бумаги купить: идеи по покупке акций, облигаций, биржевых фондов
Недостатки тинькофф инвестиции
В чем подвох бесплатных акций при использовании Тинькофф Инвестиции? Клиенту предлагается робот-советник Советник составляет диверсифицированный портфель ценных бумаг. Специалисты заявляют, что он плохо справляется со своими функциями.
К рекомендациям робоэдвайзора можно прислушиваться, однако как истину в последней инстанции их принимать не стоит.
Краткий обзор других минусов:
Обучение в тинькофф инвестиции: в чем может быть подвох?
Компания предлагает базовый образовательный курс для начинающих инвесторов. Программа бесплатна. Клиент получает первичную информацию:
Предлагается 10 уроков (длительность каждого – 10 минут). После заключительного теста успешным специалистом стать невозможно. Основные знания инвесторы получают на практике, набивая шишки на собственных ошибках.
Поиск решения
Чтобы внести больше ясности в процесс инвестирования, сделать этот процесс более осознанным, мне нужно:
Это особенно актуально в свете того, что портфель у меня, в основном, валютный, а налог считается в рублях относительно официального курса на день покупки актива. Поскольку я начал покупать бумаги несколько лет назад, когда USD был гораздо дешевле, налог при фиксации прибыли может оказаться огромным сюрпризом и съесть существенную часть отображаемой на главном экране суммы.
Есть вариант пытать персонального менеджера и службу поддержки, но переписка с ними бывает утомительна, и они не помогут с визуализацией данных. Лучше написать программное средство, чтобы формировать результат в удобной для меня форме и делать это автоматически.
Здесь на выручку приходит Tinkoff API — средство для разработчиков ПО, позволяющее взаимодействовать с Тинькофф Инвестициями автоматизированными средствами.
Проблема только в том, что я не программист и с банковскими API раньше не работал. Видимо, пришла пора попробовать.
Стоит ли инвестировать в 2022 году?
Подарок от Тинькофф Инвестиции – в чем же может быть здесь подвох? Любые кредитные организации требуют от своих клиентов активных действий. Если определенные условия не выполнены, то подаренные средства в какой-то момент сгорают. Уловки также касаются продажи презентных акций.
О выводе средств на карту можно не беспокоиться. Это можно сделать круглосуточно и в любой валюте.
Структура программы
Я решил разбить проект на 3 модуля (файлика .py) и отдельный файлик .txt с данными аккаунта.
Модуль main.py — основной модуль программы, который мы запускаем. В нём создаются классы объектов, происходят вычисления и формируются объекты, заполняясь полученными данными. Парсит только курсы валют по разным датам с API ЦБ РФ.
Модуль data_parser.py — содержет всего две функции, первая парсит данные аккаунта из текстового файла, а вторая из Тинькофф Инвестиций и больше программа к этому не возвращается.
Модуль excel_builder.py — большой модуль, который ничего не считает, только берёт данные из main.py и строит огромную красивую таблицу.
Таблица для учета инвестиций
В первые месяцы инвестирования — начало 2020 года — я просматривал разные сервисы по учёту инвестиций. Некоторые нравились, некоторые — не очень. Одновременно с этим я вёл учёт расходов семьи. И заметил, что довольно много небольших расходов в разных категориях. Добавлять ещё одну категорию — оплата сервиса учёта — совсем не хотелось. Вроде копейки, но на эти «копейки» можно купить какую-нибудь акцию. А за год — 12 акций. Если каждый год такие 12 акций будут приносить прибыль, то почему я должен тратить эту сумму на сделанные кем-то таблички?!
Несмотря на то, что я придерживаюсь долгосрочных инвестиций, в табличку заглядываю несколько раз в день — просто так. Как минимум по утрам я вношу данные по доходности (об этом будет ниже), а в середине дня просто смотрю на цифры.
Разобью функции по вкладкам.
Портфель. У меня открыто два счёта у одного брокера — обычный брокерский и ИИС. Поэтому в первой вкладке два портфеля. Цены подтягиваются с сайта Мосбиржи, раньше пользовался функцией Googlefinance. В самом низу вкладки подсчитаны суммы по категориям эмитентов, чтобы понимать диверсифицированность суммарного портфеля. На момент написания статьи в лидерах категорий у меня «нефть и газ», «химия» и «энергетика». Стоимость активов подтягивается сама из формулы суммы с двух счетов. Я заполняю только среднюю цену входа, беру из приложения, и количество акций.
Во вкладке «Вложения 2021» я ежедневно обновляю данные по доходности портфеля, при вычислении её стандартной формулой «сумма вложений/текущую стоимость портфеля». По этим данным строится график.
«Составной портфель». Поскольку на двух моих счетах некоторые эмитенты дублируются, однажды я решил совместить их в одну вкладку. Здесь суммируется общая стоимость каждого эмитента, его доля в суммарном портфеле и сумма полученных дивидендов. Сюда же добавил столбец со значением, насколько процентов увеличились поступления от каждого эмитента по сравнению с прошлым годом. Понимаю, что каждый год они будут увеличиваться в любом случае, так как регулярно идет увеличение количества акций каждого из эмитентов. Посмотрим, может быть вскоре откажусь от этого столбца. Ниже в той же вкладке обозначена диверсификация активов по странам. У меня нет строгой стратегии, сколько процентов от портфеля должны составлять акции той или иной страны, но со временем более менее я пришёл к действующим цифрам.
«Дивиденды» — моя любимая вкладка. Очень приятно наблюдать за их увеличением, в том числе средним значением за последние 12 месяцев. На момент написания этого текста мой пассивный доход в среднем составляет более 3000 рублей в месяц. Даже подсчитана средняя сумма дивидендов за всё время инвестирования — 22 месяца, включая первые месяцы с полным отсутствием дивидендных выплат.
XIRR — более справедливый, на мой взгляд, способ оценки доходности. В данный момент он практически совпадает с данными доходности по формуле из вкладки «Портфель».
Идеи. Название говорит само за себя, можно и без пояснений.
Сравнение. По этой таблице я выбираю наиболее привлекательные акции, голосуя за них по разным критериям. Для иностранных акций данные нахожу на Finasquare, для российских — на Смартлабе. Наиболее привлекательному показателю ставлю единичку, наименее привлекательному — 0, иногда 0,5. И затем смотрю, какая компания набрала больше баллов.
План. После первого года инвестирования стало интересно, когда при текущих условиях я приду к сумме в 10 000 000 рублей. Тут можно играться с процентной ставкой и суммами ежегодных вложений.
Вложения (все). За неполные 2 года инвестиций были разные месяцы по вложениям. Поэтому здесь просто строится интересный график по сумме всех-всех-всех пополнений. И автоматически появляется линия тренда, как и в дивидендной вкладке, что позволяет оценить динамику вложений и среднюю сумму ежемесячных вложений за весь срок инвестирования.
В идеале было бы интересно из этой таблицы создать более презентабельный вид при помощи какого-нибудь Python или другого языка. Но поскольку таблица создавалась исключительно для себя, да и знаний у меня на это нет, она остаётся такой, какая есть в данный момент. Иногда я что-то в неё добавляю, иногда убираю. Посмотрим, как она будет выглядеть через несколько лет.
Ссылка на таблицу
Таблица элементарных инвестиций от тинькофф (акция до 2000 р. в подарок)
§
ссылку можете дать актуальную? а то чет что на первой странице, у мня не открывает, счет закрыл еще в начале июня , хотел бы попробывать по второму разу открыть срубить кэша, др скоро
Эмм сорян, ссылка открылась, впн подрубил, походу крымчанам лочат. стандартная процедура.
Подскажите еще , репост обязательно делать в плане собранного портфеля?
шо делать, хелпуйте )) в правилах написано что старым пользователям до 100руб начисляют
§
Заключение
Осталась неподсчитанной эффективность вложений. Мы знаем точный период инвестирования, знаем профит. Однако, сложность в том, что вложенные средства не были зачислены разово, а поступали на счёт периодически, разными суммами, а иногда выводились. Для расчёта эффективности инвестирования нужно что-то вроде формулы XIRR в Excel, но я пока не сообразил, как вкрутить её в эту программу. Если у вас есть идеи на этот счёт — поделитесь, пожалуйста.
Зато, мы разобрались, откуда получаются значения, приводимые в клиентском приложении.
Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.
Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.
А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.
Проект опубликован на GitHub
В планах сделать оконную версию программы с интерфейсом в виде приложения .exe для тех, кто не хочет возиться с установкой Python на свою машину, и при этом ещё не боится вводить данные своего аккаунта в приложение неизвестного разработчика (я бы, наверно, не рискнул).
Это мой первый проект на Python и первая публикация на Хабре.
Надеюсь, информация окажется полезной для улучшения взаимодействия с приложениями Тинькофф, работы с API и разработки подобных программ, а также поспособствует более осознанному инвестированию, а следовательно, повысит ваше благосостояние. Благодарю, что дочитали до конца.
Отзывы о тинькофф инвестиции
В целом отзывы положительные. Однако, как и у других финансовых продуктов для торгов и заработка, у платформы есть недоброжелатели. Негативные реакции встречаются из-за недостатка опыта и нежелания обучаться.
В чем именно заключается подвох акции Тинькофф Инвестиции? Внимания заслуживает «Акция в подарок». Речь идет о предоставлении суммы в 10 000 р. Необходимо установить приложение и ввести свои паспортные данные. Если курьер до клиента не доехал (допустим, проживает в отдаленном районе), можно отправить жалобу в службу поддержки. Они должны отреагировать.
Через какое-то время поступает сообщение, что если не состоится продажа полученных акционных средств, то они сгорят. Шокирующая информация для любого начинающего инвестора. Чуть позже выяснится, что продать акцию можно исключительно после совершения сделок на 15 тыс. руб. Классическая история – заплати за презент!