Ребалансировка портфелей

Инструмент для ребалансировки портфелей, который делает больше, чем обычный Excel. Бесплатный и безопасный для ваших финансовых данных — не хранит их на сервере.

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

Обычный подход

Чтобы ребалансировать портфель, надо вычислить количество лотов к покупке или продаже по каждому активу. Самое простое решение этой задачи можно сделать в любой электронной таблице с помощью формулы: (текущая стоимость портфеля + сумма пополнения) * целевая доля актива / текущая цена актива - количество лотов во владении. Если нет возможности работать с неполными лотами на бирже, результат формулы можно округлять в меньшую сторону. Пример такой таблицы доступен здесь.

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

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

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

Инструмент ребалансировки от Capital-Gain

Более универсальным подходом является ребалансировка в несколько этапов, которую использует мой инструмент. Он работает примерно так:

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

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

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

Несмотря на наличие комиссий, итоговая стоимость портфеля оказалась чуть выше, а использование суммы пополнения максимальным. Усложним ситуацию, отправив актив Деньги (например, это мог быть фонд денежного рынка или короткая облигация) на другой счет (деньги между счетами в ходе ребалансировки не переводятся) и также запретив его продажу:

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

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

Памятка по работе с инструментом

  • Если вы пополняете портфель, укажите сумму пополнений. Для удобства можно указать имеющиеся средства в трех валютах — они будут сложены в одну сумму. Если деньги уже на счетах, их можно указать отдельными активами с ценой 1 у. е. и лотами, равными сумме.
  • Укажите счета, на которых куплены бумаги в портфеле. При желании можно указать комиссии по тарифам ваших брокеров и бирж. Сумма пополнения может распределяться между счетами как угодно, а выручка от продажи бумаг не переводится.
  • На многих заголовках есть подсказки, они появляются при наведении мышкой.
  • Добавьте активы в портфель, указав их тикеры или любые удобные названия, счета, текущие количества лотов и цены и целевые доли в портфеле. Цены можно указывать в одной из трех валют.
  • Выберите удобную вам валюту отображения (не влияет на результат ребалансировки).
  • При необходимости любой актив можно запретить покупать или продавать. Для этого используйте кнопки B (buy, покупать) и S (sell, продавать) слева в строчке актива.
  • Нажмите на кнопку обновления курсов валют. Курсы обновляются полуавтоматически (скачиваются сами, но только по команде), чтобы результат ребалансировки не менялся между заходами на страницу инструмента.
  • В колонке отклонений до ребалансировки будут посчитаны и выделены цветом текущие отклонения активов в портфеле.
  • Нажмите кнопку Ребалансировка. Если случай сложный, она может занять несколько секунд. Во многих случаях существует несколько достаточно оптимальных решений, поэтому каждый раз результаты могут немного отличаться.
  • Появится количество лотов к покупке или продаже, стоимость операций, комиссии и отклонения долей активов после ребалансировки, а также результаты по счетам отдельно и в сумме — размер пополнений и остатков (неизрасходованных средств).
  • Введенные данные не пропадут после закрытия браузера или перезагрузки устройства, но они не хранятся на сервере, поэтому при смене браузера или устройства их нужно будет ввести заново.