Cómo mantener un libro de órdenes en vivo con actualizaciones WebSocket
Resumen
Este ejemplo describe un cliente WebSocket que se conecta a una bolsa de derivados, se autentica, se suscribe a flujos públicos del libro de órdenes y, tras autenticarse, solicita flujos privados relacionados con la cuenta. Su bucle de trabajo recibe mensajes, llama a controladores de eventos y se reconecta tras fallos del socket; otro hilo envía tramas ping periódicas. El ejemplo guarda los niveles de compra y venta en diccionarios indexados por identificadores de órdenes y los actualiza con instantáneas parciales, inserciones, cambios y eliminaciones.
Después de cada mensaje del libro de órdenes, ordena las compras de mayor a menor y las ventas de menor a mayor; luego copia hasta cinco niveles de precios y cantidades a una estructura similar a un tick. Esto ilustra una forma básica de mantener y presentar un libro de órdenes en vivo. No incluye mediciones de latencia, señales de trading ni resultados de ejecución, y el fragmento no describe salvaguardas de secuenciación o recuperación ante interrupciones en las actualizaciones. Además, sus credenciales de autenticación codificadas directamente hacen que el ejemplo no sea apto para desplegarlo tal cual.
Ideas clave
- El cliente se autentica mediante WebSocket antes de suscribirse a flujos privados.
- Un hilo de trabajo recibe mensajes y se reconecta tras errores del socket, mientras otro envía pings periódicos.
- Las instantáneas y los mensajes incrementales del libro de órdenes actualizan mapas de compras y ventas indexados por identificadores de órdenes.
- Los cinco mejores niveles se seleccionan ordenando las compras de mayor a menor precio y las ventas de menor a mayor.
- El ejemplo no aporta pruebas de rendimiento y no trata la recuperación ante interrupciones en las actualizaciones ni la gestión segura de credenciales.
Etiquetas
Procede de una colección privada de cursos; el original no está publicado.