Portfolio Balancer: Иерархическая система управления инвестициями
Представьте, что у вас есть сложная система управления инвестициями, где каждый актив живет в своем "доме" — кошельке, а все эти дома организованы в четкую иерархическую структуру, как файловая система на компьютере. Именно такой подход мы и рассмотрим.
Архитектура системы: три типа сущностей
В основе системы лежат три ключевых понятия, которые работают как строительные блоки:
Wallet (кошелек) — это самый простой элемент, который содержит только один тип актива. Думайте о нем как о банковской ячейке, где лежат только доллары или только биткоины. Никакого смешения — один кошелек, один актив.
Asset (актив) — это конкретная монета, акция или любой другой финансовый инструмент. Bitcoin, Apple, доллары США — все это активы.
Portfolio (портфель) — это как папка в файловой системе, которая может содержать другие папки (портфели) или файлы (активы). Портфель группирует связанные элементы по какому-то принципу.
Древовидная структура: от общего к частному
Система организует все активы в виде дерева с четкой иерархией:
Корень дерева — это все ваши активы целиком. Представьте это как главную папку "Мои инвестиции".
Первый уровень — активы разделены по пользователям. Если система обслуживает несколько человек, у каждого будет своя ветка.
Второй уровень — активы группируются по биржам. У одного пользователя могут быть активы на Binance, Coinbase, в Сбербанке и так далее.
Третий уровень — аккаунты на конкретной бирже. На одной бирже у вас может быть спотовый аккаунт, фьючерсный, сберегательный.
Четвертый уровень — группировка по секторам или стратегиям. Например, "Технологические акции", "Криптовалюты", "Стейблкоины" — как тематические папки.
Пятый уровень — конкретные кошельки с активами. Здесь уже лежат ваши Bitcoin, Ethereum, доллары.
Два состояния системы: реальность и мечты
Система работает с двумя параллельными деревьями:
Real Portfolio Tree (дерево реальных активов) — это то, что у вас есть прямо сейчас. Система получает эти данные напрямую с бирж через API. 1.5 Bitcoin на Binance, 100 акций Apple в Сбербанке, 5000 долларов на Coinbase — все как есть.
Desired Portfolio Tree (дерево желаемых активов) — это ваш план, выраженный в процентах. Вы говорите: "Хочу 60% в акциях, 30% в криптовалютах, 10% в наличных". Система потом сама высчитает конкретные суммы.
Функция балансировки: от простого к сложному
Самая базовая функция балансировки работает как простое сравнение двух деревьев:
Diff-алгоритм сравнивает реальное и желаемое состояние, находит разности и говорит: "Продай 0.3 Bitcoin, купи акций на $15,000". Это как калькулятор, который показывает, что нужно сделать для достижения цели.
Но функция может быть и гораздо сложнее. Продвинутая балансировка учитывает не только что покупать и продавать, но и где это делать. Она может сказать: "Переведи Bitcoin с Binance на Coinbase, потому что там лучше курс для продажи" или "Выведи доллары из банка на биржу для покупки акций".
Diff Tree: магия сравнения деревьев
Diff Tree — это результирующее дерево, которое показывает разности между реальным и желаемым состоянием портфеля. Представьте его как план действий, где каждый узел содержит инструкции о том, что нужно сделать.
В каждом узле diff-дерева содержится информация:
- Текущее количество актива
- Желаемое количество актива
- Разность (сколько нужно купить или продать)
- Операция (buy/sell/hold)
Например, если у вас есть 1 Bitcoin, а нужно 0.7, то в diff-дереве для этого узла будет указано: "Продать 0.3 Bitcoin". Если у вас 50% в акциях, а нужно 60%, система покажет: "Купить акций на сумму X долларов".
Алгоритм построения diff-дерева работает рекурсивно — сначала вычисляет разности на верхних уровнях (портфели), затем спускается к конкретным активам. Это позволяет понять не только что покупать/продавать, но и в какой последовательности это делать.
Diff-дерево становится основой для выполнения операций балансировки. Сначала система выполняет операции продажи (освобождает средства), затем операции покупки (инвестирует освободившиеся средства в недовешенные активы).
Виртуальные деревья: когда нужна сложная логика
Самая интересная часть системы — возможность создавать виртуальные деревья для специальных задач. Представьте, что у вас есть арбитражный бот, который должен держать одинаковое количество Litecoin на двух разных биржах для поиска ценовых различий.
Вместо одного кошелька "LTC 100%" система создает два отдельных кошелька: "LTC 10%" и "LTC 90%". На кошелек с 10% ссылается виртуальное дерево арбитражного бота. Система помечает эти 10% как заблокированные и указывает, кем именно — арбитражным ботом.
Это как если бы вы в своем банковском приложении могли создать виртуальные "конверты" для разных целей, но деньги при этом физически лежали бы на одном счете.
Практическое применение
Такая система решает реальные проблемы инвесторов:
Автоматизация рутины — не нужно вручную считать, сколько чего продать и купить. Система все рассчитает сама.
Контроль над сложными стратегиями — можно одновременно управлять несколькими торговыми ботами, арбитражными стратегиями, долгосрочными инвестициями.
Прозрачность — вся структура активов видна как на ладони. Понятно, где что лежит и зачем.
Гибкость — можно легко менять стратегии, перераспределять активы между биржами, добавлять новые инструменты.
Эта система превращает хаотичное управление множеством активов на разных платформах в структурированный, понятный процесс. Как превратить беспорядок в шкафу в аккуратно организованную гардеробную систему — только для инвестиций.
Заключение
Portfolio Balancer демонстрирует, как современные технологии могут упростить сложные инвестиционные процессы. Система показывает, что управление портфелем — это не магия, а структурированный подход с четкими алгоритмами и понятной логикой.
Посмотреть демонстрацию системы можно по адресу: https://portfolio-balancer-tau.vercel.app/ru
Исходный код проекта доступен на GitHub: https://github.com/suenot/portfolio-balancer
Цитирование
@software{soloviov2025portfoliobalancer,
author = {Soloviov, Eugen},
title = {Portfolio Balancer: Иерархическая система управления инвестициями},
year = {2025},
url = {https://marketmaker.cc/ru/blog/post/portfolio-balancer},
version = {0.1.0},
description = {Описание системы управления инвестициями Portfolio Balancer, которая организует активы в иерархическую структуру, подобную файловой системе, для упрощения сложных инвестиционных процессов.}
}
MarketMaker.cc Team
Количественные исследования и стратегии