El objetivo de Quantinsti es formar a su alumnos en el trading algorítmico. Pertenece a iRageCapital Advisory, empresa conocida por sus servicios relacionados con la creación de mesas de trading algorítmico.
El auge del trading automatizado ha transformado significativamente la estructura de los sistemas de trading en la última década y continúa haciéndolo. Para las empresas, especialmente aquellas involucradas en el trading de alta frecuencia, mantenerse competitivas en el trading algorítmico ahora requiere una constante innovación tecnológica.
En esta publicación, desglosaremos la arquitectura detrás de los sistemas de trading automatizado, compararemos los nuevos diseños con los tradicionales y exploraremos los componentes clave que hacen que estos sistemas funcionen.
¿Qué es el trading automatizado?
Un sistema de trading automatizado (o trading completamente automatizado) es una subdivisión del trading algorítmico en el cual se utilizan computadoras para generar señales de trading y gestionar el flujo de órdenes en los mercados sin intervención humana.
El trading automatizado también incluye la modelización cuantitativa y el monitoreo de riesgos.
Los sistemas de trading automatizados son utilizados por un porcentaje cada vez mayor de participantes del mercado, incluyendo firmas de trading, bancos, fondos de cobertura, gestores de activos y fondos de pensiones. Pueden desarrollar sus propios sistemas o usar sistemas provistos por terceros. El grado de automatización varía de un sistema a otro y depende de factores como el entorno regulatorio, las bolsas de valores y las diferencias culturales.
Este video a continuación introduce conceptos esenciales del trading automatizado, incluyendo su importancia y proceso. También demuestra la automatización de una estrategia basada en reglas, ofreciendo valiosas ideas para quienes buscan mejorar sus habilidades en trading.
Pasemos a aprender más sobre el trading automatizado, discutiendo cómo se diferencia del trading algorítmico.
Diferencia entre trading automatizado y trading algorítmico
A continuación se muestra una clara distinción entre el trading automatizado y el algorítmico, con cada aspecto mencionado.
Evolución de los sistemas de trading
El sistema de trading tradicional era una mera interacción entre el corredor y la bolsa para estas tres operaciones:
- Recepción de datos de mercado
- Envío de solicitudes de órdenes
- Recepción de respuestas de la bolsa
Para comprar o vender acciones y valores, el trader tenía que acudir a un corredor. Este corredor podía ser un individuo o una firma. Este corredor era contratado para negociar en nombre del trader, quien realizaba la compra y venta de instrumentos financieros manualmente.
Esta forma tradicional de trading consumía tiempo y se basaba en decisiones de trading influenciadas por emociones como el miedo o la avaricia. Además, el trading tradicional carecía de precisión analítica ya que se realizaba manualmente. Siguiendo el famoso dicho «errar es humano», el trading tradicional o manual necesitaba evolucionar.
Con la llegada del trading automatizado, el panorama del trading cambió, evolucionando hacia un enfoque más preciso, rápido y ahorrador de tiempo. En su forma básica, podemos representar la transferencia de datos entre la bolsa y el sistema de trading automatizado como sigue:
Los datos de mercado recibidos típicamente informan al sistema de trading automatizado sobre el último libro de órdenes. También pueden contener información adicional como el volumen negociado hasta el momento, el último precio negociado y la cantidad de la orden de trading.
Sin embargo, para tomar una decisión basada en los datos, el sistema automatizado observa los valores antiguos o deriva ciertos patrones del historial. Basado en este análisis histórico de datos y patrones, el sistema procede a crear una estrategia de trading y ejecutarla.
Por último, pero no menos importante, se necesita una interfaz gráfica de usuario (GUI) para que el trader pueda visualizar toda esta información en una pantalla.
A continuación, discutiremos la necesidad de un sistema de trading automatizado.
¿Por qué se necesita un sistema de trading automatizado?
La arquitectura tradicional carecía de las instalaciones que el sistema de trading automatizado con Acceso Directo al Mercado (DMA) ofrecía. La latencia entre la recepción de datos del mercado y la generación de órdenes superaba la capacidad humana y entraba en el ámbito de los milisegundos y microsegundos con el sistema de trading automatizado.
Con el tiempo, se comprendió que la gestión de órdenes también debía ser más robusta y capaz de manejar muchas más órdenes por segundo.
Dado que el tiempo de ejecución de órdenes en el trading algorítmico es menor en comparación con la ejecución manual, también se necesitaban medidas de gestión de riesgos. Para tales prácticas como la ejecución rápida de órdenes y la gestión de riesgos simultánea, se necesitaba un sistema automatizado.
Por ejemplo, incluso si el tiempo de reacción para una orden es de 1 milisegundo, el sistema sigue siendo capaz de tomar 1000 decisiones de trading en un segundo. Por lo tanto, cada una de estas 1000 decisiones de trading debe pasar por medidas de gestión de riesgos dentro del mismo segundo para evitar pérdidas. Se podría decir que en cuanto a los sistemas de trading automatizados, esto es solo un problema de complejidad.
A continuación, discutiremos la arquitectura del trading automatizado en la que descubriremos todo sobre el funcionamiento o flujo del trading automatizado.
Arquitectura del trading automatizado
Tomando en cuenta todos los puntos mencionados anteriormente, la arquitectura tradicional de todo el sistema de trading automatizado se desglosa de la siguiente manera:
- La(s) bolsa(s) – el mundo externo
- El servidor
- Recibe los datos del mercado
- Almacena los datos del mercado
- Almacena las órdenes generadas por el usuario
- Aplicación
- Toma las entradas del usuario inicialmente para decisiones como stop loss, límites, instrumentos financieros preferidos para trading, etc.
- Actúa como interfaz para visualizar la información, incluidos los datos y órdenes.
- Actúa como un gestor de órdenes enviando órdenes a la bolsa.
Aunque la capa de aplicación es principalmente una vista, algunas de las verificaciones de riesgo pueden descargarse en la capa de aplicación, especialmente aquellas que tienen que ver con la cordura de las entradas del usuario, como los errores de «dedo gordo».
El resto de las verificaciones de riesgo en los sistemas de trading automatizado ahora se realizan mediante un Sistema de Gestión de Riesgos (RMS) separado dentro del Gestor de Órdenes (OM), justo antes de liberar una orden. El problema de la escala también significa que donde antes 100 traders diferentes gestionaban su riesgo, ahora solo hay un sistema RMS para gestionar el riesgo en todas las unidades/estrategias lógicas.
Sin embargo, algunas verificaciones de riesgo pueden ser específicas de ciertas estrategias, y algunas deben hacerse en todas las estrategias. Por lo tanto, el RMS en sí implica el RMS a nivel de estrategia (SLRMS) y el RMS global (GRMS). También puede implicar una interfaz de usuario (UI) para ver el SLRMS y GRMS.
Ahora comprendamos los componentes del servidor con más detalle.
Adaptador de Mercado
La bolsa o cualquier proveedor de datos del mercado envía datos en su propio formato. Su sistema de trading algorítmico puede o no entender ese lenguaje. La bolsa le proporciona una API o Interfaz de Programación de Aplicaciones que le permite programar y crear su propio adaptador para convertir el formato de los datos en un formato que su sistema pueda entender.
Motor de Procesamiento de Eventos Complejos (CEP)
Esta parte es el cerebro de su estrategia. Una vez que tiene los datos, deberá trabajar con ellos según su estrategia, lo que implica realizar varios cálculos estadísticos, comparaciones con datos históricos y la toma de decisiones para la generación de órdenes. El tipo de orden y la cantidad de la orden se preparan en este bloque.
Un evento complejo es un conjunto de otros eventos que juntos implican la ocurrencia de algo significativo. Estos incluyen tendencias bursátiles, movimientos del mercado, noticias, etc. El procesamiento de eventos complejos (CEP) realiza operaciones computacionales sobre eventos complejos en un corto tiempo.
Los sistemas CEP procesan eventos en tiempo real, por lo tanto, cuanto más rápido sea el procesamiento de eventos, mejor será el sistema CEP. Por ejemplo, si un sistema de trading automatizado está diseñado para detectar una buena oportunidad de rendimientos en el siguiente segundo, pero el tiempo que toma el sistema CEP excede este umbral, entonces el sistema de trading no podrá obtener buenos rendimientos.
El sistema CEP está compuesto por cuatro partes:
- Motor CEP (CEP engine)
- Reglas CEP
- Servicios Web CEP (CEP WS)
- Interfaz de resultados CEP
Los dos componentes principales de cualquier sistema CEP son el motor CEP y el conjunto de reglas CEP. El motor CEP procesa los eventos entrantes basándose en las reglas CEP. Estas reglas y los eventos que se introducen en el motor CEP están mencionados en el sistema de trading (estrategia de trading).
Puedes ver en la imagen a continuación dónde encaja el rol del motor CEP en el proceso de generación de órdenes de trading, comenzando desde la aplicación y llegando a la bolsa.
Para un cuantitativo (quant), la mayor parte de su trabajo se concentra en este bloque del sistema CEP. Un cuantitativo pasará la mayor parte del tiempo formulando estrategias de trading y realizando rigurosos backtesting, optimización y ajuste de posiciones, entre otras cosas.
Esto se hace para asegurar la viabilidad de la estrategia de trading en los mercados reales. Ninguna estrategia única puede garantizar rendimientos buenos y duraderos. Por lo tanto, los quants deben desarrollar nuevas estrategias regularmente para mantener una ventaja en los mercados.
Existen numerosos sistemas de trading automatizado populares que son ampliamente utilizados en los mercados actuales. Estos se clasifican en diferentes estrategias, como estrategias de momentum, arbitraje estadístico, creación de mercado, etc.
Veamos algunos protocolos del sistema de trading automatizado
Protocolos del sistema de trading automatizado
Dado que la nueva arquitectura es capaz de escalar muchas estrategias por servidor, ha surgido la necesidad de conectarse a múltiples destinos desde un solo servidor. Así, el gestor de órdenes alberga varios adaptadores para enviar órdenes a múltiples destinos y recibir datos de varios mercados.
Cada adaptador actúa como un intérprete entre el protocolo que entiende la bolsa y el protocolo de comunicación dentro del sistema. Por lo tanto, se requieren múltiples adaptadores para múltiples mercados.
Sin embargo, para añadir un nuevo mercado al sistema de trading automatizado, se debe diseñar e integrar un nuevo adaptador en la arquitectura. Esto se debe a que cada mercado sigue su propio protocolo, optimizado para las características que ofrece.
Para evitar este inconveniente de añadir adaptadores, se han diseñado protocolos estándar. El más destacado entre ellos es el protocolo de trading FIX. Esto no solo facilita la conexión con diferentes destinos, sino que también reduce drásticamente el tiempo de salida al mercado cuando se conecta con un nuevo destino.
La presencia de protocolos estándar facilita que el sistema de trading automatizado se integre con proveedores externos de análisis o fuentes de datos de mercado. Como resultado, el mercado se vuelve más eficiente, ya que integrar con un nuevo destino o proveedor ya no es una limitación.
Además, la simulación se vuelve muy fácil, ya que recibir datos del mercado real y enviar órdenes a un simulador es solo cuestión de usar el protocolo FIX para conectarse a un simulador.
El simulador en sí puede ser desarrollado internamente o adquirido de un proveedor externo. De manera similar, los datos grabados pueden ser reproducidos sin que los adaptadores detecten si los datos provienen del mercado en vivo o de un conjunto de datos grabados.
Cambio hacia arquitecturas de baja latencia
Con los bloques fundamentales de un sistema de trading automatizado en su lugar, las estrategias ahora tienen la capacidad de procesar grandes cantidades de datos en tiempo real y tomar decisiones de trading rápidamente.
Hoy en día, con la aparición de protocolos de comunicación estándar como FIX, la barrera tecnológica para establecer una mesa de trading algorítmico o un sistema de trading automatizado ha disminuido.
Consecuentemente, el dominio del trading automatizado se ha vuelto más competitivo.
A medida que los servidores obtuvieron más memoria y mayores frecuencias de reloj, el enfoque se trasladó hacia la reducción de la latencia en la toma de decisiones.
Con el tiempo, la reducción de la latencia se ha vuelto una necesidad por varias razones, como:
La estrategia solo tiene sentido en un entorno de baja latencia.
La supervivencia del más apto: los competidores te superan si no eres lo suficientemente rápido.
El problema, sin embargo, es que la latencia es un término amplio que abarca diferentes tipos de retrasos. Aunque la latencia es fácil de entender, es difícil de cuantificar. Por lo tanto, es crucial cómo se aborda el problema de reducirla.
Si observamos el ciclo de vida básico en un sistema de trading automatizado, los pasos son los siguientes:
- Un paquete de datos de mercado es publicado por la bolsa.
- El paquete viaja a través del cable.
- El paquete llega a un enrutador del lado del servidor.
- El enrutador reenvía el paquete a través de la red del servidor.
- El paquete llega al puerto Ethernet del servidor.
- Dependiendo de si es UDP/TCP, se procesa, y el paquete llega a la memoria del adaptador.
- El adaptador luego analiza el paquete y lo convierte en un formato interno para la plataforma de trading algorítmico.
- Este paquete ahora viaja a través de varios módulos del sistema, como el CEP, la tienda de ticks, etc.
- El CEP analiza y envía una solicitud de orden.
- La solicitud de orden regresa en sentido inverso como el paquete de datos del mercado.
En un diseño de sistema de trading automatizado, una alta latencia en cualquiera de estos pasos asegura una alta latencia en todo el ciclo. Por lo tanto, la optimización de la latencia generalmente comienza con el primer paso que está bajo nuestro control, es decir, «el paquete viaja a través del cable». La forma más fácil de reducir la latencia es acortar la distancia al destino tanto como sea posible. La mejor manera de hacerlo es mediante la colocación.
La colocación es la facilidad que ofrecen las bolsas para alojar el servidor de trading cerca de la bolsa.
Niveles de sofisticación en el trading automatizado
El mundo del trading algorítmico de alta frecuencia ha entrado en una era de intensa competencia. Con cada participante adoptando nuevos métodos para superar a la competencia, la tecnología ha avanzado significativamente.
Las arquitecturas de trading algorítmico modernas son bastante complejas en comparación con sus contrapartes de etapas tempranas. En consecuencia, los sistemas de trading automatizado avanzados son más costosos de construir, tanto en términos de tiempo como de dinero.
A continuación se muestra una tabla que cubre las diferentes tarjetas de red que se utilizan para el trading automatizado y los diversos aspectos de las mismas:
Construir un sistema de trading automatizado completo puede estar fuera del alcance de un trader minorista individual. Los traders que desean explorar el trading algorítmico pueden optar por sistemas de trading automatizado disponibles en el mercado por suscripción.
Un trader puede suscribirse a estos sistemas automatizados y utilizar las estrategias de trading algorítmico que se ponen a disposición de los usuarios de estos sistemas. Los traders que saben programar pueden formular y probar sus estrategias en plataformas de programación como Python y C.
¿Cómo construir un sistema de trading automatizado?
Los traders principiantes pueden aprender a construir su propio sistema de trading automatizado con los algoritmos para operar en los mercados. Para construir tu propio sistema de trading automatizado, necesitarás codificar la estrategia en un lenguaje de programación, probar la estrategia con datos históricos para conocer su rendimiento, realizar trading en papel y luego operar en vivo.
Veamos estos pasos en detalle a continuación, los cuales pueden servir como una guía general para construir una estrategia de trading algorítmico:
Paso 1: Ideación o plan de trading
Desarrolla una idea de trading o una estrategia para operar en los mercados en tiempo real. Esta estrategia puede estar basada en tus observaciones del mercado o puede ser tomada de libros de trading, trabajos de investigación, blogs de trading, foros de trading u otras fuentes.
Paso 2: Creación del sistema
Este paso requiere que crees un sistema automatizado para identificar las oportunidades de trading en el mercado de acuerdo con tus instrumentos financieros preferidos. Además, deberás alimentar el sistema automatizado con la información sobre cómo actuar una vez que identifique las oportunidades.
Adicionalmente, también deberás introducir parámetros relacionados con la gestión del riesgo, como el stop loss, orden límite, etc.
Todo este proceso de creación del sistema automatizado requerirá que tengas conocimiento de un lenguaje de programación como Python, C, etc. Con estos lenguajes de programación, podrás codificar el sistema con todas las preferencias mencionadas anteriormente.
Paso 3: Probar y refinar el sistema
El siguiente paso es probar y refinar el sistema de trading automatizado para mejorar el sistema en caso de que ocurra algún malfuncionamiento. Después de hacer los cambios o mejoras necesarias, puedes estar seguro de que el sistema está listo para operar en el mercado en tiempo real.
Paso 4: ¡Llevar tu sistema automatizado a la acción!
Una vez que estés seguro de tu sistema automatizado, puedes operar en vivo con tu idea o estrategia de trading.
Ahora que has construido con éxito un sistema de trading automatizado, aquí tienes un tutorial que te guiará en el proceso de descargar datos históricos de acciones utilizando Python. Si te interesa el sistema de trading automatizado y deseas analizar datos históricos de acciones para desarrollar tus estrategias de trading, este video puede ser útil.
Ventajas de usar sistemas de trading automatizados
Las ventajas de utilizar sistemas de trading automatizados son las siguientes:
– Facilidad de uso: Las órdenes pueden ser colocadas rápidamente con la ayuda del software que te guía a través de los diferentes parámetros. Además, tu propio sistema automatizado hará que sea aún más fácil colocar órdenes, ya que siempre está a tu disposición.
– Revisión en vivo del portafolio y actualizaciones del mercado: Con el sistema de trading automatizado, puedes visualizar los datos de mercado de instrumentos financieros como acciones, materias primas, índices bursátiles, etc., en cualquier momento. También puedes realizar un seguimiento de tu portafolio, sus activos subyacentes y su desempeño mediante el software.
– Función de notificaciones: Una de las características más ventajosas del sistema de trading automatizado es la función de notificaciones. El sistema automatizado te enviará alertas para notificarte sobre los últimos eventos en tu portafolio, así como las recomendaciones del broker.
– Actualizaciones de noticias relacionadas: Los usuarios también pueden seguir actualizaciones en tiempo real sobre desarrollos relacionados con una acción o segmento específico mediante los sistemas automatizados. El sistema te ayuda a mantenerte actualizado para que puedas modificar tus entradas de trading, como la selección de instrumentos financieros, actualización de los valores de stop loss, valor límite, etc.
– Análisis y gráficos: Otra característica es la provisión de gráficos históricos y análisis que te permiten observar datos previos de índices, precios de acciones y proporcionar herramientas de análisis para los mismos.
Desventajas de usar sistemas de trading automatizados
Las siguientes son las desventajas:
– Gastos para usar el sistema automatizado: El sistema de trading automatizado implica un gasto, y eso puede ser una desventaja para aquellos que no desean invertir en el mismo.
– Conectividad: Una desventaja general de usar el sistema de trading automatizado es la conectividad. En algunas regiones remotas, las interrupciones en la conectividad son comunes, lo que podría generar pérdidas durante la colocación de órdenes.
Conclusión
Este fue un post detallado sobre la arquitectura de un sistema de trading automatizado para ofrecerte un conocimiento profundo e informativo sobre los componentes involucrados. Además, existen varios desafíos que los desarrolladores de la arquitectura deben manejar o superar para construir un sistema de trading automatizado robusto. Entonces, ¿qué esperas? ¡Ve por el trading algorítmico!
Si deseas aprender varios aspectos del trading algorítmico y los sistemas de trading automatizado, revisa nuestro curso «¡Trading Algorítmico para Principiantes!». Este curso construye una base en el trading algorítmico y es perfecto para aquellos que desean obtener una visión completa del dominio. Incluye el qué, cómo y por qué del trading algorítmico. También se incluyen diferentes estrategias de trading algorítmico y regulaciones para establecer un negocio de trading algorítmico.