ликвидный портфель тинькофф это что
Ликвидность на фондовом рынке
И как на ней зарабатывать
Мы уже рассказывали, как частному инвестору выбирать акции для покупки, основываясь не на заявлениях Трампа, а на финансовых показателях бизнеса.
Но чтобы торговать на фондовом рынке, надо учитывать и рыночные факторы. Главный из них — ликвидность. Разберем на примере Московской биржи.
Что вы узнаете
Что такое ликвидность
Ликвидность — это способность быстро продать какой-то актив по рыночной цене, то есть без скидок. Чем быстрее это можно сделать, тем выше ликвидность актива. Разберем на примерах. Сейчас будет обидно, готовьтесь.
Недвижимость — низколиквидный актив (вопреки тому, что говорили родители). Вы не сможете быстро продать квартиру по рыночной цене. Даже если есть покупатель, нужно время, чтобы собрать документы, все проверить, оформить сделку в Росреестре. Это не быстро, а значит, уменьшает ликвидность вашей квартиры. При этом у каждой квартиры ликвидность тоже разная — однушку в центре продать проще, чем трешку на окраине.
Использованная зубная щетка — неликвидный актив. Вряд ли вы сможете кому-то продать свою старую зубную щетку. Если вы, конечно, не Пэрис Хилтон. Щетка сразу после покупки теряет свою способность быть проданной кому-то по рыночной цене.
Аналогичный пример — новая машина, которая сразу после покупки теряет около трети стоимости. Некоторые старые модели можно продать разве что по программе утилизации. Машина, вопреки общепринятым представлениям, низколиквидный актив, на грани неликвидности.
Банковский вклад — ликвидность зависит от условий. Например, в том же Тинькофф-банке я могу закрыть свой вклад через приложение и на следующий день получить деньги. Но один день все же придется подождать, при этом из-за досрочного расторжения теряются накопленные проценты.
Ликвидность ценных бумаг
Инструменты фондового рынка — акции и облигации — самые ликвидные активы для инвестора. Когда биржа работает, ценные бумаги можно продать без проблем, просто открыв терминал или позвонив своему брокеру. Причем в случае с облигациями накопленный купонный доход не теряется, в отличие от тех же процентов по досрочно закрытому вкладу.
Но здесь есть свои тонкости. Представьте, что вы решили продать акции через терминал, открыли стакан заявок и в списке лучших предложений на покупку и продажу актива увидели, что на ваш объем акций нет достаточного спроса. Поздравляем: пришло время узнать о ликвидности фондового рынка.
Рынок считается высоколиквидным, если на нем регулярно заключают сделки и разница между ценами заявок на покупку и продажу невелика. При этом таких сделок должно быть много, чтобы каждая небольшая сделка не влияла на цену товара.
Ликвидность инструмента на фондовом рынке оценивают по количеству совершаемых сделок (то есть по объему торгов) и величине спреда. Спред — это разница между максимальными ценами заявок на покупку и минимальными ценами заявок на продажу. Чем больше сделок и меньше разница, тем выше ликвидность.
Если вы можете быстро продать или купить большое количество акций определенной компании без существенного изменения цены, то такие бумаги можно считать ликвидными, и наоборот.
Ликвидность на Московской бирже
У инвесторов с разным количеством денег будут разные требования к ликвидности. Разберем на примере.
Представьте трех частных инвесторов: один хочет вложить 1 миллион рублей, второй — 60 миллионов, а третий — 600 миллионов. Все трое пришли за акциями на Московскую биржу и открыли список с итогами торгов в обычный пятничный день. Когда мы писали эту статью, на Московской бирже торговалось 226 компаний. При этом для покупки доступна 281 акция: некоторые компании продают акции нескольких видов.
Вот как выглядит этот список, если отсортировать результаты по объему от большего к меньшему.
Первая страница — сливки нашего фондового рынка. Это самые ликвидные компании — так называемые голубые фишки. Возглавляет список Сбербанк: за день с его бумагами совершили 65 073 операции более чем на 11 млрд рублей.
Если представить, что инвесторы могут купить акции только какой-то одной компании, все трое легко разместят деньги в акциях первых пятнадцати компаний. Но уже дальше, начиная с «Ростелекома», объемы торгов акциями компаний падают ниже 594 млн рублей в день — инвестора с 600 млн эти бумаги не интересуют. А требованиям инвестора с 60 миллионами рублей соответствуют только первые 45 компаний.
Проще всего будет продавать и покупать акции инвестору с 1 миллионом рублей. Но даже ему подойдет чуть более сотни компаний: объемы торгов остальных уже меньше миллиона в день.
Конечно, в реальности всё иначе: с одной стороны, вам не нужно вкладывать все деньги в акции одной компании — вместо этого лучше диверсифицировать портфель, тогда требования к минимальному объему торгов будут ниже. С другой стороны, если объем торгов 1 миллион в день, то купить акции даже на 100 000 рублей будет не так легко. А потом не так легко будет их и продать. Ведь объем у нас суммарный не только на весь день, но и на всех участников рынка. Суть такова: не стоит покупать акций больше, чем потом получится легко продать.
Прежде чем покупать акции вроде как недооцененной компании, узнайте, какая у этих бумаг ликвидность. Иначе вы никогда не сможете продать их. Вернее, продать-то вы их сможете, но для этого потребуется время и, вероятно, снижение цены. А если снижать цену, то зачем было вкладывать?
Московская биржа на карте мира
Если посмотреть на ликвидность фондовых рынков разных стран, то станет понятно, что Московская биржа отнюдь не лидер по количеству компаний, чьи бумаги здесь торгуются.
Капитализация всех акций на Московской бирже около 630 млрд долларов, в то время как капитализация одной только компании «Эпл» более 900 млрд долларов. Московская биржа не входит даже в топ-20 крупнейших бирж, уступая фондовым биржам Мадрида, Тайваня и Сан-Паулу. На Московской бирже торгуется 281 различная акция от 226 компаний, в то время как на фондовых рынках США их тысячи.
Что такое Free float
Объем сделок — это еще не все, что определяет ликвидность той или иной акции. Инвестируя в ценные бумаги, важно помнить о показателе free float.
Низкий free float акций говорит о том, что частные лица могут продавать и покупать только небольшое число акций, поэтому и ликвидность их тоже будет низкой.
Чтобы понять, как free float влияет на ликвидность акций, приведу пример с двумя похожими на первый взгляд компаниями, акции которых торгуются на бирже.
Что такое современная теория портфеля
Поиск оптимального способа распределения активов
Хоть теория и современная, первому ее упоминанию уже 70 лет.
В основе MPT лежит тезис о том, что риск и доходность взаимосвязаны. Это означает, что желание инвестора получить более высокую доходность непременно повышает уровень риска, а между двумя портфелями с одинаковой ожидаемой доходностью рационально выбирать менее рискованный вариант.
Под риском в теории понимается волатильность портфеля — то есть то, насколько изменчива его цена. Математически волатильность выражается через статистический показатель, который называется стандартным отклонением. Пример его расчета я приводил в статье про всепогодную стратегию.
MPT утверждает, что для каждого уровня риска есть соответствующая комбинация активов, которая максимизирует доход, — такой портфель называется оптимальным. Другая идея MPT заключается в том, что за счет диверсификации по различным классам активов можно сгладить волатильность портфеля. Таким образом, мы либо максимизируем доход при заданном уровне риска, либо минимизируем риск при целевой доходности.
Рассмотрим, как это работает.
Что такое эффективная граница
На диаграмме ниже представлена так называемая эффективная граница для портфелей, составленных из акций и среднесрочных казначейских облигаций в разных пропорциях.
Оптимальные портфели расположены на фиолетовой линии. Варианты выше нее недостижимы: не существует портфелей с таким отношением доходности к риску. А портфели ниже линии неэффективны: они либо дают доходность ниже ожидаемой, либо подразумевают больший риск.
Оптимизация портфеля означает поиск компромисса между риском и прибылью. Поэтому инвестору важно заранее определиться с желаемой доходностью и комфортным для себя уровнем риска. Повторюсь, что речь здесь идет про волатильность, с которой готов мириться инвестор. Этот риск не означает полной потери актива, но может включать ее, например если компания обанкротится. Но диверсификация портфеля обычно снимает этот вопрос.
Сделки лонг в Тинькофф Инвестиции
Зарабатывать на росте стоимости акций или других активов можно не только на свои деньги, но и взятые взаймы у брокера. Но если полагаться на «кредитное плечо» слишком часто, можно значительно уменьшить свой доход. Так происходит, потому что при маржинальной торговле придется оплачивать комиссию брокера за сделки. А также каждый день отдавать фиксированные суммы за перенос непокрытой позиции. Как купить акции в лонг у брокера Тинькофф, разобрался специалист сервиса Бробанк.ру.
Что такое маржинальная торговля в лонг
Лонг или «длинная» сделка означает открытие непокрытой позиции с расчетом на рост цены акции, облигации или валюты. Непокрытая позиция лонг – это деньги, которые вам дал взаймы брокер под залог валюты и ценных бумаг, которые у вас уже есть в портфеле.
Обратите внимание, что лонг только называется «длинной» сделкой. В реальности к продолжительности по времени он не имеет никакого отношения. Сделка может открываться как на месяц, так и на несколько минут или часов. Операции лонг также называют «игрой на повышение».
Смысл сделок лонг в том, чтобы купить акции по более низкой цене, а продать по более высокой. Такие операции позволяют инвесторам и трейдерам многократно увеличить прибыль, по сравнению с торговлей только на свои деньги. Однако очень важно помнить, что клиент несет полную ответственность и за все полученные по сделкам убытки.
Пример сделки в лонг
Например, вы решили купить 10 акций Alibaba по 150 долларов, в надежде, что цена по ним вырастет через 10 дней до 170 долларов. Если ваш расчет оказался верен, вы заработаете 200 долларов. Если вы рискнете, откроете «длинную» позицию у брокера Тинькофф и купите не 10, а 100 акций, размер прибыли будет в 10 раз выше – 2000 долларов. При этом не забывайте о комиссиях. Брокер спишет процент или фиксированную сумму за сделки по покупке-продаже акций, а также за перенос непокрытой позиции в течение всех 10 дней до закрытия сделки.
Учтите, что возможен и негативный сценарий. К примеру, акции Alibaba не выросли, а упали до 130 долларов. В этом случае вам придется выбирать:
Если решили идти первым путем, при покупке 100 акций с «плечом» брокера ваш убыток составит 2000 долларов. Комиссии брокера увеличит ваши расходы еще сильнее. Если решите ждать роста цены, брокер каждый день будет списывать деньги за перенос непокрытой позиции и увеличивать сумму долга. Очень важно трезво оценивать ситуацию и сопоставлять риски, иначе можно потерять весь капитал.
Маржинальную или торговлю «с плечом» чаще используют активные инвесторы и трейдеры для спекуляций. Помните, что очень рискованно проводить сделки на заемные деньги брокера без специальных знаний и четкого понимания, как устроен процесс.
О том, как подключить маржинальную торговлю, читайте подробнее в статье Бробанка «Как шортить в Тинькофф Инвестиции».
Ликвидность портфеля
Размер ликвидного портфеля – это стоимость всех ликвидных активов на вашем брокерском счете или ИИС в российских рублях. В подсчете участвуют валюта, акции и облигации, которые брокер включил в список ликвидных, а также рубли. Деньги, которые хранятся на других счетах или картах Тинькофф не входят в состав ликвидного портфеля.
При покупке нового актива, пополнении счета или изменении цены акций и облигаций, стоимость ликвидного портфеля меняется. Актуальную информацию можно найти в личном кабинете или мобильном приложении Тинькофф Инвестиции.
Размер ликвидного портфеля меняется в режиме реального времени. Его стоимость зависит от биржевых котировок валют и ценных бумаг.
Перед любой маржинальной покупкой проверяйте цвет индикатора ликвидного портфеля у Тинькофф брокера:
Маржа – это залог, который служит гарантией, что брокер сможет вернуть заемные деньги, выданные инвестору или трейдеру для сделок.
Начальная маржа – обеспечение, для открытия новой сделки. Для одного актива вычисляется как стоимость актива, умноженная на начальную ставку риска лонг.
Минимальная маржа – минимум, при котором брокер не станет закрывать уже открытую позицию. Составляет половину начальной маржи.
Ставки риска для «длинных» позиций у Тинькофф брокера размещены по ссылке.
Параметр указан в третьем столбце таблицы в процентах.
Комиссии брокера Тинькофф при сделках лонг
За сделки с «плечом» брокер Тинькофф берет два типа комиссий:
Если вы откроете сделку лонг и закроете в течение одного торгового дня, платежа за перенос непокрытой позиции не будет. Также брокер не снимает плату, если сумма меньше 3000 рублей.
Непокрытую позицию пересчитывают в рубли по биржевому курсу. Комиссия, которую спишет брокер за перенос, зависит от суммы сделки «с плечом».
Сумма непокрытой позиции инвестора, в рублях | Комиссия брокера в день, в рублях |
До 3 000 | Бесплатно |
До 50 000 | 25 |
До 100 000 | 45 |
До 200 000 | 85 |
До 300 000 | 115 |
До 0,5 млн | 185 |
До 1 млн | 365 |
До 2 млн | 700 |
До 5 млн | 1700 |
Более 5 млн | 0,033% от суммы непокрытой позиции |
Если сделка лонг проведена в четверг, а закрыта в понедельник, комиссию посчитают за субботу и воскресенье. Также плата предусмотрена за выходные дни на бирже, праздничные и другие нерабочие дни.
Как определить максимальную сумму для торговли в лонг
Максимальная сумма, на которую вы сможете претендовать для проведения сделки в лонг, зависит от трех параметров:
Итоговая формула максимальной суммы для сделки лонг выглядит так:
(ЛП – НМ) / НСРл
Разобраться с расчетами проще на примере. Допустим, вы хотите открыть лонг по акциям Endo International PLC (ENDP). При этом стоимость вашего ликвидного портфеля 50 000 рублей, а начальная маржа 8 000 рублей. Начальная ставка риска лонг у Тинькофф брокера для этой акции 51%. Максимальная сумма непокрытой сделки лонг будет рассчитываться так:
(50 000 – 8 000) / 51% = 82 352 рубля
То есть именно на 82 352 рубля вы сможете купить акции компании Endo International PLC.
Для акций «Детского мира» (DSKY) начальная ставка риска лонг – 20,08%. Максимальная сумма «длинной» сделки:
(50 000 – 8 000) / 20,08% = 209 163 рубля
Из примеров видно, что начальная ставка лонг значительно влияет на максимальную доступную сумму сделки.
Не обязательно использовать весь доступный лимит для сделки в лонг. Можно открыть непокрытые позиции по нескольким разным активам, главное не выйти за предел максимальной суммы для вашего портфеля.
Ставка риска для «длинных» позиций
Ставка риска для сделок лонг показывает вероятность изменения цены актива. Нулевая ставка риска только у российского рубля, так как он не может подорожать или подешеветь относительно самого себя. У всех остальных активов этот показатель выше 0. Чем выше значение ставки риска лонг, тем вероятнее, что цена актива пойдет вниз, а не верх, как на это рассчитывает инвестор или трейдер.
При оформлении сделки лонг всегда учитывайте ставку риска лонг. Актуальные значения у брокера Тинькофф для всех активов опубликованы по этой ссылке. Если ставка риска лонг у актива равна 100%, значит, брокер потребует полного обеспечения при оформлении непокрытой позиции. Чем выше значение, тем менее ликвидный актив вы рассматриваете и тем сильнее рискуете.
Например, вы хотите купить в лонг акции компании Энел Россия с тиккером ENRU. В таблице ставок риска лонг у Тинькофф брокера указано значение 20,08%. Это означает, что для покупки одной акции у вас на брокерском счете должно быть не меньше 20,08% от цены акции. То есть, если размер вашего ликвидного портфеля 1 000 рублей, вы сможете купить 49 акций и еще 16,08 рублей останется. При этом для покупки швейцарских франков или акций China Mobile на вашем брокерском счете должна быть сумма не меньше текущей стоимости этих активов. Так как по ним ставка риска лонг – 100%.
Как проходит сделка в лонг
Для открытия сделки в лонг в Тинькофф Инвестициях:
Брокер регулярно сопоставляет стоимость ликвидного портфеля с начальной маржой. Если обеспечения достаточно, можно проводить новые сделки в лонг. Если ликвидный портфель становится меньше и приблизится к критическому значению, придет маржин-кол.
Пример лонга у Тинькофф брокера
Рассмотрим открытие лонга в Тинькофф Инвестиции на примере. Допустим, вы предполагаете, что акции Сбербанка вырастут, и хотите на этом заработать, хотя собственных средств недостаточно. Для сделки лонг:
За проведенные сделки брокер удержит комиссию по вашему тарифу. А также снимет оплату за перенос непокрытых позиций за каждый календарный день. Всю информацию обо всех списаниях вы можете посмотреть в отчете брокера в личном кабинете.
Что такое маржин-кол при сделках в лонг
При возникновении риска обнуления портфеля или ухода в минус брокер Тинькофф пришлет уведомление – маржин-кол. В сообщении будет указано, на какую сумму нужно пополнить портфель. Если этого не сделать брокер начнет принудительно закрывать непокрытые позиции и продавать валюту и ценные бумаги для компенсации убытков.
Маржин-кол пришлют на мобильный телефон в виде push-уведомления или СМС. Также сообщение появится в личном кабинете и мобильном приложении. После этого у вас несколько вариантов действий:
Маржин-кола можно избежать. В этом поможет постоянный мониторинг размера ликвидного портфеля и технические средства, которые настраиваются в приложении или терминале Тинькофф брокера.
Как избежать маржин-кола
Предотвратить маржин-кола можно разными способами:
Стоп-лосс – буквально означает остановить потери. Фактически stop-loss – это приказ брокеру, чтобы он продал или купил ценные бумаги или валюту, если цена изменится не в ту сторону, в которую вы прогнозировали. К примеру, вы открыли лонг по Газпрому, при этом акции вы купили по 350 рублей и ждете дальнейшего роста. Но, чтобы минимизировать риски, вы можете отдать распоряжение брокеру продать акции, если цена упадет до 330 рублей или любого другого критичного для вас уровня. У Тинькофф брокера выставить стоп-лосс можно только в личном кабинете на сайте. В мобильном приложении эта опция недоступна.
Если хотите установить ограничение через приложение Тинькофф Инвестиции придется настроить одновременно стоп-лимит и стоп-маркет.
Тейк-профит – это приказ брокеру продать или купить бумаги, когда цена на них достигнет указанного значения. Например, вы купили акции Газпрома по 350 рублей, а ждете повышения до 370 рублей. Если установите тейк-профит на этом уровне, брокер продаст ваши акции на выполнении условия, и вы получите прибыль.
Перед тем, как проводить сделки «с кредитным плечом» брокера, научитесь контролю рисков. Будет полезно проверить, насколько вы готовы фиксировать убытки на небольших суммах. Кроме того, разберитесь, как устанавливать тейк-профит и стоп-лосс, чтобы минимизировать свои потери.
Блог компании Тинькофф Инвестиции | Что изменилось в терминале Тинькофф Инвестиций
В одном из прошлых постов мы написали про наш мануал и как в нем работать. С того момента мы добавили новые инструменты. Что изменилось в терминале Тинькофф Инвестиций, читайте ниже.
Теперь терминал доступен бесплатно всем клиентам. Он находится в в личном кабинете на Tinkoff.ru: зайдите по логину и паролю, далее — в раздел «Инвестиции» и выберите вкладку «Терминал».
Какие виджеты добавили?
Об инструменте. В нем можно посмотреть показатели компании, дивиденды или купоны, а также описание компании:
Маржинальная торговля. Виджет состоит из показателей ликвидного портфеля, маржи и списка ликвидных бумаг.
Состояние счета показывает, можете ли вы покупать бумаги и валюту с плечом и выводить средства в рамках доступной ликвидности.
Ликвидный портфель — это сумма ликвидных бумаг и денег, которые есть в портфеле, за вычетом активов, которые вы взяли в долг у брокера. Если в портфеле есть доллары или бумаги в валюте, мы учтем их в рублях по биржевому курсу.
Начальная маржа — общая стоимость каждого ликвидного актива, умноженного на его начальную ставку риска. Начальная маржа не отображается в виджете отдельной строкой — если у вас нет активных заявок на покупку, она равна скорректированной марже.
Скорректированная маржа — это начальная маржа с учетом активных лимитных заявок на покупку.
Минимальная маржа — это общая стоимость каждого ликвидного актива, умноженного на его минимальную ставку риска. Если актив достигнет этого параметра, то брокер начнет принудительно закрывать позиции.
Сумма непокрытых позиций — это совокупный размер всех ваших незакрытых сделок с плечом.
Стоимость обслуживания в сутки — это сумма, которую брокер спишет за перенос на следующий день всех ваших непокрытых позиций.
Подписки. С помощью виджетов «Подписка на цену» и «Активная подписка» можно подписаться на изменение цены и получать об этом уведомления в браузере:
Что улучшили?
График. Мы добавили новые инструменты: линейку, объем торгов, а также технические индикаторы:
«Скользящее среднее» или MA — показывает среднее значение цены инструмента за некоторый период времени. По умолчанию индикатор строится по длине 5, отступу — 0 и по цене закрытия — эти параметры отображаются рядом с названием. Данные индикатора можно изменять по своему усмотрению. Для этого отрегулируйте параметры с помощью стрелок:
Индикатор «Скользящая средняя экспоненциальное» или EMA — к среднему значению цены добавляется значение скользящего среднего определенной доли текущей цены закрытия. Данные также стоят по умолчанию и с помощью стрелок их можно менять:
Скользящая средняя сглаженная или SMA — сглаженное среднее значение цены инструмента за некоторый период времени
Схождение/расхождение скользящих средних — MACD:
Аллигатор: синяя челюсть, зеленые губы и красные зубы:
Индекс относительной силы, RSI — показывает относительную силу тренда и помогает находить вероятные точки разворота тренда:
Моментум (MOM) — разность между текущей ценой и ценой k периодов назад.
Заявка. Теперь видно, сколько доступно активов с плечом и без него:
Инструменты. Добавили сортировку, параметры торговой сессии и бумаги, доступные в шорт. Колонки можно перемещать — для этого в настройках переместите строки в названиях колонок:
Портфель. С помощью шестеренки в правом верхнем углу можно добавлять или убирать колонки/ Их можно перемещать, для этого в настройках переместите строки в названиях колонок:
Пишите в комментариях, какие еще инструменты хотите видеть в терминале и какую функциональность добавить — команда разработчиков прочитает все идеи и предложения.
Что недоговаривают Тинькофф Инвестиции. Вытаскиваем все данные по портфелю через 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.
Есть вариант пытать персонального менеджера и службу поддержки, но переписка с ними бывает утомительна, и они не помогут с визуализацией данных. Лучше написать программное средство, чтобы формировать результат в удобной для меня форме и делать это автоматически.
Проблема только в том, что я не программист и с банковскими API раньше не работал. Видимо, пришла пора попробовать.
Знакомство с API
Находим официальную страницу Open API от Тинькофф:
На странице предлагаются 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.
Если коротко, работает это так:
Устанавливаем и настраиваем его на своей машине
Устанавливаем через PIP библиотеку tinvest
Открываем редактор кода, например Idle, импортируем установленную библиотеку:
Создаём объект для дальнейшей работы с API:
В 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)
И чтобы в нашей будущей таблице появились не только бумаги, но и валюты кэшем, запросим и их тоже:
for pos in positions.payload.positions:
ecxelFileName = ‘tinkoffReport_’ + today + ‘.xlsx’
Так, на этом этапе, у меня получилась небольшая программка, создающая таблицу с базовой информацией по бумагам, получаемой по API, а именно:
Наименование, тикер, валюта бумаги, количество бумаг, средняя цена покупки, ожидаемая выручка.
Из имеющихся данных простой арифметикой высчитывались: текущая рыночная цена одного лота и суммарная стоимость всей позиции.
Писалось всё в Idle, выглядело как-то так: (НЕ ПОВТОРЯТЬ!)
НЕ ПОВТОРЯТЬ
Подглядывая в проекты других разработчиков на Python, я тогда ещё мало что понимал, но было очевидным, что их проекты пишутся совсем по-другому, и мне придётся менять структуру в корне.
Я решил переписать всё заново, как положено, и в более удобной среде разработки.
Знакомство с Python
В качестве более продвинутой среды, ребята с работы посоветовали PyCharm.
С ним дело пошло гораздо продуктивнее, среда автоматически дрессирует писать в соответствии с PEP8 (стандарт оформления кода).
Общие знания по Python я брал из своего любимого справочника: https://www.w3schools.com/
Просто прошерстил все его статьи по питону сверху вниз, и потом периодически обращался за подробностями.
Вообще, чисто субъективно, мне этот язык сразу понравился. Порадовала краткость путей решения задач. Сложилось впечатление, что если просто нужно, чтобы что-то заработало, оно здесь заработает в два счёта, без лишних заморочек. Гуглится всё элементарно, по крайней мере, на моём уровне сложности. Чаще всего, решения находил на https://stackoverflow.com/
Структура программы
Структура таблицы
— Позиции
В левой части таблицы выводится информация по текущему портфелю:
Параметры (базовые, из API):
Параметры, посчитанные на основе базовых:
Сразу после блока с рыночными ценами, располагается самый сложный, с точки зрения расчётов, блок: стоимость активов по ЦБ и расчёт ожидаемого налога при продаже.
Сложность в том, что бумага могла приобретаться частями, в разные дни, а могла частично продаваться. Здесь действует такое правило, что первой продаётся та бумага, которая первой покупалась.
Чтобы решить эту задачу, я придумал сделать для каждой позиции упорядоченный список (массив). Программа пробегает по всем операциям покупки, находя операции с figi данной бумаги, и каждая покупка добавляет в список количество ячеек, соответствующее количеству приобретённых бумаг. Каждая ячейка содержит значение, соответствующее цене покупки в рублях по курсу ЦБ на дату операции. А каждая продажа удаляет нужное количество ячеек из начала списка. Затем считается среднее значение по оставшимся ячейкам, так получается средняя цена покупки в рублях по курсу ЦБ.
Был небольшой подвох, связанный с тем, что в списке операций от Tinkoff API есть не только выполненные, но и нулевые операции, которые пришлось отсеивать.
Чтобы API ЦБ РФ не решил, что мы его ддосим, я поставил небольшую задержку. В итоге, всё считается как надо, но этот этап обрабатывается ощутимо медленно. Чтобы обработались мои 15 позиций и 430 операций, приходится ждать около 1 минуты.
Наверняка это можно как-то оптимизировать, но, в принципе, мы не торопимся.
Разобравшись с самым сложным этапом, можно составить следующие колоночки:
— Операции
Справа от раздела с позициями, выводим колоночки со всем типами операций, которые может нам предоставить Tinkoff API. Их много, на один скриншот не влезают, но на большом мониторе помещается:
Под каждой колоночкой считается сумма. Это как раз то, что нам не покажет брокер. И здесь есть кое-что интересное.
Теперь мы можем сравнить сумму внесённых средств и сумму выведенных (в переводе на рубли по курсу ЦБ)
Ещё можно посчитать сумму всех купонов и дивидендов, а также, внимание:
все комиссии, уплаченные брокеру, и все налоги, удержанные брокером!
Итак, вот мы получили и разложили перед глазами все имеющиеся данные.
Теперь можно сделать из них выводы.
— Аналитика
Я впихнул этот маленький раздел прямо под таблицей с позициями.
Кстати, что касается дат, я не учитывал часовые пояса, и это может где-то выплыть.
Кстати, из-за появления в портфеле позиции «Сегежа» в первый день после IPO программа не могла выполниться и выдавала ошибку. На следующий день по бумаге с API стали приходить нормальные данные и программа снова заработала.
Если что, форма W8BEN, у меня, на данный момент, по некоторым причинам, не действует.
Итого, в российский бюджет я уже уплатил 117 631 руб, и, как было посчитано выше, мне предстоит уплатить ещё порядка 207К, если я зафиксирую портфель сейчас.
В общем-то, это пока всё, что я сделал.
Заключение
Зато, мы разобрались, откуда получаются значения, приводимые в клиентском приложении.
Также, мы узнали суммы комиссий и налогов, как уплаченные, так и ожидаемые.
Нашли реальную сумму, которую сможем вывести со счёта при фиксации портфеля, после удержания налогов.
А главное: получили возможность одним кликом собирать все данные по портфелю со всеми операциями в одну большую таблицу Excel, с которой дальше можем работать средствами самого Excel, можем экспортировать в Google Sheets, или просто сохранить как архив для анализа в будущем.
Это мой первый проект на Python и первая публикация на Хабре.
Надеюсь, информация окажется полезной для улучшения взаимодействия с приложениями Тинькофф, работы с API и разработки подобных программ, а также поспособствует более осознанному инвестированию, а следовательно, повысит ваше благосостояние. Благодарю, что дочитали до конца.