Arbitraje de latencia 14/02/2022 – Publicado en: Arbitrage Software
El hecho de que existan tantos mercados en el mundo ha llevado a que las mismas materias primas/divisas/metales/criptomonedas se negocien simultáneamente en muchos lugares. Esta negociación distribuida se debe, por ejemplo, a la ubicación geográfica y a las diferencias de zona horaria, o a las diferencias en los lugares de producción. En la mayoría de los casos, debido a esta variación en la negociación, el precio de un mismo instrumento varía entre distintas plataformas de trading. Si compra un producto en un mercado a un precio y lo vende en otro mercado un poco más caro, esta operación se denomina arbitraje de latencia. Idealmente, la compra y la venta se producen muy rápidamente. Otros nombres son arbitraje de retraso y trading de alta frecuencia.
Se considera que el trading de alta frecuencia comenzó cuando la SEC autorizó el funcionamiento de las plataformas de negociación electrónica en 1998. Al principio, las transacciones de alta frecuencia se realizaban en un lapso de unos pocos segundos, pero en 2010 este tiempo se había reducido a milisegundos y, en ocasiones, a cientos o decenas de microsegundos. A principios de la década de 2000, el trading de alta frecuencia generaba menos del 10% de las transacciones del mercado, pero su cuota ha aumentado con el tiempo. Según la NYSE, el volumen de negociación se multiplicó por 2.6 entre 2005 y 2009, y parte de ese crecimiento lo aportaron los traders de alta frecuencia. En la actualidad, el arbitraje de latencia representa más del 80 por ciento de toda la negociación en los mercados financieros. Es probable que los grandes bancos y otras empresas financieras también practiquen el trading de alta frecuencia además del trading tradicional. A medida que las estrategias de trading de alta frecuencia se adoptan de forma más generalizada, resulta más difícil obtener beneficios con ellas. Frederi Viens (Universidad de Purdue) estima que los beneficios de todo el trading HFT en Estados Unidos cayeron de $5 mil millones en 2009 a $1.25 mil millones en 2012. Y, sin embargo, a pesar de la creciente competencia, el arbitraje de latencia sigue siendo una de las formas de ganancia más lucrativas de los mercados financieros. Hay casos en los que algoritmos de trading de este ámbito no han tenido ni un solo día de pérdidas a lo largo de los años.
Definición
El arbitraje de latencia es una forma de trading en la que un participante tiene ventaja sobre los demás al conectarse más rápido a una fuente de cotizaciones. Es decir, su punto de envío de órdenes está físicamente más cerca que los mismos puntos de otros participantes.
Cómo funciona, explicado de forma sencilla
Supongamos que dos personas llegan al mercado de frutas y ven a dos vendedores de melocotones. Supongamos que el precio de los melocotones en el primero es de 20 rublos y en el segundo de 22 rublos. Supongamos que los melocotones son absolutamente iguales, para excluir la elección de la mercancía por su calidad, lo que significa que los compradores normalmente comprarán primero los melocotones a 20 rublos hasta que se acaben y solo entonces irán al vendedor con el precio de 22 rublos. El primer comprador se dirige con la intención de comprar melocotones a 20 rublos. Y de repente, el segundo comprador llega corriendo por el otro lado, se le adelanta, compra rápidamente todos los melocotones a 20 rublos e inmediatamente, allí mismo, los pone a la venta a un precio de, por ejemplo, 21 rublos. Aquí lo importante es que el precio de venta sea mayor que el de compra, pero no mayor que el precio del siguiente vendedor. Si es mayor, el comprador comprará a 22 rublos; si es menor, ¿dónde está el beneficio?
Cómo funciona técnicamente
El mecanismo es el mismo: si hay un buen precio en el mercado, hay que comprar lo más rápido posible para revender inmediatamente a un precio más alto. Esto se consigue mediante diversos medios técnicos y geográficos. Se utilizan software y equipos especiales para obtener esta ventaja de corta duración, pero prácticamente 100% fiable. También se aplican altos requisitos a las redes de comunicación. Solo se utilizan las tecnologías más avanzadas en el campo de la fibra óptica. Y, por supuesto, el factor decisivo es la ubicación de los equipos de trading. Por muy avanzados y de alta calidad que sean, la velocidad de la luz no puede superarse, y es precisamente a esa velocidad a la que se transmiten los datos por el cable. En busca de beneficios, las instituciones financieras que figuran en Forbes celebran costosos contratos con las bolsas para ubicar sus servidores en el mismo edificio que los servidores de la bolsa. Este principio de ubicación de los equipos de trading se denomina colocation. Como este servicio puede estar disponible para cualquiera que firme un contrato, no es raro que surjan conflictos sobre la igualdad de condiciones para todos los arrendatarios. Por ejemplo, la longitud del cable desde el equipo de cada participante hasta los servidores de la bolsa debe ser idéntica para todos, independientemente de que el equipo esté a 5 metros o a 100 metros del servidor.
Los equipos para los algoritmos de trading son altamente especializados, muy caros y, no pocas veces, fabricados por encargo. Estos chips suelen ser chips DMA (acceso directo a memoria) y de alta frecuencia. Para escribir los algoritmos solo se utilizan lenguajes de programación de bajo nivel, como el lenguaje ensamblador.
Además de la conexión por cable, existen métodos para transmitir los datos de mercado por aire. Normalmente se trata de radioenlaces troncales especiales del mundo de las telecomunicaciones. Estas redes privadas de radio por microondas se extienden a lo largo de cientos de kilómetros y cuestan decenas de millones de dólares. Se utilizan cuando la bolsa que es fuente de cotizaciones se encuentra a una distancia considerable del centro de trading. En ese caso, tender un cable hasta ella no resulta rentable ni, en definitiva, eficaz. El cable seguirá inevitablemente la topología de pozos, túneles, puentes, autopistas, ferrocarriles, etc. En cambio, las líneas de radioenlace pueden construirse casi en línea recta entre los destinos, colocando los nodos de la línea en colinas o en los tejados de los edificios. Como resultado, la distancia que recorre la señal por el cable será inevitablemente varias veces mayor que la distancia a través de las líneas de radioenlace, simplemente debido al relieve. Además, en el recorrido del cable hay más routers que en el de radio, y cada router añade un retraso adicional.
Estas redes de radio por microondas utilizan equipos especiales de radioenlace diseñados para transmitir señales con retrasos mínimos. Por ejemplo, un radioenlace típico de baja latencia (Low Latency) tiene un retraso de 50 ns (50 nanosegundos), mientras que un radioenlace comercial típico tiene un retraso 1,000 veces mayor, de unos 50 μs (microsegundos). El ancho de banda de estas redes alcanza el gigabit por segundo.
Si en el caso de la colocation en el edificio de una bolsa el objetivo es superar a los participantes que operan en el mismo mercado utilizando la misma fuente de cotizaciones, la conexión de alta velocidad con una bolsa remota tiene un objetivo algo diferente. No es raro que en el mercado se produzcan acontecimientos inesperados, como una decisión imprevista de la Fed o del BCE, un desplome o una actividad de negociación inusualmente alta en otras ciudades y países. Como se ha mencionado, no es raro que los mismos instrumentos se negocien en distintas bolsas. Tampoco es raro que un instrumento sea producto de una bolsa y, al mismo tiempo, se negocie en otra. Supongamos que el índice bursátil más importante de Alemania, el DAX, se negocia en la Bolsa de Fráncfort. La Bolsa de Londres también es una plataforma de negociación para él. En este caso, disponiendo de colocation en la Bolsa de Londres y de una red de radioenlace directa con la Bolsa de Fráncfort, es posible reaccionar más rápido a los acontecimientos importantes de la economía alemana.
Arbitraje de latencia para personas comunes
Se puede intentar sacar provecho de esta ineficiencia del mercado sin tener unos cuantos millones en el bolsillo. Desde el punto de vista técnico, esta posibilidad es la misma. Hay que modificar dos terminales. Se eligen dos brókers: uno principal, la fuente de cotizaciones, y un segundo dependiente, al que se enviarán las órdenes de trading. Para que la comprobación de cotizaciones y la apertura se produzcan de forma instantánea, sin perder preciosos milisegundos, todo el sistema debe implementarse en uno de los lenguajes de programación más rápidos, de tipado estático y compilados. Para ello son adecuados lenguajes como C/C++, Java o C#. Así obtenemos un sistema operativo a partir de dos terminales con solo dos brókers y cuentas diferentes. Es evidente que no será posible competir con quienes tienen colocation en las mayores bolsas del mundo, ni con quienes hacen arbitraje entre ellas. En estos mercados, los traders de alta frecuencia llevan más de veinte años trabajando y han invertido decenas e incluso cientos de millones de dólares en sus sistemas y algoritmos. No se les puede ganar. Puede probar suerte en bolsas pequeñas, a las que los fondos institucionales rara vez prestan atención, en brókers de forex y en exchanges de criptomonedas. Los dos puntos principales son los más importantes:
Su ubicación y el ping entre usted y el bróker
¿Qué equipo tiene? Si para el trading manual basta incluso con un ordenador doméstico de potencia media, para otros tipos necesitará adquirir algo más potente.
Al optimizar el primer punto, debe averiguar dónde se encuentra el servidor del bróker al que enviaremos las órdenes y alquilar un servidor lo más cerca posible de él. Es mejor alquilar un servidor dedicado, ya que así se asegura de poder utilizar toda la capacidad de los recursos que se le asignan. La diferencia entre un servidor dedicado y un servidor virtual es que, en el primer caso, tendrá acceso directo al hardware, y en el segundo el acceso se realiza a través de la llamada máquina virtual. En el segundo caso, casi todos los propietarios de servidores practican la sobreventa. Es decir, supongamos que instalaron un servidor con un procesador de 50 núcleos y 100 GB de RAM. Con software de virtualización, dividen estos recursos en 30 servidores virtuales, a cada uno de los cuales se le asignan 2 núcleos y 4 GB de RAM. ¿Pero cómo es posible?, se preguntará. ¿Acaso no salen 60 núcleos y 120 GB de RAM? El software de virtualización permite hacerlo y crear tantos servidores virtuales como se desee. Los proveedores de este tipo de servicio se aprovechan de que, por regla general, la mayoría de sus clientes no cargan al 100% la capacidad alquilada, o al menos cuentan con que esto no ocurra a menudo. Y donde alguien no aprovecha del todo su servidor, a otro le sobrarán algunos recursos para ejecutar su servidor virtual adicional. En ese caso, si su software en algún momento necesita toda la capacidad de los recursos que se le han asignado, estos pueden simplemente no ser suficientes, ya que la capacidad vendida es en realidad mayor que la físicamente disponible. El programa no se bloqueará por ello y, en cualquier caso, realizará el cálculo, pero obtendrá su potencia un poco más tarde, cuando se libere de otro usuario menos ocupado. De este modo, su algoritmo puede perder un tiempo valioso para realizar a tiempo los cálculos y la toma de decisiones.
Además, es conveniente disponer de acceso directo a la bolsa o a una API, a ambas bolsas en el caso de arbitraje entre ellas. Normalmente se trata del protocolo FIX o de PLAZA2. Si no existe dicha conexión directa, tendrá que utilizar los terminales de trading de una bolsa concreta, o bien una combinación de un acceso directo y un terminal. No es raro que un bróker no tenga conexión API, pero sí una API para su terminal de trading. Cada caso es individual. El caso más difícil es cuando la bolsa no tiene ni terminal ni API, sino solo una interfaz web para operar. La automatización de este tipo de trading es más complicada: será necesario analizar y automatizar acciones en páginas web. Y esto solo tiene sentido con un retraso bastante significativo en las cotizaciones. Si un bróker no tiene ni API de conexión, ni API para su terminal, ni ninguna forma de operar a través de la interfaz web, lo más probable es que no se consiga automatizar ese trading, y es mejor seguir buscando un bróker más adecuado.
Estrategia de latencia en un solo mercado
La idea es ubicar su servidor lo más cerca posible del servidor de la bolsa. Después, aprovechando la velocidad, comprar ofertas a los mejores precios más rápido que los demás y revenderlas con un pequeño beneficio. Para recibir datos y enviar órdenes de trading puede utilizar:
– El terminal de trading, si admite el trading con algoritmos automáticos. Muchos proveedores de software de trading ofrecen soporte para su propio lenguaje de scripts y sistemas automatizados. Ejemplos:
- TradeStation – lenguaje EasyLanguage
- Quik – lenguaje QLua
- Transaq – lenguaje ATF
- NinjaTrader – lenguaje NinjaScript
- JForex – lenguaje Java
Tendrá que buscar o comprar software para una plataforma concreta, o pagar los servicios de un programador para que le escriba el software para su tarea y para un terminal concreto.
– Software de terceros diseñado específicamente para el arbitraje de latencia. No es raro que, si un bróker ofrece un servicio de conexión directa a la bolsa, también existan empresas que escriban el software necesario para uno u otro tipo de conexión, o incluso para un bróker concreto si es lo bastante popular.
– Software propio, escrito y optimizado para un algoritmo específico de su estrategia de trading. Si no es programador, tendrá que contratar a uno para este trabajo.
Estrategia de latencia entre mercados
Puede dividirse a su vez en 2 partes:
La primera opción consiste en utilizar las cotizaciones de un bróker más rápido y enviar las órdenes de trading a un bróker más lento. En este caso, también es mejor ubicar el servidor de trading lo más cerca posible del servidor del bróker. Obtenemos las cotizaciones del más rápido, las comparamos con las del más lento y, si hay una gran diferencia, enviamos una orden de trading al bróker lento en la dirección de la diferencia entre los instrumentos.
Operamos simultáneamente en dos mercados. En este caso, se abre una cuenta en ambos brókers, las cuentas se financian con la misma cantidad y el servidor de trading se ubica en algún punto intermedio. Si en alguno de los mercados se produce la diferencia de precios necesaria en cualquier instrumento, compramos donde el precio es más bajo y vendemos en el otro. Según la estrategia, se puede operar en ambas direcciones. Una vez que el precio se iguala en ambos mercados, hay que recomprar/revender el activo. Al cabo de un tiempo, habrá una diferencia entre los saldos de los dos mercados. El importe total de los depósitos debería ser mayor que el de los depósitos originales, lo que indicará el beneficio de la estrategia. Desde el depósito mayor hay que transferir fondos al mercado con el depósito menor para que vuelvan a ser iguales.
Arbitraje de latencia en bolsas de valores
En esta categoría de brókers es difícil competir en este tipo de trading. El nicho está ocupado desde hace bastante tiempo y ha recibido enormes inversiones. Entre las bolsas existen las llamadas bolsas agregadoras. Toman cotizaciones de muchas bolsas y las reúnen en un único libro de órdenes. Al mismo tiempo, estas bolsas no casan entre sí las órdenes de sus clientes, sino que solo actúan como intermediarias entre el cliente y la bolsa cuyo volumen compra el cliente. Si ejecuta un volumen de mercado lo bastante grande en una bolsa de este tipo, puede tratarse de participaciones distintas de diferentes brókers. No es posible aplicar el arbitraje de latencia a estas bolsas, ya que operar a través de ellas implica retrasos inevitables y perderá todas las ventajas.
Arbitraje de latencia en Forex
Sobre los proveedores de liquidez en el mercado forex
El mercado FX está descentralizado y normalmente obtiene su liquidez de los proveedores. Hay unas dos docenas de proveedores de liquidez para forex en el mundo. Al mismo tiempo, en raras ocasiones los propios brókers de forex pueden ser proveedores de liquidez. Es decir, un bróker más grande vende sus órdenes a un bróker más pequeño. Al final, los brókers de forex pueden tener una composición de proveedores completamente distinta, aunque en cierta medida coincidente con la de los proveedores de otros brókers. Por ejemplo, un bróker toma liquidez de un proveedor, mezcla con ella la liquidez de sus clientes y la revende al siguiente bróker.
Sin embargo, si el proveedor de liquidez ofrece una API, puede utilizarse como fuente más rápida frente a un bróker más pequeño.
Elección de un bróker para operar en el mercado forex
Actualmente se conocen tres modelos de funcionamiento de los brókers de forex:
Un bróker de forex toma de alguna fuente los precios de cotización de los instrumentos, pero al mismo tiempo actúa como la segunda parte de la transacción frente a usted, es decir, es un creador de mercado. En este caso, su pérdida total es su ganancia total. Estos brókers son conocidos por no pagar el dinero a sus clientes y por poner trabas al trading en forma de deslizamientos, recotizaciones, etc. No es raro que estos brókers tengan reglamentos muy extraños, como la prohibición del «peeping», del frontrunning o del arbitraje, la exigencia de mantener la operación abierta al menos unos minutos, etc.
El bróker no es en absoluto contraparte en las transacciones con el cliente y traslada todas las transacciones al proveedor de liquidez. Esta opción es la más preferible, ya que el bróker es solo un intermediario en la transacción y no está interesado en su pérdida. Pero estos brókers son raros, porque su ingreso principal es una pequeña comisión por transacción. Puede estar incluida en el precio o cobrarse por separado, dejando que los clientes operen a los precios del proveedor de liquidez. Al mismo tiempo, cuando el bróker realiza una operación con la contraparte, le paga una comisión. Como la comisión del bróker es algo mayor, eso es lo que gana.
Un sistema mixto en el que el bróker traslada una parte de las transacciones a la contraparte y otra parte la cierra él mismo, actuando como segunda parte de la transacción. La mayoría de los brókers «normales» funcionan según este esquema. Presumiblemente, estos brókers cierran inicialmente ellos mismos las transacciones de todos los clientes nuevos. Si ven que el cliente gana mayoritariamente, empiezan a trasladar sus transacciones a la contraparte. Así, los brókers no corren el riesgo de perder frente al cliente y no tienen que recurrir al fraude ni perjudicar el trading de los clientes.
La elección del bróker debe empezar por comprobar que esté bajo la jurisdicción de un buen regulador financiero. Actualmente, estos son:
- FCA – Reino Unido
- BaFin – Alemania
- NFA – EE. UU.
- FINMA – Suiza
Esto es necesario para eliminar los riesgos no relacionados con el trading. En la historia hay muchos casos en los que un bróker de forex simplemente desapareció con todo el dinero de sus clientes. Después resultó que estaba registrado en un paraíso fiscal (offshore) y que el regulador offshore no se hace responsable de nada. Con los reguladores mencionados, el cliente obtiene dos cosas importantes:
- Cuentas segregadas. El dinero de los clientes y el del bróker se mantienen en cuentas separadas. El bróker no tiene derecho a retirarlo ni a apropiárselo, pero puede realizar transacciones en su nombre con su dinero.
- Todos los depósitos de los clientes están asegurados hasta un determinado importe. En caso de quiebra del bróker, los clientes recibirán el reembolso del importe de sus depósitos o del importe del seguro si el depósito era superior a este.
- El bróker está obligado a tener un proveedor de liquidez autorizado y no tiene derecho a actuar como segunda parte de la transacción con el cliente.
Estos tres hechos hacen que el trabajo deshonesto del bróker carezca de sentido, y la existencia del seguro de depósitos obliga al regulador a supervisar de cerca el trabajo de los brókers bajo su control.
Arbitraje de latencia en exchanges de criptomonedas
La mayoría de los exchanges de criptomonedas ofrecen trading web y conexión API. Normalmente, la API consiste en una conexión WebSocket para la información de mercado y REST para las funciones de trading. La primera conexión es rápida; la segunda, lenta. No se sabe por qué es así, pero históricamente ha sido así. Quizá se deba a que el trading de criptomonedas es una industria bastante joven y los centros de datos de los exchanges de criptomonedas aún no han realizado una inversión tan fuerte en su infraestructura de trading como para que los algoritmos de cotización y de trading sean tan rápidos como los de las bolsas de valores. La ventaja es que la API, por lo general, no es compleja y permite crear algoritmos de trading en cualquier lenguaje de programación.
Estrategias de trading:
- Operar en un solo exchange, con nuestro servidor lo más cerca posible del servidor del exchange
- Operamos en dos o más exchanges a la vez, creando en cada uno de ellos un depósito por el mismo importe.
En el segundo caso, no podemos utilizar un exchange como el más rápido y el otro como el más lento, porque no sabemos de antemano cuál de ellos será el primero en generar una diferencia. A diferencia del forex, el trading en los exchanges de criptomonedas se realiza en sus propios servidores y las transacciones no se trasladan a contrapartes, por lo que no podemos utilizar el acceso directo al proveedor como fuente más rápida. En este sentido, todos los exchanges de criptomonedas son iguales. Pero como hay muchos, no podemos colocar 1 servidor de trading con el mismo ping hacia todos. Por eso, la estrategia solo podrá aplicarse a un par de exchanges. Si lo desea, puede ampliar el sistema a otros, pero solo como sistemas formados por un par de exchanges con un servidor entre ellos.