Управление позициями
Портфель занимает правую панель интерфейса. Он позволяет отслеживать открытые позиции, рассчитывать реальный PnL на основе исторических данных о ставках финансирования и вести учёт закрытых позиций с реализованным PnL.

Сводка портфеля
В верхней части панели отображаются:
| Показатель | Описание |
|---|---|
| Value / Invested | Общая текущая рыночная стоимость или объём инвестиций по всем позициям |
| Active PnL | Совокупный PnL по всем открытым позициям (зелёный = прибыль, красный = убыток) |
| Realized PnL | Общий PnL по закрытым позициям |
| Combined | Active + Realized PnL (отображается при наличии обоих) |
Действия в заголовке
| Кнопка | Описание |
|---|---|
| ⛶ Expand | Открывает Полноэкранный режим с детальной таблицей и графиками PnL по каждой позиции |
| ↻ Refresh | Пересчитывает PnL для всех позиций с бэкенда (загружает свежие данные по финансированию) |
| PnL × | Очищает все кэшированные данные PnL (требует подтверждения) |
Карточки позиций
Каждая позиция отображается в виде карточки:
- Symbol — название тикера (кликабельно — переходит к графику)
- Exchanges — биржа для лонга и биржа для шорта
- Amount — размер инвестиции ($) или текущая рыночная стоимость с дельтой цены (%)
- Token Quantity — количество токенов в позиции
- Opening Cost — комиссии и проскальзывание при открытии
- PnL — текущая прибыль или убыток (кликабельно — открывает полноэкранный режим с развёрнутой позицией)
- Entry Date — дата открытия позиции
Каждая карточка предоставляет действия редактирования и удаления.
Добавление позиции
Из панели деталей тикера
Самый быстрый способ — нажмите + Portfolio в окне Детали тикера. Биржи для лонга и шорта будут автоматически заполнены лучшей парой из текущего анализа.
Поля формы позиции
| Поле | Описание |
|---|---|
| Symbol | Название тикера (только для чтения, устанавливается из сканирования) |
| Long Exchange | Биржа для лонга (выпадающий список со всеми доступными биржами) |
| Short Exchange | Биржа для шорта (выпадающий список со всеми доступными биржами) |
| Amount ($) | Сумма инвестиции на одну ногу в долларах США |
| Token Quantity | Количество токенов в позиции |
| Price ($) | Текущая цена токена (автозагрузка из API бирж или CoinGecko) |
| Opening Cost ($) | Расходы на открытие (торговые комиссии, проскальзывание на обеих биржах) |
| Entry Date | Дата открытия позиции (максимум = сегодня) |
Связанные поля: Amount и Token Quantity
Поля Amount и Token Quantity связаны. Измените одно — второе пересчитается автоматически на основе текущей цены токена. Цена загружается из API бирж (Binance, Bybit, OKX, Gate.io, Bitget, KuCoin, Hyperliquid) с резервным вариантом через CoinGecko.
Валидация бирж
- Два выпадающих списка бирж взаимоисключающие — нельзя выбрать одну и ту же биржу для лонга и шорта
- В режиме добавления: показаны только биржи, доступные для текущего тикера
- В режиме редактирования: доступны все 27+ бирж
Автозагрузка цены
При смене биржи для лонга или шорта форма автоматически загружает текущую цену токена:
- Параллельно опрашиваются API бирж (выбранные биржи для лонга и шорта)
- Если обе ответили: цены усредняются
- Если одна ответила: используется эта цена
- Если обе не ответили: резервный запрос через CoinGecko
Редактирование позиции
Нажмите иконку редактирования на любой карточке позиции, чтобы открыть форму в режиме редактирования. Все поля доступны для изменения. Нажмите Save для сохранения или Cancel для отмены.
Token Quantity
При редактировании изменение поля Amount или Tokens пересчитает другое на основе текущей цены, а не цены входа. Проверьте значения перед сохранением.
Обновление PnL
Нажмите кнопку ↻ (обновить), чтобы пересчитать PnL для всех позиций. Процесс обновления:
- Загружает историю ставок финансирования с бэкенда для каждой позиции (от даты входа до текущего момента)
- Рассчитывает реальный PnL с помощью интегрирования по Риману почасовых ставок
- Загружает текущие цены токенов с бирж
- Обновляет кэш последовательно (данные появляются по мере завершения каждой позиции)
Запросы отправляются с интервалом 800мс для соблюдения лимитов API. Неудачные запросы повторяются до 3 раз.
Полную формулу PnL см. в разделе Формулы и расчёты.
Opening Cost
Opening Cost вычитается из PnL. Обязательно учтите торговые комиссии на обеих биржах и проскальзывание при открытии позиции.
Закрытие позиции
При удалении позиции:
- Она перемещается в раздел Закрытые позиции внизу портфеля
- Реализованный PnL на момент закрытия сохраняется
- Дата закрытия фиксируется
Раздел закрытых позиций
- Сворачиваемый список всех ранее закрытых позиций
- Каждая запись показывает: символ, биржи, реализованный PnL, дату закрытия
- Удалить из истории — удалить отдельную закрытую позицию
- Очистить всю историю — удалить все закрытые позиции (требует подтверждения)
Реализованный PnL закрытых позиций отображается отдельно в сводке портфеля и учитывается в итоге Combined.
Автосинхронизация с Telegram
При настроенных уведомлениях в Telegram портфель автоматически синхронизируется с сервисом уведомлений при каждом изменении позиций (с задержкой 1,5 секунды для группировки быстрых изменений).