¿Cómo se produce la propagación de Market Data?

Se preguntaron cómo un mercado comunica la información de precios de todos los activos que permite operar, y qué procesamiento se realiza sobre esa información para que veamos siempre los precios correctos en pantalla ?
estrategia de trading
Tiempo de lectura: 5 minutos
Table of Contents

Se preguntaron cómo un mercado comunica la información de precios de todos los activos que permite operar, y qué procesamiento se realiza sobre esa información para que veamos siempre los precios correctos en pantalla? La cantidad de productos que pueden operarse en un mercado suele ser muy alta. Además, si es un mercado con mucha liquidez, la información de precios cambia muy frecuentemente.

Esto deriva en que la cantidad de información a transmitir es muchísima. Asegurarse de que todos los participantes reciban prácticamente al mismo tiempo información precisa para garantizar la correcta operatoria se vuelve un desafío muy interesante, e involucra a ambas partes: el mercado y quienes operan en él. 

ArQuants oficia como suscriptor frente a los mercados. Esto nos lleva a la tarea de escuchar y comunicar a las estrategias de trading información precisa en el menor tiempo posible. Les contamos como lo hacemos!

Solicitando información de precios al mercado

El mercado le plantea a sus participantes dos alternativas para consultar los precios de un activo:

A) Solicitando una foto: el mercado le envía un único Snapshot con el book completo en ese momento. 

B) Realizando una suscripción: el mercado envía un Snapshot inicial y ante cada cambio de precios le remitirá al suscriptor la nueva conformación de precios, a través de un Full Refresh o un Incremental Refresh dependiendo del tipo de suscripción. Snapshot y Full Refresh implican enviar el libro completo ante cada cambio. Incremental Refresh implica notificar qué cambio exacto se dió en el libro.

Comparemos cómo sería una suscripción a market data para AY24D con Full Refresh y Incremental Refresh. El mercado responde con un Snapshot para que el participante reciba el book completo.
Si se hubiese solicitado una foto única, ya estaría finalizada la comunicación. Al ser una suscripción, el mercado deberá notificar cada vez que esa información de precios cambie

Si la suscripción es Full Refresh, cuando cambie el precio o la cantidad de algún nivel del bid o el offer, el mercado volverá a enviar la foto completa. Esto es poco eficiente, ya que por un cambio en un nivel de precios, comunicará nuevamente los restantes 9 niveles. Si la suscripción es Incremental Refresh, el mercado sólo comunicará el nivel de precios que está cambiando. Es muchísima menos información (un 10% aproximadamente).

Pero seguramente se estarán preguntando ¿Cómo hace esto? Pués bien, simplemente enviando un mensaje que dice que una determinada posición se Agrega, Elimina, o Modifica. Si el mercado indica Agregar en la posición 3 un bid por 1000 a 28.74, se agrega esa información en la posición 3 y los niveles de precios que se encontraban de la posición 3 hacia abajo deben descender un nivel, y el que estaba en el último nivel, olvidarse.

Si el mercado indica Eliminar en la posición 1 un offer, los niveles de precios que se encontraban de la posición 1 hacia abajo deben ascender.

El mensaje anterior puede estar seguido de un mensaje que indique Agregar en la posición 5 del offer (la última), un nivel de precios que pudiese estar oculto.

Si alguien se anota en el offer a 28.82 por un tamaño de 1000, el mercado indicará Cambiar la posición 2 a cantidad 1123 y precio 28.82.

Optimizando la información propagada

Los mercados se interesan por propagar la información de precios de la manera más óptima posible. La opción es suscribirse a la market data de un activo mediante Incremental Refresh. Esto tiene el desafío para el participante de mantener actualizado el book de precios, pero resulta en una mejora sustancial en el tiempo de procesamiento de la información. A modo de ejemplo, les muestro un video del mensaje FIX del tipo W (MarketDataSnapshotFullRefresh) y una captura de un mensaje del tipo X (MarketDataIncrementalRefresh). Noten la diferencia de información en cada uno de ellos

Un mensaje del tipo full snapshot transmite mayor cantidad de información que uno increméntal, aunque gran parte de esa información ya es conocida por quien la recibe

