Skip to main content
A veces un trader mira una orden ejecutada y le parece que el precio de ejecución no cuadra, o mira su línea de PnL y cree que el número no coincide con un cálculo hecho a mano. Esta página explica las fuentes habituales de discrepancias aparentes y qué enviarnos si, después de leerla, sigues creyendo que hay un bug real.

Cómo funciona la casación, a grandes rasgos

Las órdenes en Intention se casan dentro de IntentionKernel contra un libro central de órdenes límite con prioridad precio-tiempo estricta. La secuenciación es determinista: cada réplica de la cadena reproduce el mismo orden de mensajes y, por tanto, la misma secuencia de ejecuciones. La descripción completa está en la página del Despachador de transacciones de orden, y la vista de máquina de estado en la de IntentionKernel. A efectos de un ticket sobre una ejecución, la propiedad que importa es que no hay ventaja de flujo de órdenes privado ni motor de casación fuera de la cadena; tu orden y la orden que la ejecutó quedan las dos registradas en el flujo canónico de bloques.

Por qué el precio de ejecución puede diferir del precio en pantalla

El número que había en pantalla cuando pulsaste “comprar” no es el número al que te ejecutan, y eso es normal.
  • Deslizamiento (slippage). Una orden de mercado, o una orden límite ejecutable, recorre el libro hasta completar todo el tamaño o hasta topar con el límite de precio. Si el primer nivel del libro tenía poca profundidad, el precio medio efectivo puede quedar bastante peor que la mejor cotización que viste un momento antes.
  • Ejecuciones que se cuelan por medio. Las órdenes de otros participantes pueden caer en el mismo bloque, o en el bloque que va entre tu última actualización de la interfaz y el bloque que incluye tu orden. Esas ejecuciones consumen liquidez y desplazan el precio efectivo de la tuya.
  • Latencia entre la instantánea y el envío. El precio en pantalla es una instantánea; para cuando tu orden se secuencia y se casa, el libro puede haberse movido. No es un fallo del motor de casación; es consecuencia del tiempo finito de viaje entre tú y la cadena.

PnL no realizado frente a PnL realizado

  • El PnL no realizado refleja el valor a mercado de tu posición abierta al precio de marca actual. Se mueve de forma continua conforme se mueve la marca, y es una estimación en curso, no una cifra saldada.
  • El PnL realizado es el resultado acumulado de las posiciones que ya has cerrado. No se mueve con la marca. Solo cambia cuando reduces o cierras una posición.
Confundir uno con el otro es la causa más común de los avisos de “mi PnL está mal”. Si el número en cuestión cambiaba mientras lo mirabas, casi con seguridad es el no realizado.

Precio de marca frente a precio de la última operación

El precio de marca no es el precio de la última operación. Es una referencia suavizada que se usa para la contabilidad del margen, el PnL no realizado, la financiación y las liquidaciones, construida para resistir la manipulación de una sola operación. La página de Precio de marca describe cómo se construye. El precio de la última operación es, sin más, el precio al que se produjo la ejecución más reciente. Pueden divergir, sobre todo en mercados rápidos, y esa divergencia es deliberada: usar la última operación para el margen haría las liquidaciones trivialmente manipulables. Los pagos de financiación también se calculan contra la marca; consulta Financiación si tu línea de PnL realizado contiene flujos de financiación que no esperabas.

Leer la atribución por ejecución

Cada ejecución se emite con un identificador, un precio, una cantidad, una comisión y una posición de secuenciación. Puedes obtenerlos desde la API o desde el flujo de ejecución. Los registros por ejecución son la respuesta canónica a “qué pasó con mi orden”; el resumen de la interfaz es una representación cómoda de esos registros.

Qué enviarnos si sigue pareciendo erróneo

Escribe a contact@intention.xyz con:
  • Tu ID de orden y, si lo tienes, el ID de la ejecución.
  • El precio y el tamaño esperados, y en qué basabas esa expectativa.
  • El precio y el tamaño observados en la app o en la API.
  • La altura de bloque o la marca de tiempo UTC en la que se saldó la ejecución.
  • Una descripción de una línea de la discrepancia.
Reproduciremos el paso de casación a partir del bloque y te explicaremos qué hizo el motor en realidad.