Índice del contenido[Esconder][Espectáculo]
Una industria que interesa mucho a quienes buscan trabajo es el comercio de divisas. Las empresas de software reciben solicitudes de comerciantes de todo el mundo para proporcionar una plataforma comercial que pueda evaluar de manera rápida y eficiente los datos sobre los pares de divisas.
Una plataforma de negociación es un programa de software proporcionado a comerciantes e inversores por ciertas organizaciones financieras, como bancos y casas de bolsa.
Las plataformas de negociación esencialmente permiten a los inversores y comerciantes realizar transacciones y vigilar sus cuentas. Otras funciones que ayudan a los inversores a tomar decisiones de inversión se incluyen con frecuencia en los sistemas de negociación.
Cotizaciones en tiempo real, gráficos interactivos, una variedad de herramientas gráficas, noticias en vivo e investigación premium son algunos ejemplos de estas capacidades.
Las plataformas también se pueden diseñar para ciertos mercados, como los de acciones, divisas, opciones o futuros.
Durante más de una década, los sistemas de negociación automatizados, también conocidos como comercio algorítmico, han ocupado el centro del escenario de la industria comercial.
Un "sistema de negociación", a veces conocido como "estrategia de negociación", no es más que una colección de reglas que se aplican a los datos de entrada para proporcionar señales de entrada y salida de compra/venta. A pesar de que crear una estrategia comercial puede parecer simple, ¡no lo es!
Las mentes detrás de una estrategia comercial cuantitativa se denominan "Cuantos" en el área del comercio algorítmico, ya que desarrollar una buena estrategia comercial requiere un estudio cuantitativo extenso.
El diseño fundamental de los sistemas de negociación automatizados ha sufrido modificaciones sustanciales durante los últimos diez años y sigue cambiando.
La industria del comercio algorítmico se ha convertido en un semillero para el desarrollo de tecnologías informáticas y de redes porque se ha vuelto necesario para las empresas, en particular aquellas que utilizan sistemas de comercio de alta frecuencia, innovar en tecnología para competir en el mundo del comercio algorítmico.
Discutiremos la plataforma de comercio diseño de sistemas en este articulo. Las especificaciones fundamentales para una plataforma de negociación incluyen su arquitectura, protocolos e instrucciones para crear su propio sistema de negociación automatizado.
Requisitos de software de comercio automatizado en un nivel básico
La mejor solución es aquella que satisface completamente los requisitos del software. Las principales especificaciones que el software de comercio automatizado son:
- Escalabilidad (la capacidad del sistema para manejar un volumen creciente de solicitudes y carga de trabajo);
- Multiprocesamiento y excelente desempeño;
- Seguridad y protección (cómo reacciona ante infracciones o ataques que se producen de repente y protege contra la entrada ilegal);
- Interoperabilidad (la capacidad de un sistema para interactuar con otros sistemas);
- Confiabilidad (cómo resuelve fallas y funciona a pesar de los problemas).
Los sistemas de comercio algorítmico requieren mano de obra extremadamente calificada y una atención cuidadosa. Es más fácil comprender los requisitos funcionales del sistema cuando existen requisitos no funcionales claros. Sirven como estándares rectores para que los equipos de desarrollo de software establezcan y definan la calidad de un producto.
Las características funcionales de la plataforma de negociación incluyen
El soporte exitoso de varios métodos de pago, servicios seguros de alojamiento en la nube, potentes herramientas de análisis de datos, gestión de riesgos, cotizaciones precisas y tipos de gráficos apropiados son todas necesidades funcionales importantes.
Los siguientes son algunos atributos fundamentales de las plataformas de operaciones automatizadas a las que todos los operadores prestan mucha atención:
Tablero que muestra datos estadísticos
Con el fin de realizar un examen simultáneo en tiempo real de los tipos de cambio en varias zonas horarias, la plataforma debe ejecutar actualizaciones continuas, operar datos de muchos gráficos y operar hojas de precios.
Autenticación
El método de verificación rápido pero confiable primero crea la imagen de una plataforma segura y un esfuerzo de ingeniería de élite.
El software comercial puede admitir el acceso desde varias cuentas, similar a las plataformas comerciales de código abierto con autenticación de dos factores (usando SMS o Google Authenticator, por ejemplo), pero también puede tener un sistema con acceso habilitado por correo electrónico, número de teléfono u otro maneras para sólo un pequeño grupo de comerciantes.
Nuevas Noticias
Antes de tomar cualquier decisión financiera, es fundamental investigar. Para evitar errores provocados por la ignorancia, los comerciantes pueden beneficiarse de noticias convenientes, resúmenes pertinentes e información sobre los mercados de divisas del mundo, todos los cuales están disponibles de inmediato en sus plataformas de negociación.
Funcionalidad para administradores y usuarios que es conveniente
En un sistema de este tipo, la capacidad de gestionar rápidamente todo con un solo clic es esencial. Esto incluye la gestión de transacciones, pedidos pendientes y enviados, cuentas personales, indicaciones de progreso de pedidos y solicitudes de clientes.
Esto permite la toma de decisiones en el menor tiempo posible y garantiza el acceso continuo a información vital.
Uso de notificaciones automáticas
Los usuarios anticipan que las plataformas de negociación estarán accesibles las XNUMX horas y se les informará sobre cualquier problema de seguridad o sobre los cambios más recientes.
Puede mantenerse informado con notificaciones personalizables, ya que la plataforma de negociación realiza un seguimiento de los eventos económicos, las fluctuaciones de precios, el desarrollo del mercado, los indicadores técnicos, etc., y envía actualizaciones sobre la posición de sus acciones.
Retiros y pagos
Esta función es necesaria para realizar actividades comerciales, realizar un seguimiento del movimiento de efectivo y retirar dinero de forma rápida y segura de su cuenta personal mediante una tarjeta de crédito, PayPal o una transferencia bancaria directa.
Cuando su solicitud de retiro haya terminado de procesarse, se le notificará.
La arquitectura del Sistema de Negociación Automatizado
El motor que lleva a cabo la lógica de la toma de decisiones en la plataforma de negociación automatizada, también conocido como motor de 'Procesamiento de eventos complejos', o CEP, estará dentro de la aplicación al servidor.
La capa de aplicación es esencialmente una interfaz de usuario para observar y suministrar parámetros al CEP. Aunque la capa de aplicación es principalmente una vista, algunas comprobaciones de riesgo (que ahora se han convertido en operaciones que consumen muchos recursos debido al problema de la escala) se pueden descargar a la capa de aplicación, en particular aquellas que involucran la cordura de las entradas del usuario, como los errores de dedo gordo.
Una situación intrigante resulta del problema de escalabilidad en un sistema de comercio automatizado.
Imaginemos que un solo evento de datos de mercado está siendo procesado por 100 lógicas separadas (como se discutió en el ejemplo anterior). Para la mayoría de las 100 unidades lógicas, digamos el cálculo de griegos para opciones, podría haber componentes comunes de cálculos complejos que deben realizarse.
Cada unidad realizaría el mismo cálculo exacto si cada lógica operara de forma independiente, lo que desperdiciaría recursos de procesamiento.
Los cálculos redundantes complejos se dividen con frecuencia en diferentes motores de cálculo que entregan los griegos como entrada al CEP en el sistema de negociación automatizado para maximizar la redundancia de cálculo.
Actualmente, un Sistema de Gestión de Riesgos (RMS) separado dentro del Administrador de Órdenes (OM) realiza las evaluaciones de riesgo restantes en un sistema de negociación automatizado poco antes de emitir una orden.
Dado que solo hay un sistema RMS para administrar el riesgo en todas las unidades lógicas/estrategias, anteriormente, 100 comerciantes independientes controlaban su riesgo. Esto se debe al problema de la escala.
Sin embargo, ciertas evaluaciones de riesgos pueden ser exclusivas de estrategias particulares, mientras que otras pueden necesitar realizarse en todos los métodos.
En consecuencia, el RMS en sí consta de RMS global (GRMS) y RMS de nivel de estrategia (SLRMS). SLRMS y GRMS también se pueden ver a través de una interfaz de usuario (UI).
Profundicemos ahora en los componentes del servidor.
Adaptador de mercado
Exchange o cualquier otro proveedor de datos de mercado transmite datos en su formato. Ese idioma puede o no ser entendido por su sistema de comercio algorítmico.
Exchange le brinda acceso a una API (interfaz de diseño de aplicaciones) que puede usar para programar y crear su propio adaptador para transformar el formato de datos en un formato que su sistema pueda comprender.
Motor de procesamiento de eventos complejos
El cerebro de su enfoque se encuentra en esta sección. Una vez que tenga los datos, debe usarlos de acuerdo con su plan, que requiere realizar diferentes cálculos estadísticos, hacer comparaciones con datos anteriores y tomar decisiones que conducirán a la creación de pedidos.
Este bloque se construye utilizando el tipo de orden y el monto de la orden. En pocas palabras, un evento complejo es una colección de eventos entrantes. Estos consisten en noticias, movimientos del mercado, tendencias del mercado de valores, etc.
Completar operaciones informáticas en eventos complicados rápidamente se conoce como procesamiento de eventos complejos. Las operaciones de un sistema de comercio automatizado pueden involucrar la detección de patrones intrincados, la creación de correlaciones y el establecimiento de conexiones como causalidad y tiempo entre cualquier información entrante.
Sistema de enrutamiento de pedidos
Usando las API proporcionadas por el intercambio, la orden se cifra en un idioma que el intercambio puede comprender. El intercambio ofrece API nativas y API FIX, dos tipos diferentes de API.
Las API nativas están diseñadas específicamente para un intercambio determinado. Varios intercambios utilizan un conjunto de pautas conocido como el protocolo FIX (Intercambio de información financiera) para facilitar y mejorar el flujo de datos en los mercados de seguridad.
En la parte posterior a esta, explicaremos más sobre FIX. Si una economía está abierta, las personas pueden enviar pedidos a través de un sistema de comercio automatizado a intercambios o no intercambios, y ORP debería poder manejar pedidos que van en muchas direcciones.
Aquí, queremos enfatizar que la señal de orden puede ser realizada manualmente por una persona o automáticamente. La sección final es a lo que nos referimos como un "sistema de comercio automatizado".
El módulo de gestión de órdenes incluye varias técnicas de ejecución que ejecutan las órdenes de compra/venta de acuerdo con una lógica preestablecida.
Gestión de riesgos
Dado que los sistemas de negociación automatizados funcionan sin intervención humana, se necesitan análisis de riesgo rigurosos para garantizar que los sistemas de negociación funcionen según lo previsto.
La mala gestión de riesgos o la falta de controles de riesgo para una empresa cuantitativa puede dar lugar a importantes pérdidas irrecuperables. Como resultado, cualquier sistema de comercio automatizado debe tener un sistema de gestión de riesgos (RMS).
Desarrollo de protocolos para sistemas de comercio automatizado
Para conectarse a varios destinos desde un solo servidor, lo cual fue posible gracias a la capacidad de la arquitectura para escalar a muchas estrategias por servidor, era necesario.
Para transmitir pedidos a varios destinos y recibir datos de numerosos intercambios, el administrador de pedidos, por lo tanto, albergó una serie de adaptadores.
La función de cada adaptador es servir como intérprete entre el protocolo de comunicación interno del sistema y el protocolo que comprende el intercambio. Por lo tanto, se necesitaría una serie de adaptadores para una serie de intercambios.
Dado que cada intercambio tiene un protocolo adaptado a las capacidades que ofrece, se debe crear un nuevo adaptador y conectarlo a la arquitectura para agregar un nuevo intercambio al sistema de comercio automatizado.
Se han desarrollado protocolos estándar para evitar este dolor de cabeza de la inserción del adaptador. El protocolo FIX es el más conocido de todos.
El tiempo de lanzamiento al mercado para conectarse con un nuevo destino se acorta significativamente, lo que no solo hace que sea manejable conectarse a varios destinos en movimiento.
El sistema de comercio automatizado puede interactuar fácilmente con otros proveedores para análisis o fuentes de datos de mercado gracias a la existencia de protocolos comunes.
Como resultado, el mercado se vuelve extremadamente eficiente porque ya no hay restricciones para integrarse con una nueva ubicación o vendedor.
Además, la simulación se hace muy simple ya que todo lo que se necesita para conectarse a un simulador usando el protocolo FIX es emitir órdenes y recibir datos del mercado real.
El simulador en sí puede crearse internamente o comprarse de una fuente diferente. De manera similar a los datos de mercado en vivo, los conjuntos de datos grabados también se pueden reproducir gracias a adaptadores independientes de la fuente de datos.
Arquitecturas emergentes de baja latencia
Las estrategias ahora pueden evaluar enormes volúmenes de datos en tiempo real y tomar decisiones comerciales rápidas gracias a los elementos fundamentales de un sistema comercial automatizado.
Como resultado del desarrollo de protocolos de comunicación estándar de la industria como FIX, ahora es más fácil construir una mesa de negociación algorítmica o un sistema de negociación automatizado, lo que ha aumentado la competencia en el mercado de negociación algorítmica.
El énfasis cambió a reducir la latencia para tomar decisiones a medida que los servidores ganaban más memoria y velocidades de reloj más rápidas.
La reducción de la latencia ha sido necesaria a lo largo del tiempo por una variedad de razones, que incluyen:
- Solo en un entorno de baja latencia la técnica tiene sentido.
- La competencia te elimina si no eres lo suficientemente rápido en el juego Survival of the Fittest
La colocación se ha convertido en una necesidad absoluta en un sistema de comercio automatizado para cualquier método de alta frecuencia que involucre un solo destino.
Pero los sistemas multidestino exigen una preparación meticulosa. Antes de hacer tal elección, se deben tener en cuenta variables como la duración del tiempo de respuesta del pedido del destino y cómo se compara con la duración del ping entre los dos destinos.
Para reducir la latencia total de un sistema de comercio automatizado, la latencia de la red suele ser lo primero que se debe abordar. Pero la arquitectura también se puede mejorar de muchas otras maneras.
Latencia de procesamiento de red
La latencia de procesamiento de red es el retraso que introducen los enrutadores, conmutadores, etc. El número de saltos que necesita un paquete para pasar del punto A al punto B sería el siguiente nivel de optimización en el diseño de un sistema de comercio automatizado.
Un salto se describe como una sección de la ruta entre el origen de un paquete y el destino donde no transita a través de un dispositivo físico, como un enrutador o conmutador.
Lo que llamamos microrráfagas también puede tener un impacto en la latencia de las operaciones de red.
Un pico rápido en el ritmo de la transmisión de datos que puede o no afectar la tasa de transferencia de datos promedio se denomina microrráfaga.
Dado que los sistemas de negociación automatizados se basan en reglas, todos responderán de manera uniforme ante la misma ocurrencia. Puede ocurrir una microrráfaga de transferencia de datos entre los participantes y el destino como resultado de que varios sistemas participantes envíen comandos a la vez.
Latencia de la aplicación
La latencia de la aplicación de un sistema de comercio automatizado es una medida del tiempo que lleva procesar una aplicación. Esto depende de la cantidad de paquetes, el procesamiento dedicado a la lógica de la aplicación, la complejidad del cálculo utilizado, la efectividad de la programación, etc.
El sistema normalmente tendría menos demoras en la aplicación a medida que aumentara la cantidad de procesadores. Con frecuencias de reloj más altas, ocurre lo mismo.
Muchos sistemas comerciales automatizados se benefician de la asignación de núcleos de CPU a partes críticas del programa, como la lógica de la estrategia, por ejemplo. Al hacer esto, el procedimiento no agrega la demora que resulta del cambio de núcleos.
De manera similar, si el enfoque de un sistema de comercio automatizado se programara teniendo en cuenta los tamaños de caché y la proximidad del acceso a la memoria, habría varios aciertos en la memoria caché, lo que reduciría aún más la latencia.
Muchos sistemas hacen esto optimizando el código para la arquitectura del procesador en particular, lo cual se logra mediante el uso de lenguajes de programación de muy bajo nivel.
Al usar arreglos de puertas completamente programables, algunas empresas incluso han ido tan lejos como para grabar cálculos complicados en hardware (FPGA).
Pruebas
La prueba, que es el acto de identificar fallas en las aplicaciones de software, es imposible de subestimar, particularmente en Fintech. Debido a la posibilidad de pérdidas financieras, la tecnología financiera no puede darse el lujo de tener fallas.
Cuantos más defectos puedan identificar los ingenieros de control de calidad, más probable es que el producto terminado funcione correctamente. Dependiendo de la empresa que desarrolle la plataforma de operaciones o de las necesidades del cliente, la estructura del proceso de prueba incluye:
La base de las pruebas funcionales es crear entradas y analizar los resultados. Con el uso de tarjetas falsas se ejecutan casos de prueba de aplicaciones financieras. Estas tarjetas buscan mejorar la confiabilidad, eficiencia y precisión de los pagos.
Averiguar la velocidad, la escalabilidad y la estabilidad de un sistema se realiza mediante pruebas de rendimiento. La velocidad de una aplicación se evalúa para comprender qué tan rápido responde, y su escalabilidad indica cuántos usuarios puede admitir simultáneamente sin fallar.
Además, la estabilidad demuestra si la aplicación funciona correctamente bajo varias cargas o si existen fallas potenciales.
Puede estar más allá de las capacidades de un solo comerciante minorista construir un sistema de negociación completamente automatizado. Los sistemas de negociación automatizados, que se ofrecen en los mercados por suscripción, son una opción para los comerciantes que desean investigar la técnica algorítmica de negociación.
Construyendo sus propios sistemas de comercio autónomos
Los operadores principiantes pueden desarrollar sus propias técnicas algorítmicas de negociación y participar en operaciones de mercado exitosas. Como esquema general, las etapas enumeradas a continuación se pueden utilizar para crear una estrategia comercial algorítmica:
- Cree un concepto comercial que crea que tendría éxito en mercados activos usando su imaginación o un método. El concepto se puede derivar de sus propias observaciones de mercado, libros comerciales, documentos académicos, blogs comerciales, foros comerciales o cualquier otra fuente.
- Recopile la información necesaria: necesitaría datos históricos para probar su hipótesis. Esta información está disponible a través de proveedores de datos pagados o sitios web como Google Finance.
- Escribir un plan requiere el uso de herramientas como programación Excel, Python o R. Una vez que tenga los datos, puede comenzar a codificar su enfoque.
- Probar su concepto comercial contra datos históricos después de que se haya codificado se denomina backtesting de su enfoque. El backtesting implica la optimización de entradas, el establecimiento de objetivos de ganancias y órdenes de stop-loss, el tamaño de la posición y otras tareas relacionadas.
- Negociación en papel de su estrategia: después de la fase de backtesting, es necesaria la negociación en papel de su estrategia. Esto incluiría probar su plan utilizando un simulador de simulación de mercado. Para el método de negociación en papel, hay corredores que proporcionan una plataforma de negociación algorítmica.
- Si su enfoque es lucrativo después del comercio de papel, puede implementarlo en situaciones del mundo real. Puede crear una cuenta comercial con un corredor confiable que ofrezca operaciones algorítmicas.
Con cada año que pasa, hay más intercambios que permiten el comercio algorítmico tanto para comerciantes profesionales como minoristas, y cada vez más comerciantes utilizan el comercio algorítmico.
Conclusión
Este fue un artículo completo sobre la arquitectura de un sistema de comercio automatizado que estamos seguros proporcionó una comprensión muy profunda de los componentes involucrados, así como de los muchos obstáculos que los desarrolladores de arquitectura deben manejar/superar para diseñar un sistema de comercio automatizado sólido.
Hice todo lo posible para brindarle una descripción general del sistema de comercio automático, pero hay muchas más cosas debajo del capó. Espero que este material le resulte útil y le dé un buen uso.
Deje un comentario