Обновления позиций API и поток Mark Price
Краткое содержание
Propr объявляет об изменениях в данных о позициях для API: события position.* теперь срабатывают только при изменении состояния, добавлен глобальный поток mark.updated. Разработчики должны кэшировать состояние и пересчитывать нереализованный PnL и другие метрики на клиенте, используя опубликованные функции TypeScript и Python.
@Builders
Важное изменение для разработчиков API: обновления позиций + новый поток mark price
Мы изменили способ передачи данных о позициях через WebSocket. Если вы используете события position.* или отображаете PnL/equity/liq/drawdown в реальном времени, это касается вас. Пожалуйста, ознакомьтесь перед следующим развертыванием.
Что изменилось
Мы больше не отправляем полное обновление позиции при каждом тике рынка. Это создавало избыточную нагрузку, и это не соответствует стандартам бирж. Мы перешли на стандартный шаблон:
-
Полурегулярные события позиций. position.opened / position.updated / position.closed теперь срабатывают при изменении состояния (исполнения, изменения маржи, закрытие), а не при каждом изменении цены. Кэшируйте поля, которые они содержат.
-
Новый авторитарный поток mark price. mark.updated — это глобальный фид (без userId), содержащий наш внутренний авторитарный mark-прайс для каждого актива, обновляемый с частотой ~4Гц. Все, что зависит от цены, вычисляется на стороне клиента на основе этого фида и вашего кэшированного состояния счета/позиции.
Что теперь вычисляете вы (или через билдер)
Нереализованный PnL, ноционал, ROE, equity, кросс-кошелек, коэффициент маржи, цена ликвидации (изолированная и кросс), использованный drawdown, использованный дневной убыток, % цели по прибыли и цена пробоя. Это чистые функции от последнего mark + вашего кэшированного состояния. Мы публикуем точные функции, которые использует наш UI (TypeScript и Python), в документации, чтобы ваши цифры совпадали с приложением тик в тик.
Шаблон
-
Кэшируйте состояние из событий, position.opened/.updated (entryPrice, quantity, positionSide, leverage, marginMode, marginUsed, exchange, asset), account.updated (balance, isolatedPositionMargin, highWaterMark), а также вашу конфигурацию челленджа/финансирования + дневные метрики через REST.
-
При каждом mark.updated обновляйте свои mark-цены и пересчитывайте. Рендерите.
-
Propr по-прежнему выполняет реальные проверки ликвидации и пробоя на сервере, ваши локальные значения предназначены только для отображения.