Acá va la captura del MarketDataIncrementalRefresh. Gran diferencia no? El Incremental Refresh transmite la misma información de manera mas optima

Estas conversaciones se dan a nivel software entre los mercados y las aplicaciones que permiten cada día realizar la operatoria

Estas conversaciones se dan a nivel software entre los mercados y las aplicaciones que permiten cada día realizar la operatoria. Por esto, adquiere importancia la manera en que un mercado propaga la información. En el próximo hilo vamos a analizar exactamente que información tienen adentro cada uno de estos mensajes.

<strong>Por</strong> Juan I. Bais
Por Juan I. Bais

Ingeniero de sistemas de la UNICEN y Co founder de TradeSpark.

Compartir esta noticia
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp

Otros Artículos

Suscríbete a nuestro Newsletter
No te pierdas las últimas noticias del mercado.

Algorithmic Process Automation (APA)

Esta es una “caja” de estrategias para el operador o trader, que le permite llevar adelante la optimización y minimización de errores, en la ejecución de tareas repetitivas dentro de una mesa de operaciones. Mejora de este modo la productividad y eficiencia del equipo de trabajo en el accionar diario.

Estrategias

Realice operaciones de canje entre dólar mep y cable mediante la operatoria de bonos o acciones. Para utilizar esta estrategia, debes configurar la cantidad de dólar cable a operar, el tipo de operación (compra o venta), el precio al que se desea realizar, y los títulos que se emplearán para realizar la operación.

Tiene como objetivo realizar una compra de un activo promediando un valor por debajo del máximo configurado. Está pensada para optimizar el flujo de una operación, consiguiendo el precio deseado sin la necesidad de la intervención de un operador. Se puede configurar el monto total a operar, el precio límite y por último el tamaño máximo de las órdenes.

Tiene como objetivo colocar un monto en una moneda determinada a tasa entre plazos. Pensado para poder optimizar el curso de operaciones de colocación a tasa a través de un algoritmo y no requiriendo una intervención activa de un operador.

Realizá operaciones de compra o venta de dólares mediante la operatoria de bonos o acciones. Para utilizar esta estrategia, debes configurar la cantidad de dólares a operar, el tipo de operación (compra o venta), el precio al que se desea realizar, y los títulos que se emplearán para realizar la operación.

Dada una posición tomada en un valor negociable, la desarmar y la rearma en otro valor negociable, respetando un ratio de precios configurado entre ambos.

Price Improvement Iceberg (PII). Esta estrategia busca estar siempre primera en el book de órdenes con el objetivo de discretizar una orden de compra o venta. Permite configurar precio límite, monto total a operar, límite de monto por orden y cuenta con un mecanismo para ocultarle al mercado su accionar, modificando las órdenes que va enviando en su tamaño.

Tiene como objetivo tomar un monto en una moneda determinada a tasa entre plazos. Pensado para poder optimizar el curso de operaciones de tomar tasa a través de un algoritmo y no requiriendo una intervención activa de un operador.

Tiene como objetivo realizar una venta de un activo promediando un valor por debajo del máximo configurado. Está pensada para optimizar el flujo de una operación, consiguiendo el precio deseado sin la necesidad de la intervención de un operador. Se puede configurar el monto total a operar, el precio límite y por último el tamaño máximo de las órdenes.

Pensada para simplificar la gestión pasiva de liquidez de una gran cantidad de cuentas comitentes, esta estrategia permite la automatización en la ejecución de órdenes de cauciones colocadoras en el mercado. A partir de una lista de cuentas y saldos, el algoritmo envía órdenes al mercado siguiendo parámetros de plazo, tasa, agresión y tamaño. El resultado es la ejecución de cientos de órdenes en pocos minutos manteniendo un control global del proceso en cada momento.

Es un algoritmo pensado para simplificar el proceso de colocación de órdenes para tomar liquidez del mercado. A partir de un detalle de saldo requerido por cuenta comitente y la definición del plazo (caución a t dias), el motor administra el envío de órdenes dentro de parámetros definidos de tasas objetivos y agresividad en la colocación. El resultado es la ejecución de cientos de órdenes en pocos minutos manteniendo un control global del proceso en cada momento.