Сразу раскрою конфликт интересов: я автор сервиса, о котором расскажу во второй половине статьи. Это не независимый обзор и не попытка подсказать, какие бумаги кому покупать.
Rebalio не составляет портфель и не определяет стратегию. Я сделал его для другой задачи — чтобы перестать вручную переводить уже выбранные мной проценты в конкретные действия.
Не ИИР, не торговый сигнал и не очередной грааль.
Сначала был калькулятор
Пока в портфеле три бумаги и один брокер, проблема почти незаметна.
Открыл приложение, посмотрел суммы, примерно прикинул доли и купил то, чего меньше всего.
Но со временем у меня появились:
- несколько классов активов
- елевые пропорции
- отдельная доля свободных денег
- несколько брокерских счетов
- бумаги с разной лотностью
- желание распределять пополнения без лишних продаж
И каждое пополнение стало начинаться с одного и того же ритуала.
Сначала нужно собрать стоимость всех позиций. Затем посчитать размер общего портфеля. После этого — фактическую долю каждого актива:
фактическая доля = стоимость позиции / стоимость портфеля
Потом целевую стоимость:
целевая стоимость = стоимость портфеля × целевая доля
И наконец отклонение:
отклонение = целевая стоимость − текущая стоимость
На бумаге всё элементарно. На практике после пятого актива начинается много мелкой рутины.
Проценты нужно перевести в рубли. Рубли — в количество бумаг. Количество — округлить по лотам. Затем проверить, хватает ли денег. После округления остаётся кэш, который нужно распределить повторно.
Калькулятор, конечно, ни в чём не виноват. Но после нескольких таких кругов он уже выглядит как соучастник преступления.
Простой пример, в котором уже появляется проблема
Представим портфель стоимостью 1 млн рублей. Я вношу ещё 100 тыс. рублей. После пополнения общая стоимость становится 1,1 млн.
Стратегия условная:
- актив А — 30%
- актив Б — 25%
- актив В — 20%
- актив Г — 15%
- свободные деньги — 10%
После пополнения состояние получилось таким:
Актив А
Сейчас: 340 тыс. рублей.
Цель: 330 тыс. рублей.
Перевес: 10 тыс. рублей.
Актив Б
Сейчас: 220 тыс. рублей.
Цель: 275 тыс. рублей.
Недовес: 55 тыс. рублей.
Актив В
Сейчас: 170 тыс. рублей.
Цель: 220 тыс. рублей.
Недовес: 50 тыс. рублей.
Актив Г
Сейчас: 170 тыс. рублей.
Цель: 165 тыс. рублей.
Перевес: 5 тыс. рублей.
Свободные деньги
Сейчас: 200 тыс. рублей.
Цель: 110 тыс. рублей.
На покупки можно направить 90 тыс. рублей.
Общий недовес активов Б и В составляет 105 тыс. рублей, но потратить я могу только 90 тыс.
Если распределить доступные деньги пропорционально недовесам, получится примерно:
- 47,1 тыс. рублей на актив Б
- 42,9 тыс. рублей на актив В
Но тут появляется лотность.
Допустим, один лот актива Б стоит 12 тыс. рублей, а один лот актива В — 7,5 тыс. рублей.
Тогда реально можно купить:
- три лота Б на 36 тыс. рублей
- пять лотов В на 37,5 тыс. рублей
После округления осталось 16,5 тыс. рублей.
Теперь нужно снова проверить, какой актив сильнее недовешен, помещается ли ещё один лот и не нарушится ли целевой резерв.
И это был пример всего с четырьмя активами.
Биржа не обязана ждать мой Excel
Допустим, расчёт закончен. Я открываю приложение брокера и начинаю выставлять заявки.
Пока считал, один актив вырос. Стоимость лота изменилась, и последняя покупка уже не помещается в свободный остаток.
Или наоборот: актив подешевел, после покупки осталось больше денег, чем ожидалось.
Ещё интереснее, когда сначала нужно что-то продать.
Я посчитал ожидаемую сумму продажи, построил на её основе покупки, отправил первую заявку — а исполнилась она немного по другой цене.
Теперь весь оставшийся план формально нужно пересчитать:
- изменилась сумма свободных денег
- изменилась стоимость портфеля
- изменились фактические доли
- изменилось количество доступных лотов
Проблема оказалась не в формулах. Проблема в том, что ручной расчёт фиксирует рынок в одном состоянии, а рынок продолжает двигаться.
Несколько брокеров ломают даже правильный расчёт
Следующая сложность — портфель может быть единым в моей голове, но не в брокерских приложениях.
Например:
- один актив находится у первого брокера
- другой — у второго
- свободные рубли лежат на втором счёте
- нужную покупку я хочу совершить на первом
В сумме денег достаточно. Обычный калькулятор честно пишет: «купить».
Но на конкретном счёте денег нет.
Продажа у одного брокера не финансирует покупку у другого автоматически. Сначала нужно вывести или перевести средства. Иногда это занимает время, за которое расчёт снова меняется.
Есть и обратная ситуация: один и тот же актив находится на двух площадках. Брокеры показывают свои доли отдельно, хотя в стратегии это одна общая позиция.
Получается два разных уровня:
1. Экономическая цель по всему портфелю.
2. Техническая возможность выполнить операции на конкретных счетах.
Большинство простых калькуляторов работает только с первым уровнем.
Что мне не подошло в готовых вариантах
Приложение брокера хорошо показывает собственный счёт, но не видит остальные площадки.
Таблица позволяет построить почти любую формулу, но требует ручного обновления позиций, цен и сделок.
Обычный калькулятор долей выдаёт ориентировочные суммы, но обычно не знает:
- на каком счёте лежат деньги
- где находится конкретный инструмент
- каким лотом он торгуется
- сколько средств нужно оставить в резерве
- что уже было исполнено
- изменилось ли состояние портфеля после продажи
Робо-эдвайзер решает другую задачу: предлагает собственную модель портфеля.
Мне же не требовалось объяснять, во что инвестировать. Состав активов и допустимый риск я хотел определять самостоятельно.
Мне нужен был ответ на более скучный вопрос:
Если цели уже заданы, что именно можно сделать с текущими позициями и деньгами прямо сейчас?
В итоге я написал Rebalio
Rebalio рассматривает подключённые счета как один отслеживаемый портфель.
Пользователь сам задаёт целевую долю каждого актива и размер ликвидного резерва. После этого сервис:
1. Получает актуальные позиции, деньги и доступные котировки.
2. Объединяет позиции разных счетов.
3. Сравнивает текущую стоимость активов с целевой.
4. Переводит отклонения в возможные покупки и продажи.
5. Учитывает лотность и деньги конкретного счёта.
6. Показывает прогноз результата до выполнения операций.
Можно включить режим «Ничего не продавать». Тогда перевешенные активы остаются как есть, а новое пополнение распределяется между недовешенными позициями.
Именно этот режим чаще всего нужен мне самому: поступили новые деньги — хочу приблизить портфель к стратегии без создания лишнего оборота.
Что происходит, если нужны и продажи, и покупки
Я отказался от идеи построить один план и слепо исполнить его до конца.
Если ребалансировка включает продажи, логика работает поэтапно:
1. Сначала выполняются продажи.
2. После них состояние счетов обновляется.
3. Покупки рассчитываются заново по фактически доступным деньгам.
4. На каждом счёте выполняется только обеспеченная часть плана.
5. Если денег не хватает, результат остаётся частичным.
Это не делает ребалансировку идеально точной.
Лоты, движение цены, минимальные суммы заявок и распределение денег между брокерами никуда не исчезают.
Но мне больше не приходится самому пересчитывать остаток плана после каждого действия.
А что с доступом к брокерскому счёту?
Это был очевидный вопрос ещё до того, как я показал сервис кому-либо.
Начать можно с демонстрационного портфеля. Для него не нужны брокерские API-ключи и реальные финансовые данные. Демо открывается после обычной регистрации.
Реальный счёт можно подключить только на чтение. В таком режиме сервис получает позиции и остатки для аналитики, но не может отправлять заявки.
Торговые полномочия подключаются отдельно и не нужны для контроля долей и предпросмотра.
Перед сохранением токена показывается паспорт разрешений: что доступ действительно позволяет, что запрещает и какие возможности брокер не даёт проверить через API.
Деньги и активы продолжают храниться у брокера. Состав стратегии и запуск операций остаются за пользователем.
Чего я не решил
Чтобы не создавать неправильного впечатления, перечислю ограничения.
Rebalio:
- не определяет, нужна ли вам ребалансировка
- не выбирает лучшие акции
- не обещает повышение доходности
- не гарантирует точное попадание в доли
- не переводит деньги между независимыми брокерами
- пока не учитывает индивидуальные тарифы и комиссии с абсолютной точностью
- зависит от полноты и качества брокерских API
- поддерживает ограниченный список площадок и типов счетов
Сервис находится в бете. Поэтому я не считаю его законченной универсальной системой управления капиталом.
Но мою исходную боль он уже закрыл.
Что значит «решил раз и навсегда»
Я не решил проблему волатильности и не нашёл способ гарантированно зарабатывать на ребалансировке.
Я решил проблему ручной рутины.
Мне больше не нужно:
- сводить несколько брокерских приложений
- считать долю каждого актива на калькуляторе
- переводить проценты в рубли и лоты
- распределять остаток после округления
- помнить, на каком счёте находятся деньги
- вручную перестраивать весь план после продажи
Рынок продолжает двигаться. Просто мне больше не нужно бегать за ним с калькулятором.
Сервис называется
Rebalio. Я являюсь его разработчиком, поэтому особенно заинтересован не в похвале, а в критике самой идеи и механики.
Интересно, как эту задачу решают участники Smart-Lab:
1. Вы вообще используете целевые доли или принимаете решения ситуативно?
2. Ребалансируете продажами или преимущественно новыми пополнениями?
3. Как сводите портфель, если брокеров несколько?
4. Достаточно ли вам Excel или отдельный сервис действительно экономил бы время?
5. Готовы ли вы подключить счёт только на чтение, или даже такой доступ кажется избыточным?
Не ИИР.
Данная публикация является личным мнением автора. Мнение владельца сайта может не совпадать с мнением автора.
А на вопросы в конце статьи сможете ответить?