Cuando el libro de órdenes de las pantallas de trading se congela o da saltos con mucha actividad en el mercado, el culpable suele ser el feed de datos de mercado. Pierde actualizaciones a la entrada, monta mal el libro o lo envía demasiado despacio a cientos de pantallas. Mide primero tu hora de más actividad y después pon a prueba a cada empresa con una grabación de ese día.
Si el libro de órdenes de tus pantallas de trading se congela, da saltos o muestra precios imposibles cuando hay mucha actividad en el mercado, el fallo suele estar en uno de tres sitios. Las actualizaciones se pierden donde entra el feed del exchange, el libro se monta mal o llega demasiado despacio a cientos de pantallas. Mide tu hora de más actividad antes de contratar a nadie y después pon a prueba a cada empresa que consideres con una grabación de ese día.
La respuesta corta: un exchange numera cada actualización que envía. Un sistema bien construido detecta al instante el número que falta, marca el libro como desactualizado y lo reconstruye. Los problemas empiezan cuando el hueco pasa desapercibido o la reconstrucción tarda segundos, o cuando una conexión lenta retiene a todos los traders. Graba el feed de tu día de más actividad y convierte su reproducción en la prueba que toda empresa tiene que superar: antes de comprar un producto, y como criterio de aprobación de la primera fase cuando un equipo construye para ti.
Seguir leyendo
Aparece en los momentos de más actividad, como un anuncio de un banco central o la apertura del mercado. El libro de la pantalla se detiene un segundo o dos y luego da un salto. Las órdenes canceladas siguen a la vista. A veces el precio más alto que ofrece un comprador queda por encima del precio más bajo que pide un vendedor, lo que se llama libro cruzado. En un solo exchange, fuera de las subastas de apertura y de cierre, esas órdenes se ejecutarían entre sí al instante. Así que un libro cruzado de un solo exchange en tu pantalla significa que tu copia de ese libro está mal.
Después, a soporte le llegan capturas de pantalla de dos traders que ven libros distintos para el mismo instrumento. O un trader discute el precio al que se ejecutó una orden, porque la pantalla mostraba otro.
El feed del libro de órdenes de un exchange es un flujo de pequeños cambios: una orden añadida, una orden cancelada, una operación. Tu sistema parte de una copia completa del libro, llamada snapshot, y aplica los cambios en orden. Cada cambio lleva un número, así que se puede detectar el que falta. La especificación de Nasdaq para su feed TotalView-ITCH 5.0 dice que el feed «está formado por una serie de mensajes secuenciados», es decir, numerados en orden.
Cuando hay mucha actividad en el mercado, el flujo de cambios se dispara. Algunos se pierden por el camino o dentro de tus propios servidores, y otros llegan desordenados. Si el sistema no detecta el hueco, aplica lo que llega y muestra un libro que ya no coincide con el del exchange. Si detecta el hueco pero tarda segundos en recuperarse, la pantalla se queda congelada.
Los exchanges dan por hecho que sus clientes perderán actualizaciones. La documentación de CME Group para su feed MDP 3.0 dice que, tras un hueco, «debe suponerse que es posible que todos los libros mantenidos en el sistema del cliente ya no tengan el estado correcto y más reciente».
Son tres sitios, y cada uno necesita su propio arreglo. Los ingenieros llaman fan-out al tercero, porque un único flujo de actualizaciones se reparte en abanico a muchas pantallas. El artículo técnico enlazado arriba trata los tres en detalle.
El primer sitio es la entrada del feed, donde llega el feed del exchange. Algunos exchanges ofrecen formas de recuperar los datos perdidos. Uno de los protocolos de entrega de Nasdaq, MoldUDP64, permite a los receptores «detectar y volver a solicitar los paquetes perdidos». CME envía su flujo por duplicado, por líneas llamadas A y B, y mantiene un feed aparte de snapshots para poner los libros al día. Nada de esto sirve si tu sistema no detecta el hueco.
Después se monta el libro, y aquí el peligro es un cambio aplicado dos veces, fuera de orden o sobre el snapshot equivocado. Binance, un exchange de criptomonedas, detalla en su guía los pasos exactos para empalmar un snapshot con el flujo en vivo. Un libro montado sin ellos sigue mostrando precios y parece correcto, pero los precios están mal.
Por último viene el fan-out, donde el libro sale hacia cientos de sesiones de traders, una por cada pantalla conectada. Un trader con una conexión móvil débil, o un terminal que se ha atascado, lee las actualizaciones despacio. Si el servidor espera a esa sesión, todas las demás sesiones esperan también. Dejar que la cola de actualizaciones pendientes de esa sesión crezca sin límite no es mejor, porque el servidor se queda sin memoria y cae para todos.
En un sistema bien construido, el servidor ordena las actualizaciones una sola vez y envía el mismo resultado a todas las sesiones. Una sesión que se queda atrás o bien recibe la foto más reciente del libro y se salta los pasos intermedios, o bien el servidor la desconecta indicando el motivo y la pantalla se vuelve a conectar con una copia nueva. Un feed puede romperse en más de un sitio a la vez.
Toma la hora de más actividad del último mes y reúne estas cifras de esa hora:
Después graba el feed en bruto de un día de mucha actividad tal como llegó, con la hora de llegada de cada paquete. Reproducir esa grabación a velocidad real y más rápido es la prueba que planteas a cada empresa de tu lista y que repites después de cada arreglo.
El software que recibe el feed de un exchange y mantiene el libro se llama feed handler. Tienes tres vías, y tus mediciones deberían apuntar a una. Las dos últimas se pueden combinar.
Arregla el feed handler que tienes cuando las mediciones apuntan a un fallo claro, como huecos que pasan desapercibidos o una reconstrucción lenta, y las personas que conocen el código siguen en la empresa.
Un feed handler ya hecho es software con licencia que se conecta a un exchange, detecta los huecos y entrega a tu sistema un libro correcto y actualizado. Un feed gestionado va más allá: un proveedor de datos de mercado se conecta a los exchanges, y tú recibes de él un solo flujo en un solo formato.
Reconstruye la capa que envía los datos a los traders cuando la entrada del feed funciona pero el problema sigue. Los traders siguen viendo libros distintos, una sesión lenta arrastra a las demás o tienes previsto atender a muchas más sesiones que hoy.
Somete a cada empresa de tu lista a las mismas cinco pruebas:
amBrain construye infraestructura de trading algorítmico: ejecución de órdenes, datos de mercado y controles de riesgo pre-trade.
Una línea del sitio web de amBrain dice: «Desarrollo de terminales de trading, sistemas de gestión de órdenes e integración con exchanges por protocolo FIX».
amBrain diagnostica sistemas lentos en trading y ad tech: la plataforma en funcionamiento se mide de extremo a extremo y el informe indica a dónde se va el tiempo.
amBrain desarrolla software desde 2019. Describe a su equipo en una línea: «Un equipo de hasta 40 personas, alrededor del 75% de ellas senior». Trabaja en tres formatos: entrega completa, un equipo dedicado o ingenieros integrados en tu equipo. El cliente conserva la propiedad completa del producto y del código, salvo los componentes reutilizables de amBrain.
Este artículo no es un caso de estudio y no describe ningún trabajo para clientes. No cita cifras de latencia de ningún sistema construido por amBrain, ni precios ni plazos.
Si amBrain está en tu lista corta, hazle las mismas cinco preguntas que a cualquier otra empresa, y convierte tu grabación en el criterio de aprobación de cualquier trabajo que acuerdes con ella.
Traiga su arquitectura actual y el modo de fallo que le preocupa, y lo repasaremos juntos en media hora.