Actualizaciones de posición API y stream de mark price
Resumen
Propr anuncia cambios en los datos de posición para desarrolladores API: los eventos position.* ahora solo se activan por cambios de estado y se añade un stream global mark.updated. Los desarrolladores deben cachear el estado y recalcular métricas como PnL no realizado en el cliente usando las funciones publicadas en TypeScript y Python.
@Builders
Cambio importante para desarrolladores API: actualizaciones de posición + nuevo stream de mark price
Hemos cambiado el flujo de datos de posición en tiempo real a través de WebSocket. Si consumes eventos position.* o renderizas PnL/equity/liq/drawdown en vivo, esto te afecta. Por favor, lee antes de tu próximo despliegue.
Qué ha cambiado
Ya no enviamos una actualización completa de posición en cada tick del mercado. Era demasiada carga y no es el estándar de los exchanges. Hemos adoptado el patrón estándar:
-
Eventos de posición semi-regulares. position.opened / position.updated / position.closed ahora se activan por cambios de estado (ejecuciones, cambios de margen, cierre), no por cada movimiento de precio. Cachea los campos que contienen.
-
Un nuevo stream autoritativo de mark price. mark.updated es un feed global (sin userId) que contiene nuestro mark autoritativo interno para cada activo que se movió, agrupado a ~4Hz. Todo lo que depende del precio se deriva en el cliente a partir de este feed y tu estado de cuenta/posición cacheado.
Lo que ahora calculas tú (o mediante un builder)
PnL no realizado, nocional, ROE, equity, wallet cruzada, ratio de margen, precio de liquidación aislado y cruzado, drawdown usado, pérdida diaria usada, % de objetivo de beneficio y precio de brecha. Son funciones puras del último mark + tu estado cacheado. Publicamos las funciones exactas que usa nuestra UI (TypeScript y Python) en la documentación, para que tus números coincidan tick a tick con la app.
El patrón
-
Cachea el estado de los eventos, position.opened/.updated (entryPrice, quantity, positionSide, leverage, marginMode, marginUsed, exchange, asset), account.updated (balance, isolatedPositionMargin, highWaterMark), y tu configuración de desafío/financiación + métricas diarias vía REST.
-
En cada mark.updated, actualiza tus marks y recalcula. Renderiza.
-
Propr sigue ejecutando las comprobaciones reales de liquidación y brecha en el servidor; tus valores locales son solo para visualización.