Portfolio Rebalancer
Веб-приложение для ребалансировки инвестиционного портфеля
🎯 Задача
StandartSoft разработала собственный открытый инструмент для частных инвесторов, которым требуется простой и прозрачный способ поддерживать целевые веса активов. Готовые решения либо платные, либо избыточно сложны — Portfolio Rebalancer решает задачу в браузере без регистрации и установки.
Ключевые требования:
- Работа полностью в браузере, без бэкенда
- Поддержка акций и кэша в единой модели
- Автоматические котировки через Finnhub API
- Сохранение портфеля локально (JSON-файл)
- Русскоязычный интерфейс, минималистичный дизайн
💡 Реализованное решение
📊 Главный экран — управление портфелем
Основной интерфейс: портфель акций, кэш, структура и таблица ребалансировки
Интерфейс разделён на две рабочие зоны:
Левая зона — портфель:
Вкладки Акции и Кэш позволяют раздельно управлять рисковыми активами и наличными. По каждой позиции отображаются: тикер, количество, актуальная цена, стоимость, фактический %, целевой % и отклонение (Δ). Кнопка «Обновить» забирает текущие котировки из Finnhub. Поддерживается выбор валюты (USD и другие).
Правая зона — структура:
Интерактивная круговая диаграмма отображает долю каждой позиции. Рядом — горизонтальные индикаторы «Факт vs цель» для визуального контроля отклонений.
Нижняя зона — ребалансировка:
Таблица автоматически рассчитывает рекомендации: сколько акций купить или продать, сколько кэша добавить или вывести, чтобы приблизить портфель к целевым весам. Каждое действие помечено направлением (↗ Купить / ↙ Продать).
📖 Встроенная справка
Экран справки: объяснение Portfolio Drift и пошаговая инструкция
Для пользователей без опыта ребалансировки предусмотрен подробный справочный раздел:
- Что такое Portfolio Drift — формула расчёта и три зоны действия (< 5% / 5–10% / > 10%)
- Пошаговая инструкция — 7 шагов от добавления позиции до сохранения портфеля
- Ссылка на исходный код на GitHub
⚙️ Технические детали
Расчёт Portfolio Drift:
Drift = 0.5 × Σ|текущий_% − целевой_%|
Показывает долю портфеля, которую нужно переложить для достижения целевых весов. Индикатор суммы целевых % (Σ) в шапке таблицы предупреждает, если веса не равны 100%.
Режимы цены Finnhub API:
- «Цена закрытия» — для стабильного ежедневного расчёта
- «Последняя сделка» — для работы в реальном времени во время торгов
Сохранение данных:
Портфель сохраняется кнопкой «Сохранить» в JSON-файл на компьютер пользователя. Загрузка — кнопкой «Загрузить». Данные не передаются на сервер.
⚙️ Технологический подход
- Frontend: TypeScript, HTML5/CSS3 — без фреймворков, быстрая загрузка
- API: Finnhub — биржевые котировки в реальном времени
- Хранение: Локальный JSON-файл, без бэкенда
- Деплой: GitHub Pages, доступен по прямой ссылке
- Лицензия: Open Source, исходный код открыт
🚀 Результат
Инструмент опубликован и доступен бесплатно. Решает задачу ребалансировки портфеля в браузере без регистрации и установки стороннего ПО.
Ключевые характеристики:
- 🌐 Работает полностью в браузере — установка не нужна
- ⚡ Обновление котировок в один клик
- 🔒 Данные хранятся только локально
- 📦 Открытый исходный код на GitHub
Клиент: StandartSoftPlus (собственный продукт)
Стек: TypeScript, HTML/CSS, Finnhub API
Статус: Опубликован, Open Source
Платформа: Web (все современные браузеры)