Friday 10 November 2017

Trading System Architecture


La sección anterior de este tutorial examinó los elementos que conforman un sistema de negociación y discutió las ventajas y desventajas de utilizar dicho sistema en un entorno de comercio en vivo. En esta sección, nos basamos en ese conocimiento examinando qué mercados son especialmente adecuados para el comercio de sistemas. A continuación, tomar una mirada más en profundidad a los diferentes géneros de los sistemas de comercio. Comercio en diferentes mercados Mercados de acciones El mercado de acciones es probablemente el mercado más común para el comercio, especialmente entre los novatos. En este campo, los grandes jugadores como Warren Buffett y Merrill Lynch dominan, y el valor tradicional y el crecimiento de las estrategias de inversión son de lejos los más comunes. Sin embargo, muchas instituciones han invertido significativamente en el diseño, desarrollo e implementación de sistemas comerciales. Los inversores individuales se están uniendo a esta tendencia, aunque lentamente. Estos son algunos factores clave a tener en cuenta al utilizar los sistemas de negociación en los mercados de renta variable: 13 La gran cantidad de acciones disponibles permite a los operadores probar sistemas en muchos tipos diferentes de acciones - desde acciones extremadamente volátiles de venta libre Blue chips no volátiles. La eficacia de los sistemas de negociación puede verse limitada por la baja liquidez de algunas acciones, especialmente las de OTC y las de pink sheet. Las comisiones pueden comer en las ganancias generadas por operaciones exitosas, y pueden aumentar las pérdidas. Las acciones de OTC y de hoja rosa suelen incurrir en comisiones adicionales. Los principales sistemas de negociación utilizados son aquellos que buscan valor, es decir, sistemas que utilizan diferentes parámetros para determinar si un valor está infravalorado en comparación con su desempeño anterior, sus pares o el mercado en general. Mercados de divisas El mercado de divisas, o divisas. Es el mercado más grande y más líquido del mundo. Los gobiernos mundiales, los bancos y otras grandes instituciones comercian billones de dólares en el mercado de divisas todos los días. La mayoría de los comerciantes institucionales en la divisa se basan en los sistemas de comercio. Lo mismo ocurre con los individuos en la divisa, pero algunos de comercio basado en informes económicos o pagos de intereses. Aquí hay algunos factores clave a tener en cuenta al utilizar los sistemas de comercio en el mercado de divisas: La liquidez en este mercado - debido al enorme volumen - Hace que los sistemas comerciales sean más precisos y eficaces. No hay comisiones en este mercado, sólo se extiende. Por lo tanto, es mucho más fácil hacer muchas transacciones sin aumentar los costos. En comparación con la cantidad de acciones o materias primas disponibles, el número de monedas a negociar es limitado. Pero debido a la disponibilidad de pares de divisas exóticas - es decir, monedas de países más pequeños - el rango en términos de volatilidad no es necesariamente limitado. Los principales sistemas de comercio utilizados en Forex son los que siguen las tendencias (un dicho popular en el mercado es la tendencia es su amigo), o sistemas que compran o venden en brotes. Esto se debe a que los indicadores económicos a menudo causan grandes movimientos de precios al mismo tiempo. Futuros Equidad, divisas, y los mercados de productos ofrecen todos los futuros de comercio. Este es un vehículo popular para el sistema de comercio debido a la mayor cantidad de apalancamiento disponible y el aumento de la liquidez y la volatilidad. Sin embargo, estos factores pueden cortar en ambos sentidos: pueden amplificar sus ganancias o amplificar sus pérdidas. Por esta razón, el uso de futuros suele estar reservado para los comerciantes avanzados de sistemas individuales e institucionales. Esto se debe a que los sistemas comerciales capaces de capitalizar el mercado de futuros requieren una personalización mucho mayor, utilizan indicadores más avanzados y llevan mucho más tiempo para desarrollarse. Así que, lo que es mejor Su hasta el inversor individual para decidir qué mercado es el más adecuado para el sistema de comercio - cada uno tiene sus propias ventajas y desventajas. La mayoría de la gente está más familiarizada con los mercados de renta variable, y esta familiaridad facilita el desarrollo de un sistema comercial. Sin embargo, la divisa es comúnmente pensado para ser la plataforma superior para ejecutar los sistemas de comercio - especialmente entre los comerciantes más experimentados. Por otra parte, si un comerciante decide capitalizar sobre el aumento de apalancamiento y la volatilidad, la alternativa de futuros siempre está abierta. En última instancia, la elección está en manos del desarrollador del sistema. Tipos de Sistemas de Negociación Sistemas de Trend-Seguimiento El método más común de comercio de sistemas es el sistema de tendencia siguiente. En su forma más fundamental, este sistema simplemente espera un movimiento significativo de precios, luego compra o vende en esa dirección. Este tipo de bancos de sistemas en la esperanza de que estos movimientos de precios mantendrán la tendencia. Moving Average Systems Frecuentemente utilizado en el análisis técnico. Una media móvil es un indicador que simplemente muestra el precio promedio de una acción durante un período de tiempo. La esencia de las tendencias se deriva de esta medición. La manera más común de determinar la entrada y la salida es un crossover. La lógica detrás de esto es simple: una nueva tendencia se establece cuando el precio cae por encima o por debajo de su promedio de precios históricos (tendencia). Aquí hay un gráfico que traza tanto el precio (línea azul) como el MA de 20 días (línea roja) de IBM: Breakout Systems El concepto fundamental detrás de este tipo de sistema es similar al de un sistema de media móvil. La idea es que cuando un nuevo alto o bajo se establece, el movimiento de precios es más probable que continúe en la dirección de la ruptura. Un indicador que se puede utilizar en la determinación de los desgloses es una sencilla capa de Bollinger Band. Bandas de Bollinger muestran los promedios de los precios altos y bajos, y los brotes se producen cuando el precio se encuentra con los bordes de las bandas. Desventajas de los sistemas de seguimiento de tendencias: Necesidad de toma de decisiones empíricas - Al determinar las tendencias, siempre hay un elemento empírico a considerar: la duración de las tendencias La tendencia histórica. Por ejemplo, el promedio móvil podría ser durante los últimos 20 días o durante los últimos cinco años, por lo que el desarrollador debe determinar cuál es el mejor para el sistema. Otros factores a determinar son los altos y bajos medios en los sistemas de ruptura. Lagging Nature - Los promedios móviles y los sistemas breakout siempre estarán rezagados. En otras palabras, nunca pueden golpear la parte superior o inferior exacta de una tendencia. Esto inevitablemente se traduce en la pérdida de beneficios potenciales, que a veces pueden ser significativos. Efecto Whipsaw - Entre las fuerzas del mercado que son perjudiciales para el éxito de los sistemas de seguimiento de tendencias, este es uno de los más comunes. El efecto whipsaw ocurre cuando el promedio móvil genera una señal falsa, es decir, cuando el promedio cae justo en el rango, repentinamente invierte la dirección. Esto puede conducir a pérdidas masivas a menos que se empleen técnicas eficaces de detención de pérdidas y de gestión de riesgos. Mercados laterales - Los sistemas de seguimiento de tendencias son, por naturaleza, capaces de hacer dinero sólo en los mercados que realmente hacen tendencia. Sin embargo, los mercados también se mueven de lado. Permaneciendo dentro de un cierto rango durante un período de tiempo prolongado. La volatilidad extrema puede ocurrir - Ocasionalmente, los sistemas que siguen las tendencias pueden experimentar cierta volatilidad extrema, pero el comerciante debe seguir con su sistema. La imposibilidad de hacerlo resultará en un fallo seguro. Sistemas de contra-tendencias Básicamente, el objetivo con el sistema de contra-tendencias es comprar al mínimo más bajo y venderlo al más alto. La principal diferencia entre esto y el sistema de seguimiento de tendencias es que el sistema de contracorriente no es autocorregible. En otras palabras, no hay tiempo establecido para salir de las posiciones, y esto da como resultado un potencial de desventaja ilimitado. Tipos de sistemas de contra-tendencias Muchos tipos diferentes de sistemas se consideran sistemas de contra-tendencia. La idea aquí es comprar cuando el impulso en una dirección comienza a desvanecerse. Esto se calcula con mayor frecuencia usando osciladores. Por ejemplo, se puede generar una señal cuando los estocásticos u otros indicadores de fuerza relativa caen por debajo de ciertos puntos. Hay otros tipos de sistemas de trading de contra-tendencia, pero todos comparten el mismo objetivo fundamental: comprar bajo y vender alto. Desventajas de los sistemas de seguimiento de la contracorriente: Se requiere una toma de decisiones estratégica - Por ejemplo, uno de los factores que el desarrollador del sistema debe decidir son los puntos en los que se desvanecen los indicadores de fuerza relativa. Puede ocurrir una extrema volatilidad - Estos sistemas también pueden experimentar cierta volatilidad extrema, y ​​una incapacidad para seguir con el sistema a pesar de esta volatilidad resultará en un fracaso asegurado. Downside ilimitado - Como se mencionó anteriormente, hay potencial de desventaja ilimitado porque el sistema no es auto-corrección (no hay tiempo establecido para salir de las posiciones). Conclusión Los principales mercados para los que son adecuados los sistemas de negociación son los mercados de renta variable, forex y futuros. Cada uno de estos mercados tiene sus ventajas y desventajas. Los dos principales géneros de los sistemas de negociación son los sistemas de tendencia y los sistemas de contracorriente. A pesar de sus diferencias, ambos tipos de sistemas, en sus etapas de desarrollo, requieren la toma de decisiones empíricas por parte del desarrollador. Además, estos sistemas están sujetos a una extrema volatilidad y esto puede exigir un poco de resistencia - es esencial que el comerciante del sistema se adhieren a su sistema durante estos tiempos. En la siguiente entrega, y eche un vistazo más de cerca a cómo diseñar un sistema comercial y discutir algunos de los software que utilizan los comerciantes del sistema para hacer sus vidas más fáciles. Un sistema comercial es simplemente un grupo de reglas específicas, o parámetros, que determinan los puntos de entrada y salida para un sistema de negociación determinado. equidad. Estos puntos, conocidos como señales, a menudo se marcan en un gráfico en tiempo real y provocan la ejecución inmediata de un comercio. Aquí están algunas de las herramientas de análisis técnico más utilizadas para construir los parámetros de los sistemas de negociación: Promedios móviles (MA) 13 Estocástico 13 Osciladores 13 Fuerza relativa 13 Bandas de Bollinger A menudo, dos o más de estas formas de indicadores se combinarán en la creación De una regla. Por ejemplo, el sistema de crossover MA utiliza dos parámetros de media móvil, el largo plazo y el corto plazo, para crear una regla: comprar cuando el corto plazo cruza por encima del largo plazo, y vender cuando lo contrario es cierto. En otros casos, una regla utiliza sólo un indicador. Por ejemplo, un sistema puede tener una regla que prohíba cualquier compra a menos que la fuerza relativa esté por encima de cierto nivel. Sin embargo, es una combinación de todos estos tipos de reglas que hace que un sistema de negociación. MSFT Moving Average Cross-Over System Usando 5 y 20 promedios móviles Como el éxito de todo el sistema depende de lo bien que funcionan las reglas, los operadores del sistema pasan tiempo optimizando Con el fin de gestionar el riesgo. Aumentar la cantidad ganada por comercio y lograr estabilidad a largo plazo. Esto se hace modificando diferentes parámetros dentro de cada regla. Por ejemplo, para optimizar el sistema de crossover MA, un operador probaría para ver qué medias móviles (10 días, 30 días, etc.) funcionan mejor y luego implementarlas. Pero la optimización puede mejorar los resultados por sólo un pequeño margen - es la combinación de parámetros utilizados que en última instancia determinará el éxito de un sistema. Ventajas Por lo tanto, ¿por qué podría usted quiere adoptar un sistema de comercio Se necesita toda la emoción de la negociación - La emoción se cita a menudo como uno de los mayores defectos de los inversores individuales. Los inversores que son incapaces de hacer frente a las pérdidas de segundo adivinar sus decisiones y terminan perdiendo dinero. Siguiendo estrictamente un sistema pre-desarrollado, los comerciantes del sistema pueden renunciar a la necesidad de tomar cualquier decisión una vez que el sistema es desarrollado y establecido, el comercio no es empírico, ya que es automatizado. Al reducir las ineficiencias humanas, los comerciantes del sistema pueden aumentar los beneficios. Se puede ahorrar mucho tiempo - Una vez que un sistema eficaz es desarrollado y optimizado. Poco o ningún esfuerzo es requerido por el comerciante. Las computadoras se utilizan a menudo para automatizar no sólo la generación de señal, sino también el comercio actual, por lo que el comerciante se libera de pasar tiempo en el análisis y hacer trades. Its fácil si deja que otros lo hacen por usted - Necesita todo el trabajo hecho por Algunas empresas venden sistemas comerciales que han desarrollado. Otras compañías le darán las señales generadas por sus sistemas de comercio interno por una cuota mensual. Tenga cuidado, sin embargo - muchas de estas empresas son fraudulentas. Eche un vistazo a los resultados que se jactan sobre se tomaron. Después de todo, es fácil ganar en el pasado. Busque empresas que ofrecen una prueba, que le permite probar el sistema en tiempo real. Desventajas Hemos examinado las principales ventajas de trabajar con un sistema de comercio, pero el enfoque también tiene sus inconvenientes. Los sistemas de comercio son complejos - Este es su mayor inconveniente. En las etapas de desarrollo, los sistemas comerciales exigen una sólida comprensión del análisis técnico, la capacidad de tomar decisiones empíricas y un conocimiento profundo de cómo funcionan los parámetros. Pero incluso si usted no está desarrollando su propio sistema de comercio, es importante estar familiarizado con los parámetros que componen el que está utilizando. La adquisición de todas estas habilidades puede ser un desafío. Usted debe ser capaz de hacer suposiciones realistas y emplear eficazmente el sistema - Los comerciantes del sistema deben hacer suposiciones realistas sobre los costos de transacción. Estos serán más que costos de comisión - la diferencia entre el precio de ejecución y el precio de llenado es una parte de los costos de transacción. Tenga en cuenta, a menudo es imposible probar los sistemas con precisión, causando un grado de incertidumbre al llevar el sistema en vivo. Los problemas que ocurren cuando los resultados simulados difieren mucho de los resultados reales se conocen como deslizamiento. Efectivamente lidiar con el deslizamiento puede ser un obstáculo importante para desplegar un sistema exitoso. El desarrollo puede ser una tarea que requiere mucho tiempo - Un montón de tiempo puede ir en el desarrollo de un sistema comercial para que funcione y funcione correctamente. Diseñar un concepto de sistema y ponerlo en práctica implica un montón de pruebas, lo que toma un tiempo. El backtesting histórico toma algunos minutos sin embargo, la prueba posterior solamente no es suficiente. Los sistemas también deben ser comercializados en papel en tiempo real para garantizar la fiabilidad. Finalmente, el deslizamiento puede hacer que los comerciantes hagan varias revisiones a sus sistemas incluso después del despliegue. ¿Trabajan Hay un número de estafas de Internet relacionadas con el sistema de comercio, pero también hay muchos legítimos, los sistemas de éxito. Quizás el ejemplo más famoso es el desarrollado e implementado por Richard Dennis y Bill Eckhardt, quienes son los Comerciantes de Tortugas Originales. En 1983, estos dos tenían una disputa sobre si un buen comerciante es nacido o hecho. Por lo tanto, se tomó a algunas personas de la calle y los entrenó basado en su ahora famoso sistema de comercio de tortugas. Se reunieron 13 comerciantes y terminó haciendo 80 anualmente durante los próximos cuatro años. Bill Eckhardt dijo una vez, cualquier persona con inteligencia promedio puede aprender a comerciar. Esto no es ciencia de cohetes. Sin embargo, es mucho más fácil aprender lo que debe hacer en el comercio que hacerlo. Los sistemas de comercio se están volviendo cada vez más populares entre los comerciantes profesionales, los gestores de fondos y los inversores individuales por igual - tal vez esto es un testamento de lo bien que trabajan. Dealing con estafas Cuando se mira para comprar un sistema comercial, puede ser difícil encontrar un negocio confiable . Pero la mayoría de las estafas pueden ser detectadas por el sentido común. Por ejemplo, una garantía de 2.500 anuales es claramente escandalosa, ya que promete que con sólo 5.000 que podría hacer 125.000 en un año. Y luego a través de la composición de cinco años, 48,828,125,000 Si esto fuera cierto, no el creador de comercio su forma de convertirse en un multimillonario Otras ofertas, sin embargo, son más difíciles de decodificar, pero una forma común de evitar las estafas es buscar sistemas que Ofrecen una prueba gratuita. De esta manera usted puede probar el sistema usted mismo. Nunca confíe ciegamente en el negocio se jacta. También es una buena idea contactar a otros que han utilizado el sistema, para ver si pueden afirmar su fiabilidad y rentabilidad. Conclusión Desarrollar un sistema de comercio eficaz no es una tarea fácil. Requiere una comprensión sólida de los muchos parámetros disponibles, la capacidad de hacer suposiciones realistas y el tiempo y la dedicación para desarrollar el sistema. Sin embargo, si se desarrolla y despliega correctamente, un sistema comercial puede producir muchas ventajas. Puede aumentar la eficiencia, liberar tiempo y, lo más importante, aumentar sus ganancias. Anteriormente en este blog he escrito sobre la arquitectura conceptual de un sistema de negociación algorítmica inteligente, así como sobre los requisitos funcionales y no funcionales de un sistema de trading algorítmico de producción. Desde entonces he diseñado una arquitectura de sistema que creo que podría satisfacer los requisitos arquitectónicos. En este post describiré la arquitectura siguiendo las directrices de los estándares ISO / IEC / IEEE 42010 y el estándar de descripción de arquitectura de ingeniería de software. De acuerdo con esta norma, una descripción de la arquitectura debe: • Contener múltiples vistas estandarizadas de arquitectura (por ejemplo, en UML) y • Mantener la trazabilidad entre las decisiones de diseño y los requisitos arquitectónicos Definición de la arquitectura de software Todavía no hay consenso sobre lo que es una arquitectura de sistemas. En el contexto de este artículo, se define como la infraestructura dentro de la cual se pueden especificar, desplegar y ejecutar componentes de aplicación que satisfacen requisitos funcionales. Los requisitos funcionales son las funciones esperadas del sistema y sus componentes. Los requisitos no funcionales son medidas a través de las cuales se puede medir la calidad del sistema. Un sistema que satisface plenamente sus requisitos funcionales puede todavía no satisfacer las expectativas si los requisitos no funcionales se dejan insatisfechos. Para ilustrar este concepto, considere el siguiente escenario: un sistema de negociación algorítmico que acaba de adquirir / construye hace excelentes decisiones comerciales, pero es completamente inoperable con las organizaciones de gestión de riesgos y sistemas de contabilidad. Este sistema satisface sus expectativas Arquitectura Conceptual Una visión conceptual describe conceptos y mecanismos de alto nivel que existen en el sistema en el nivel más alto de granularidad. A este nivel, el sistema de comercio algorítmico sigue una arquitectura impulsada por eventos (EDA) dividida en cuatro capas, y dos aspectos arquitectónicos. Para cada capa y aspecto se utilizan arquitecturas y patrones de referencia. Los patrones arquitectónicos son estructuras probadas y genéricas para lograr requisitos específicos. Los aspectos arquitectónicos son preocupaciones transversales que abarcan múltiples componentes. Arquitectura impulsada por eventos: una arquitectura que produce, detecta, consume y reacciona ante eventos. Los eventos incluyen movimientos del mercado en tiempo real, eventos o tendencias complejas y eventos comerciales, p. Presentar una orden. Este diagrama ilustra la arquitectura conceptual del sistema de comercio algorítmico. Arquitectura de referencia Para utilizar una analogía, una arquitectura de referencia es similar a los planos para una pared portante. Esta impresión azul puede ser reutilizada para diseños de edificios múltiples, independientemente de qué edificio se está construyendo, ya que satisface un conjunto de requisitos comunes. De manera similar, una arquitectura de referencia define una plantilla que contiene estructuras genéricas y mecanismos que pueden usarse para construir una arquitectura de software concreta que satisface requisitos específicos. La arquitectura para el sistema de comercio algorítmico utiliza una arquitectura basada en el espacio (SBA) y un controlador de vista de modelo (MVC) como referencias. También se utilizan buenas prácticas, como el almacén de datos operativos (ODS), el patrón de transformación y carga de extracciones (ETL) y un almacén de datos (DW). Controlador de vista de modelo: un patrón que separa la representación de la información de la interacción del usuario con ella. Arquitectura basada en el espacio: especifica una infraestructura en la que las unidades de procesamiento ligeramente acopladas interactúan entre sí a través de una memoria asociativa compartida llamada espacio (se muestra a continuación). Vista estructural La vista estructural de una arquitectura muestra los componentes y subcomponentes del sistema de negociación algorítmica. También muestra cómo se implementan estos componentes en la infraestructura física. Los diagramas UML utilizados en esta vista incluyen diagramas de componentes y diagramas de implementación. A continuación se muestra la galería de los diagramas de despliegue del sistema de negociación algorítmica global y las unidades de procesamiento en la arquitectura de referencia SBA, así como diagramas de componentes relacionados para cada una de las capas. Tácticas arquitectónicas Según el instituto de ingeniería de software una táctica arquitectónica es un medio de satisfacer un requisito de calidad mediante la manipulación de algunos aspectos de un modelo de atributos de calidad a través de decisiones de diseño arquitectónico. Un ejemplo sencillo utilizado en la arquitectura del sistema de negociación algorítmica es la manipulación de un almacén de datos operativos (ODS) con un componente de consulta continua. Este componente analizaría continuamente las ODS para identificar y extraer eventos complejos. Las siguientes tácticas se utilizan en la arquitectura: El patrón disruptor en el evento y las colas de orden Memoria compartida para el evento y las colas de orden Lenguaje de consulta continua (CQL) en el ODS Filtrado de datos con el patrón de diseño del filtro en los datos entrantes Algoritmos de evitación de congestión en todos (AQM) y notificación de congestión explícita Recursos de computación de productos básicos con capacidad de actualización (escalable) Redundancia activa para todos los puntos de falla individuales Indexación y estructuras de persistencia optimizadas en el ODS Programar scripts regulares de copia de seguridad y limpieza de datos ODS Historial de transacciones en todas las bases de datos Checksums para todos los pedidos para detectar fallos Anotar eventos con marcas de tiempo para omitir eventos antiguos Reglas de validación de orden, por ejemplo Cantidades máximas de comercio Componentes automatizados de comerciantes utilizan una base de datos en memoria para el análisis Autenticación de dos etapas para interfaces de usuario que se conectan a los ATs Cifrado en interfaces de usuario y conexiones a los ATs Patrón de diseño de observador para MVC para gestionar vistas La lista anterior son sólo unos pocos diseño Decisiones que identifiqué durante el diseño de la arquitectura. No es una lista completa de tácticas. A medida que se está desarrollando el sistema, se deben emplear tácticas adicionales a través de múltiples niveles de granularidad para satisfacer requisitos funcionales y no funcionales. A continuación se muestran tres diagramas que describen el patrón de diseño del disruptor, el patrón de diseño del filtro y el componente de consulta continua. Vista de Comportamiento Esta vista de una arquitectura muestra cómo los componentes y las capas deben interactuar entre sí. Esto es útil cuando se crean escenarios para probar diseños de arquitectura y para entender el sistema de extremo a extremo. Esta vista consiste en diagramas de secuencia y diagramas de actividad. Los diagramas de actividad que muestran el proceso interno de los sistemas de negociación algorítmica y cómo se supone que los comerciantes interactúan con el sistema de comercio algorítmico se muestran a continuación. Tecnologías y marcos El paso final en el diseño de una arquitectura de software es identificar posibles tecnologías y marcos que podrían ser utilizados para realizar la arquitectura. Como principio general es mejor aprovechar las tecnologías existentes, siempre que satisfagan adecuadamente los requisitos tanto funcionales como no funcionales. Un marco es una arquitectura de referencia realizada, p. JBoss es un framework que realiza la arquitectura de referencia JEE. Las siguientes tecnologías y marcos son interesantes y deben ser considerados al implementar un sistema de trading algorítmico: CUDA - NVidia tiene una serie de productos que soportan el modelado de finanzas computacionales de alto rendimiento. Uno puede lograr hasta 50x mejoras de rendimiento en la ejecución de simulaciones de Monte Carlo en la GPU en lugar de la CPU. Apache River - River es un kit de herramientas usado para desarrollar sistemas distribuidos. Se ha utilizado como un marco para la construcción de aplicaciones basadas en el patrón SBA Apache Hadoop - en el caso de que el registro generalizado es un requisito, entonces el uso de Hadoop ofrece una solución interesante para el problema de los grandes datos. Hadoop se puede implementar en un entorno de clúster que admita tecnologías CUDA. AlgoTrader - una plataforma de trading algorítmica de código abierto. AlgoTrader podría potencialmente ser desplegado en el lugar de los componentes automatizados del comerciante. FIX Engine - una aplicación independiente que admite los protocolos de intercambio de información financiera (FIX) incluyendo FIX, FAST y FIXatdl. Aunque no es una tecnología o un marco, los componentes deben ser construidos con una interfaz de programación de aplicaciones (API) para mejorar la interoperabilidad del sistema y sus componentes. Conclusión La arquitectura propuesta ha sido diseñada para satisfacer requisitos muy genéricos identificados para los sistemas de negociación algorítmica. En general, los sistemas de negociación algorítmica se complican por tres factores que varían con cada implementación: Dependencias de la empresa externa y sistemas de intercambio Desafiar los requisitos no funcionales y Evolucionar restricciones arquitectónicas Por lo tanto, la arquitectura de software propuesta debe adaptarse caso por caso para Para satisfacer requisitos organizativos y normativos específicos, así como para superar las limitaciones regionales. La arquitectura del sistema de trading algorítmico debe ser vista como un punto de referencia para individuos y organizaciones que desean diseñar sus propios sistemas de trading algorítmicos. Para obtener una copia completa y las fuentes utilizadas, descargue una copia de mi informe. Gracias. TagsAlgorithmic Trading Requisitos del sistema Actualmente estoy tomando una clase sobre arquitecturas de software. Para esta clase cada estudiante elige un sistema, define sus requisitos arquitectónicos y diseña una solución capaz de satisfacer esos requisitos. Elegí un sistema de comercio algorítmico debido al desafío tecnológico y porque me encanta los mercados financieros. Los sistemas de negociación algorítmica (ATs) utilizan algoritmos computacionales para tomar decisiones comerciales, enviar pedidos y administrar pedidos después de la presentación. En los últimos años ATs han ganado popularidad y ahora representan la mayoría de los oficios puestos a través de intercambios internacionales. Distinción se hace entre el comercio programado y el comercio algorítmico. El comercio programado consiste en dividir las órdenes de grandes mercados en paquetes de acciones más pequeñas. En este artículo, el comercio programado se considera un requisito de seguridad de un ATs. Introducción a los sistemas de negociación algorítmica Hablando en general, hay cinco tipos de participantes en el mercado: los inversores minoristas, los comerciantes propietarios, los creadores de mercado, las instituciones de compra y las instituciones de venta. ATs son más utilizados por las instituciones propietarias de buy-side, pero esta dinámica está cambiando. Algorithmic trading as a service (ATAAS) hace que el comercio algorítmico sea accesible al inversor minorista (ver apéndice). En este artículo se describen los requisitos arquitectónicos de un ATs utilizado por una entidad propietaria de buy-side. En la parte superior más nivel, un AT tiene tres funciones: tomar decisiones comerciales, crear órdenes comerciales, y administrar los pedidos después de la presentación. Debajo de estos hay una serie de requisitos funcionales más detallados, algunos de los cuales pueden ser satisfechos por la arquitectura. Introducción a la arquitectura de software Mucho debate aún rodea la definición de lo que es una arquitectura de software. En el contexto de este artículo, la arquitectura de software se define como la infraestructura en la que se pueden especificar, desplegar y ejecutar los componentes de la aplicación que proporcionan la funcionalidad del usuario. Un sistema de software debe satisfacer sus requisitos funcionales y no funcionales. Los requisitos funcionales especifican las funciones de los componentes del sistema. Los requisitos no funcionales especifican las medidas a través de las cuales se mide el rendimiento del sistema. Un sistema de software que satisface sus requisitos funcionales, puede todavía no satisfacer las expectativas del usuario, p. Un ATs que puede presentar oficios, pero no de manera oportuna, podría causar pérdidas financieras. La arquitectura del software básicamente proporciona una infraestructura que satisface los requisitos no funcionales y dentro del cual se pueden implementar y ejecutar componentes que satisfacen requisitos funcionales. Por lo tanto, los requisitos de los sistemas de comercio algorítmicos se pueden dividir ampliamente en requisitos funcionales y no funcionales. Requisitos funcionales Debajo de las decisiones de toma de decisiones nivel superior requisito hay tres requisitos de alto nivel: Obtener datos de mercado - descargar, filtrar y almacenar datos estructurados y no estructurados. Los datos estructurados incluyen datos de mercado en tiempo real de Reuters o Bloomberg transmitidos usando un protocolo, p. FIJAR. Los datos no estructurados incluyen noticias y datos de redes sociales. Definir estrategia de negociación - especificar nuevas reglas y estrategias comerciales. La regla de negociación consiste en un indicador, una desigualdad y un valor numérico, p. PE ratio lt 10. Las reglas de negociación se estructuran en un árbol de decisión para definir una estrategia comercial (ilustrada a continuación). Analizar los valores frente a la estrategia de negociación - para cada seguridad, obtener datos y filtrarlo a través de la estrategia de negociación para determinar qué seguridad comprar. Además: para cada posición abierta, determine qué seguridad vender. Nota: este requisito podría variar. Debajo del requisito de nivel superior de las órdenes comerciales de la demanda allí es dos requisitos de alto nivel: Consiga la información comercial - para cada decisión, consiga el símbolo de la seguridad, el precio, la cantidad, el etc. crea orden comercial - para cada decisión, especifica un tipo de orden y agrega la información comercial . Hay seis tipos de orden: largo, corto, mercado, límite, parada y condicional. Debajo del requisito de alto nivel de órdenes de gestión hay tres requisitos de alto nivel: Gestionar pedidos pendientes - para cada pedido, validar y confirmar el pedido Ruta / enviar pedidos - enrutar cada pedido a un intercambio, piscina oscura o corretaje De cada orden presentada, si la orden es emparejada entonces crea una posición abierta. Si el pedido no coincide, detenga el pedido. Este diagrama muestra cómo una estrategia de negociación podría definirse como un árbol de decisiones de las reglas de comercio. Requisitos no funcionales Existen muchos requisitos no funcionales que se intercambian entre sí, por ejemplo. El mayor rendimiento a menudo se produce con un mayor costo total de propiedad. Los requisitos del sistema de negociación algorítmica no funcional incluyen, Escalabilidad - es la capacidad de un sistema para hacer frente y actuar bajo una carga de trabajo aumentada o en expansión. Un ATs debe ser escalable con respecto al número de feeds de datos en los procesos, número de intercambios que negocia, y los valores que puede negociar. Rendimiento - es la cantidad de trabajo realizado por un sistema en comparación con el tiempo y los recursos necesarios para hacer ese trabajo. Un ATs debe tener tiempos de respuesta rápida (volver al mercado) y un alto procesamiento y rendimiento de la red. Modificabilidad: es la facilidad con la que se puede cambiar el sistema. Un AT debe tener estrategias de negociación fácilmente modificables y procesamiento de datos. Confiabilidad - es la exactitud y fiabilidad de un sistema para producir salidas correctas para las entradas que recibe. Debido a errores y errores en un ATs puede dar lugar a enormes pérdidas y multas, la fiabilidad es crucial. Ver la debacle capital Knight para la evidencia de esto. Auditoría - es la facilidad con la que el sistema puede ser auditado. Recientes casos de alto perfil de ATs ir loco han puesto ATs en el centro de atención para las empresas de auditoría. Por lo tanto, deben ser auditables desde el punto de vista financiero, de cumplimiento y de TI. Seguridad - es la seguridad de una organización contra actividades criminales como terrorismo, robo o espionaje. Debido a que las estrategias comerciales son propietarias y representan una valiosa propiedad intelectual, deben ser aseguradas. Además, para proteger a los ATs de la caza, las órdenes deben ser ofuscadas mediante estrategias de negociación programadas. Tolerancia a fallos - es la capacidad de un sistema para seguir funcionando correctamente después de una falla o falla. Esto es similar a la confiabilidad, excepto que los ATs deben seguir siendo confiables incluso después de una falla para evitar pérdidas financieras. Interoperabilidad - es la facilidad con la que el sistema es capaz de operar con una amplia gama de sistemas relacionados. Esto es importante para un ATs que puede ser necesario para interactuar con sistemas de gestión de pedidos, sistemas de gestión de cartera, sistemas de gestión de riesgos, sistemas de contabilidad e incluso sistemas bancarios. Visión general del ámbito arquitectónico El ámbito arquitectónico es el conjunto de servicios soportados por la arquitectura que son consumidos por los componentes para satisfacer sus requisitos funcionales y no funcionales. Un desglose más detallado de este alcance arquitectónico está disponible en el documento detallado de requisitos. En un nivel alto, la arquitectura debería proporcionar los siguientes servicios: Un entorno de procesamiento de datos modificable, que admita múltiples flujos de datos, filtros para datos irrelevantes y partición de datos temporales Un entorno de procesamiento distribuido que admite múltiples unidades de procesamiento (Clusters), monitoreo de rendimiento en tiempo real, un marco de comunicación orientado a mensajes, programación de conjuntos de datos temporales, balanceo de carga y replicación de datos Unidades de procesamiento individuales - que soporta colas en memoria y procesamiento de eventos complejos Un entorno de recuperación de datos (DR) - Replica el SAN y el sistema de gestión de pedidos Un entorno de integración - que expone una API estándar para los componentes y se conecta Componentes internos y externos entre sí Un sistema de gestión de pedidos que soporta corrientes de entrada concurrentes, redundancia pasiva y equilibrio de carga, criterios ACID en órdenes, un rastro de auditoría y se replica Un entorno de uso del sistema que admite varios perfiles de usuario y expone un Completamente gestionado front-end al sistema de comercio algorítmico Requisitos de acceso e integración Requisitos de acceso describen formas en las que los usuarios pueden acceder a los componentes de sistemas. Un sistema de comercio algorítmico debe exponer tres interfaces: una interfaz para definir nuevas reglas comerciales, estrategias comerciales y fuentes de datos; una interfaz de fondo para que los administradores del sistema agreguen clústeres y configuren la arquitectura y una interfaz de auditoría de sólo lectura para comprobar los controles de TI y Derechos de acceso de los usuarios. Los requisitos previos para la integración entre componentes y sistemas externos se denominan requisitos de integración. El sistema de comercio algorítmico debe apoyar la integración basada en archivos, la integración basada en mensajes y la integración de bases de datos. Como tal, la arquitectura debe satisfacer los siguientes requisitos: Integración de base de datos - soporte ODBC, JDBC, ADO y XQC Integración basada en archivos - admite archivos CSV, XML y JSON Integración basada en mensajes - admite FIX. RÁPIDO. Y FIXatdl Restricciones arquitectónicas Los puntos azules muestran las ubicaciones físicas donde se minimiza la latencia de la red y los puntos rojos muestran las ubicaciones físicas de los grandes intercambios financieros. Con el fin de maximizar el rendimiento del sistema de comercio algorítmico, se debe alojar el sistema en ubicaciones que minimizan la latencia de la red. Fuente: prensa abierta del MIT: dspace. mit. edu/handle/1721.1/6285 Las restricciones arquitectónicas son factores que limitan el rendimiento de la arquitectura que se está construyendo. Las dos limitaciones que voy a mencionar aquí son las restricciones físicas de la red, y las restricciones reguladoras. Las restricciones físicas de la red se colocan en un sistema como resultado de las pobres redes de telecomunicaciones. Para mitigar esta limitación, el sistema debe ser construido donde la latencia de red se minimiza. Otra forma de mitigar las restricciones de red es co-localizar el sistema de comercio algorítmico con el intercambio de mercado. Dicho esto, la decisión de co-localizar introduce restricciones adicionales de procesamiento y espacio. Las restricciones reglamentarias se introducen a través de leyes y reglamentos, que son en su mayoría de países y de intercambio específico. Este es un factor cada vez más importante en el diseño y la implementación de un sistema de negociación algorítmica porque el comercio algorítmico se está volviendo más regulado después de la caída del flash 2010. Hablando en general, los ATs deben cumplir al menos las normas de la SEC sobre el cumplimiento e integridad del sistema (SCI), las directrices EMEA para los sistemas de negociación algorítmica, las normas de negociación algorítmica ISO9000 (AT9000) y las normas internacionales de información financiera (IFRS) . Conclusión Las arquitecturas algorítmicas de los sistemas comerciales se complican por los estrictos requisitos no funcionales que se esperan del sistema y por la amplia gama de requisitos reglamentarios y de conformidad que rigen el comercio automatizado. Debido a estas complejidades, se debe considerar cuidadosamente el diseño e implementación de la arquitectura del sistema. Al diseñar una arquitectura de código abierto de algoritmos comerciales espero señalar aquellos requisitos arquitectónicos que a menudo se pasan por alto en el inicio del diseño de tales sistemas. Es improbable que los requisitos identificados en este documento sean completos y evolucionen inevitablemente con el tiempo. La segunda parte de este artículo incluirá mi diseño para una arquitectura de software que cumpla con los requisitos mencionados anteriormente. Para obtener más información acerca de la negociación algorítmica, no dude en ponerse en contacto conmigo. Para descargar una copia de mi informe, haga clic aquí. Para obtener una lista completa de fuentes, consulte el informe Apéndice Los proveedores de servicios ATAAS incluyen, pero no están limitados a: Quantopian: los usuarios definen estrategias de negociación cuantitativas en Python y pueden volver a probarlas. Los usuarios también pueden ejecutar esas estrategias en los mercados en vivo. Quantopian recibió recientemente una inversión de 6,7 millones de dólares para ampliar sus servicios. EquaMetrics - usando los usuarios de RIZM construye visualmente nuevas estrategias de negociación algorítmicas, respalda esas estrategias y ejecuta esas estrategias en los mercados en vivo. EquaMetrics anunció recientemente nuevos fondos para RIZM valuados en 4,5 millones de dólares. Corretajes: algunas corretajes permiten a los comerciantes crear bots comerciales que ejecutan automáticamente sus estrategias comerciales. El aumento de la competencia, el mayor volumen de datos del mercado y las nuevas demandas regulatorias son algunas de las fuerzas que impulsan los cambios en la industria. Las empresas están tratando de mantener su ventaja competitiva mediante el constante cambio de sus estrategias comerciales y el aumento de la velocidad de la negociación. Una arquitectura viable tiene que incluir las últimas tecnologías tanto de la red como de los dominios de aplicación. Tiene que ser modular para proporcionar una ruta manejable para evolucionar cada componente con la interrupción mínima al sistema total. Por lo tanto, la arquitectura propuesta por este documento se basa en un marco de servicios. Examinamos servicios como mensajería de latencia ultrabaja, supervisión de latencia, multidifusión, computación, almacenamiento, virtualización de datos y aplicaciones, capacidad de negociación, movilidad comercial y cliente ligero. La solución a los complejos requisitos de la plataforma comercial de próxima generación debe ser construida con una mentalidad holística, cruzando los límites de los silos tradicionales como el negocio y la tecnología o aplicaciones y redes. Este objetivo principal de los documentos es proporcionar directrices para la construcción de una plataforma de negociación de latencia ultra baja, mientras que la optimización de la velocidad de procesamiento y de mensajes sin procesar para los datos de mercado y las órdenes de comercio FIX. Para ello, proponemos las siguientes tecnologías de reducción de latencia: Conectividad de alta velocidadInfiniBand o conectividad de 10 Gbps para el cluster de negociación Bus de mensajería de alta velocidad Aceleración de aplicaciones a través de RDMA sin re-código de aplicación Monitorización de latencia en tiempo real y reorientación de Comercio de tráfico a la ruta con una latencia mínima Tendencias y desafíos de la industria Las arquitecturas comerciales de última generación tienen que responder a las crecientes demandas de velocidad, volumen y eficiencia. Por ejemplo, se espera que el volumen de datos de mercado de opciones se duplique después de la introducción de las opciones de comercio de peniques en 2007. También hay demandas regulatorias para la mejor ejecución, que requieren actualizaciones de precios de manipulación a tasas que se acercan a 1M msg / s. Para intercambios. También requieren visibilidad de la frescura de los datos y la prueba de que el cliente tiene la mejor ejecución posible. A corto plazo, la velocidad de la negociación y la innovación son factores clave de diferenciación. Un número creciente de transacciones se manejan mediante aplicaciones de negociación algorítmica situadas lo más cerca posible del lugar de ejecución del comercio. Un desafío con estos motores de negociación de caja negra es que se compone el aumento de volumen mediante la emisión de órdenes sólo para cancelarlos y volver a presentarlos. La causa de este comportamiento es la falta de visibilidad en qué lugar ofrece la mejor ejecución. El comerciante humano es ahora un ingeniero quotfinancial, quotquantquot (analista cuantitativo) con habilidades de programación, que puede ajustar los modelos de comercio sobre la marcha. Las empresas desarrollan nuevos instrumentos financieros como los derivados del tiempo o las operaciones de clase de activos cruzados y necesitan implementar las nuevas aplicaciones de forma rápida y escalable. A largo plazo, la diferenciación competitiva debe proceder del análisis, no sólo del conocimiento. Los comerciantes estrella de mañana asumen el riesgo, logran la verdadera percepción del cliente y constantemente superan el mercado (fuente IBM: www-935.ibm/services/us/imc/pdf/ge510-6270-trader. pdf). La resiliencia del negocio ha sido una de las principales preocupaciones de las empresas comerciales desde el 11 de septiembre de 2001. Las soluciones en esta área abarcan desde centros de datos redundantes situados en diferentes geografías y conectados a múltiples centros de negociación a soluciones de comerciante virtual que ofrecen a los comerciantes de energía la mayor parte de la funcionalidad de una planta comercial En una ubicación remota. El sector de los servicios financieros es uno de los más exigentes en términos de requisitos de TI. La industria está experimentando un cambio arquitectónico hacia la arquitectura orientada a servicios (SOA), los servicios Web y la virtualización de los recursos de TI. SOA aprovecha el aumento de la velocidad de red para permitir la vinculación dinámica y la virtualización de componentes de software. Esto permite la creación de nuevas aplicaciones sin perder la inversión en sistemas e infraestructura existentes. El concepto tiene el potencial de revolucionar la forma en que se realiza la integración, permitiendo reducciones significativas en la complejidad y costo de dicha integración (www. gigaspaces / download / MerrilLynchGigaSpacesWP. pdf). Otra tendencia es la consolidación de los servidores en las granjas de servidores de centros de datos, mientras que los escritorios de comerciantes sólo tienen extensiones KVM y clientes ultra-delgados (por ejemplo, soluciones blade SunRay y HP). Las redes de área metropolitana de alta velocidad permiten que los datos de mercado se difundan entre diferentes ubicaciones, lo que permite la virtualización del mercado. Arquitectura de alto nivel La Figura 1 muestra la arquitectura de alto nivel de un entorno comercial. La planta ticker y los motores de negociación algorítmica se encuentran en el cluster de alto rendimiento en el centro de datos de las empresas o en el intercambio. Los comerciantes humanos se encuentran en el área de aplicaciones de usuario final. Funcionalmente hay dos componentes de aplicación en el entorno empresarial de comercio, editores y suscriptores. El bus de mensajería proporciona la ruta de comunicación entre editores y suscriptores. Existen dos tipos de tráfico específicos para un entorno comercial: Información de precios de Market DataCarries para instrumentos financieros, noticias y otra información de valor agregado como análisis. Es unidireccional y muy sensible a la latencia, normalmente entregado a través de UDP multicast. Se mide en actualizaciones / seg. Y en Mbps. Los datos de mercado fluyen de uno o varios feeds externos, procedentes de proveedores de datos de mercado como bolsas de valores, agregadores de datos y ECN. Cada proveedor tiene su propio formato de datos del mercado. Los datos son recibidos por manipuladores de alimentación, aplicaciones especializadas que normalizan y limpian los datos y luego los envían a los consumidores de datos, como motores de fijación de precios, aplicaciones de negociación algorítmica o comerciantes humanos. Las firmas de venta también envían los datos de mercado a sus clientes, las firmas de buy-side tales como fondos mutuos, hedge funds y otros gestores de activos. Algunas firmas compradoras pueden optar por recibir alimentos directos de los intercambios, lo que reduce la latencia. Figura 1 Arquitectura de comercio para una empresa de lado de compra / de venta No hay un estándar de la industria para formatos de datos de mercado. Cada intercambio tiene su formato propietario. Los proveedores de contenido financiero como Reuters y Bloomberg agregan diferentes fuentes de datos de mercado, lo normalizan y agregan noticias o análisis. Ejemplos de feeds consolidados son RDF (Feed de Datos de Reuters), RWF (Formato de Wire de Reuters) y Datos de Servicios Profesionales de Bloomberg. Para entregar datos de mercado de menor latencia, ambos proveedores han lanzado datos de mercado en tiempo real que son menos procesados ​​y tienen menos análisis: Bloomberg B-Pipe Con B-Pipe, Bloomberg desacopla su feed de datos de mercado de su plataforma de distribución porque un terminal Bloomberg No es necesario para obtener B-Pipe. Wombat y Reuters Feed Handlers han anunciado su apoyo a B-Pipe. Una empresa puede decidir recibir alimentos directamente de un intercambio para reducir la latencia. Las ganancias en velocidad de transmisión pueden estar entre 150 milisegundos a 500 milisegundos. Estos alimentos son más complejos y más caros y la empresa tiene que construir y mantener su propia planta de ticker (www. financetech / featured / showArticle. jhtmlarticleID60404306). Órdenes de compra Este tipo de tráfico lleva los oficios reales. Es bidireccional y muy sensible a la latencia. Se mide en mensajes / seg. Y Mbps. Las órdenes se originan de un lado de la compra o de la firma lateral de la venta y se envían a los lugares de negociación como un intercambio o ECN para la ejecución. El formato más común para el transporte de pedidos es FIX (Financial Information eXchangewww. fixprotocol. org/). Las aplicaciones que manejan mensajes FIX se denominan motores FIX e interactúan con sistemas de gestión de pedidos (OMS). Una optimización de FIX se llama FAST (Fix Adapted for Streaming), que utiliza un esquema de compresión para reducir la longitud del mensaje y, en efecto, reducir la latencia. FAST se orienta más a la entrega de datos de mercado y tiene el potencial de convertirse en un estándar. FAST también puede utilizarse como un esquema de compresión para formatos de datos de mercado propietarios. Para reducir la latencia, las empresas pueden optar por establecer acceso directo al mercado (DMA). DMA es el proceso automatizado de encaminamiento de una orden de valores directamente a un lugar de ejecución, evitando así la intervención de un tercero (www. towergroup / research / content / glossary. jsppage1ampglossaryId383). DMA requiere una conexión directa con el lugar de ejecución. El bus de mensajería es software middleware de proveedores como Tibco, 29West, Reuters RMDS o una plataforma de código abierto como AMQP. El bus de mensajería utiliza un mecanismo confiable para entregar mensajes. El transporte se puede realizar a través de TCP / IP (TibcoEMS, 29West, RMDS y AMQP) o UDP / multicast (TibcoRV, 29West y RMDS). Un concepto importante en la distribución de mensajes es el flujo quototópico, que es un subconjunto de datos de mercado definido por criterios tales como símbolo de ticker, industria o una cierta canasta de instrumentos financieros. Subscribers join topic groups mapped to one or multiple sub-topics in order to receive only the relevant information. In the past, all traders received all market data. At the current volumes of traffic, this would be sub-optimal. The network plays a critical role in the trading environment. Market data is carried to the trading floor where the human traders are located via a Campus or Metro Area high-speed network. High availability and low latency, as well as high throughput, are the most important metrics. The high performance trading environment has most of its components in the Data Center server farm. To minimize latency, the algorithmic trading engines need to be located in the proximity of the feed handlers, FIX engines, and order management systems. An alternate deployment model has the algorithmic trading systems located at an exchange or a service provider with fast connectivity to multiple exchanges. Deployment Models There are two deployment models for a high performance trading platform. Firms may chose to have a mix of the two: Data Center of the trading firm (Figure 2 )This is the traditional model, where a full-fledged trading platform is developed and maintained by the firm with communication links to all the trading venues. Latency varies with the speed of the links and the number of hops between the firm and the venues. Figure 2 Traditional Deployment Model Co-location at the trading venue (exchanges, financial service providers (FSP)) (Figure 3 ) The trading firm deploys its automated trading platform as close as possible to the execution venues to minimize latency. Figure 3 Hosted Deployment Model Services-Oriented Trading Architecture We are proposing a services-oriented framework for building the next-generation trading architecture. This approach provides a conceptual framework and an implementation path based on modularization and minimization of inter-dependencies. This framework provides firms with a methodology to: Evaluate their current state in terms of services Prioritize services based on their value to the business Evolve the trading platform to the desired state using a modular approach The high performance trading architecture relies on the following services, as defined by the services architecture framework represented in Figure 4. Figure 4 Service Architecture Framework for High Performance Trading Ultra-Low Latency Messaging Service This service is provided by the messaging bus, which is a software system that solves the problem of connecting many-to-many applications. The system consists of: A set of pre-defined message schemas A set of common command messages A shared application infrastructure for sending the messages to recipients. The shared infrastructure can be based on a message broker or on a publish/subscribe model. The key requirements for the next-generation messaging bus are (source 29West): Lowest possible latency (e. g. less than 100 microseconds) Stability under heavy load (e. g. more than 1.4 million msg/sec.) Control and flexibility (rate control and configurable transports) There are efforts in the industry to standardize the messaging bus. Advanced Message Queueing Protocol (AMQP) is an example of an open standard championed by J. P. Morgan Chase and supported by a group of vendors such as Cisco, Envoy Technologies, Red Hat, TWIST Process Innovations, Iona, 29West, and iMatix. Two of the main goals are to provide a more simple path to inter-operability for applications written on different platforms and modularity so that the middleware can be easily evolved. In very general terms, an AMQP server is analogous to an E-mail server with each exchange acting as a message transfer agent and each message queue as a mailbox. The bindings define the routing tables in each transfer agent. Publishers send messages to individual transfer agents, which then route the messages into mailboxes. Consumers take messages from mailboxes, which creates a powerful and flexible model that is simple (source: www. amqp. org/tikiwiki/tiki-indexpageOpenApproachWhyAMQP ). Latency Monitoring Service The main requirements for this service are: Sub-millisecond granularity of measurements Near-real time visibility without adding latency to the trading traffic Ability to differentiate application processing latency from network transit latency Ability to handle high message rates Provide a programmatic interface for trading applications to receive latency data, thus enabling algorithmic trading engines to adapt to changing conditions Correlate network events with application events for troubleshooting purposes Latency can be defined as the time interval between when a trade order is sent and when the same order is acknowledged and acted upon by the receiving party. Addressing the latency issue is a complex problem, requiring a holistic approach that identifies all sources of latency and applies different technologies at different layers of the system. Figure 5 depicts the variety of components that can introduce latency at each layer of the OSI stack. It also maps each source of latency with a possible solution and a monitoring solution. This layered approach can give firms a more structured way of attacking the latency issue, whereby each component can be thought of as a service and treated consistently across the firm. Maintaining an accurate measure of the dynamic state of this time interval across alternative routes and destinations can be of great assistance in tactical trading decisions. The ability to identify the exact location of delays, whether in the customers edge network, the central processing hub, or the transaction application level, significantly determines the ability of service providers to meet their trading service-level agreements (SLAs). For buy-side and sell-side forms, as well as for market-data syndicators, the quick identification and removal of bottlenecks translates directly into enhanced trade opportunities and revenue. Figure 5 Latency Management Architecture Cisco Low-Latency Monitoring Tools Traditional network monitoring tools operate with minutes or seconds granularity. Next-generation trading platforms, especially those supporting algorithmic trading, require latencies less than 5 ms and extremely low levels of packet loss. On a Gigabit LAN, a 100 ms microburst can cause 10,000 transactions to be lost or excessively delayed. Cisco offers its customers a choice of tools to measure latency in a trading environment: Bandwidth Quality Manager (BQM) (OEM from Corvil) Cisco AON-based Financial Services Latency Monitoring Solution (FSMS) Bandwidth Quality Manager Bandwidth Quality Manager (BQM) 4.0 is a next-generation network application performance management product that enables customers to monitor and provision their network for controlled levels of latency and loss performance. While BQM is not exclusively targeted at trading networks, its microsecond visibility combined with intelligent bandwidth provisioning features make it ideal for these demanding environments. Cisco BQM 4.0 implements a broad set of patented and patent-pending traffic measurement and network analysis technologies that give the user unprecedented visibility and understanding of how to optimize the network for maximum application performance. Cisco BQM is now supported on the product family of Cisco Application Deployment Engine (ADE). The Cisco ADE product family is the platform of choice for Cisco network management applications. BQM Benefits Cisco BQM micro-visibility is the ability to detect, measure, and analyze latency, jitter, and loss inducing traffic events down to microsecond levels of granularity with per packet resolution. This enables Cisco BQM to detect and determine the impact of traffic events on network latency, jitter, and loss. Critical for trading environments is that BQM can support latency, loss, and jitter measurements one-way for both TCP and UDP (multicast) traffic. This means it reports seamlessly for both trading traffic and market data feeds. BQM allows the user to specify a comprehensive set of thresholds (against microburst activity, latency, loss, jitter, utilization, etc.) on all interfaces. BQM then operates a background rolling packet capture. Whenever a threshold violation or other potential performance degradation event occurs, it triggers Cisco BQM to store the packet capture to disk for later analysis. This allows the user to examine in full detail both the application traffic that was affected by performance degradation (quotthe victimsquot) and the traffic that caused the performance degradation (quotthe culpritsquot). This can significantly reduce the time spent diagnosing and resolving network performance issues. BQM is also able to provide detailed bandwidth and quality of service (QoS) policy provisioning recommendations, which the user can directly apply to achieve desired network performance. BQM Measurements Illustrated To understand the difference between some of the more conventional measurement techniques and the visibility provided by BQM, we can look at some comparison graphs. In the first set of graphs (Figure 6 and Figure 7 ), we see the difference between the latency measured by BQMs Passive Network Quality Monitor (PNQM) and the latency measured by injecting ping packets every 1 second into the traffic stream. In Figure 6. we see the latency reported by 1-second ICMP ping packets for real network traffic (it is divided by 2 to give an estimate for the one-way delay). It shows the delay comfortably below about 5ms for almost all of the time. Figure 6 Latency Reported by 1-Second ICMP Ping Packets for Real Network Traffic In Figure 7. we see the latency reported by PNQM for the same traffic at the same time. Here we see that by measuring the one-way latency of the actual application packets, we get a radically different picture. Here the latency is seen to be hovering around 20 ms, with occasional bursts far higher. The explanation is that because ping is sending packets only every second, it is completely missing most of the application traffic latency. In fact, ping results typically only indicate round trip propagation delay rather than realistic application latency across the network. Figure 7 Latency Reported by PNQM for Real Network Traffic In the second example (Figure 8 ), we see the difference in reported link load or saturation levels between a 5-minute average view and a 5 ms microburst view (BQM can report on microbursts down to about 10-100 nanosecond accuracy). The green line shows the average utilization at 5-minute averages to be low, maybe up to 5 Mbits/s. The dark blue plot shows the 5ms microburst activity reaching between 75 Mbits/s and 100 Mbits/s, the LAN speed effectively. BQM shows this level of granularity for all applications and it also gives clear provisioning rules to enable the user to control or neutralize these microbursts. Figure 8 Difference in Reported Link Load Between a 5-Minute Average View and a 5 ms Microburst View BQM Deployment in the Trading Network Figure 9 shows a typical BQM deployment in a trading network. Figure 9 Typical BQM Deployment in a Trading Network BQM can then be used to answer these types of questions: Are any of my Gigabit LAN core links saturated for more than X milliseconds Is this causing loss Which links would most benefit from an upgrade to Etherchannel or 10 Gigabit speeds What application traffic is causing the saturation of my 1 Gigabit links Is any of the market data experiencing end-to-end loss How much additional latency does the failover data center experience Is this link sized correctly to deal with microbursts Are my traders getting low latency updates from the market data distribution layer Are they seeing any delays greater than X milliseconds Being able to answer these questions simply and effectively saves time and money in running the trading network. BQM is an essential tool for gaining visibility in market data and trading environments. It provides granular end-to-end latency measurements in complex infrastructures that experience high-volume data movement. Effectively detecting microbursts in sub-millisecond levels and receiving expert analysis on a particular event is invaluable to trading floor architects. Smart bandwidth provisioning recommendations, such as sizing and what-if analysis, provide greater agility to respond to volatile market conditions. As the explosion of algorithmic trading and increasing message rates continues, BQM, combined with its QoS tool, provides the capability of implementing QoS policies that can protect critical trading applications. Cisco Financial Services Latency Monitoring Solution Cisco and Trading Metrics have collaborated on latency monitoring solutions for FIX order flow and market data monitoring. Cisco AON technology is the foundation for a new class of network-embedded products and solutions that help merge intelligent networks with application infrastructure, based on either service-oriented or traditional architectures. Trading Metrics is a leading provider of analytics software for network infrastructure and application latency monitoring purposes (www. tradingmetrics/ ). The Cisco AON Financial Services Latency Monitoring Solution (FSMS) correlated two kinds of events at the point of observation: Network events correlated directly with coincident application message handling Trade order flow and matching market update events Using time stamps asserted at the point of capture in the network, real-time analysis of these correlated data streams permits precise identification of bottlenecks across the infrastructure while a trade is being executed or market data is being distributed. By monitoring and measuring latency early in the cycle, financial companies can make better decisions about which network serviceand which intermediary, market, or counterpartyto select for routing trade orders. Likewise, this knowledge allows more streamlined access to updated market data (stock quotes, economic news, etc.), which is an important basis for initiating, withdrawing from, or pursuing market opportunities. The components of the solution are: AON hardware in three form factors: AON Network Module for Cisco 2600/2800/3700/3800 routers AON Blade for the Cisco Catalyst 6500 series AON 8340 Appliance Trading Metrics MampA 2.0 software, which provides the monitoring and alerting application, displays latency graphs on a dashboard, and issues alerts when slowdowns occur (www. tradingmetrics/TMbrochure. pdf ). Figure 10 AON-Based FIX Latency Monitoring Cisco IP SLA Cisco IP SLA is an embedded network management tool in Cisco IOS which allows routers and switches to generate synthetic traffic streams which can be measured for latency, jitter, packet loss, and other criteria (www. cisco/go/ipsla ). Two key concepts are the source of the generated traffic and the target. Both of these run an IP SLA quotresponder, quot which has the responsibility to timestamp the control traffic before it is sourced and returned by the target (for a round trip measurement). Various traffic types can be sourced within IP SLA and they are aimed at different metrics and target different services and applications. The UDP jitter operation is used to measure one-way and round-trip delay and report variations. As the traffic is time stamped on both sending and target devices using the responder capability, the round trip delay is characterized as the delta between the two timestamps. A new feature was introduced in IOS 12.3(14)T, IP SLA Sub Millisecond Reporting, which allows for timestamps to be displayed with a resolution in microseconds, thus providing a level of granularity not previously available. This new feature has now made IP SLA relevant to campus networks where network latency is typically in the range of 300-800 microseconds and the ability to detect trends and spikes (brief trends) based on microsecond granularity counters is a requirement for customers engaged in time-sensitive electronic trading environments. As a result, IP SLA is now being considered by significant numbers of financial organizations as they are all faced with requirements to: Report baseline latency to their users Trend baseline latency over time Respond quickly to traffic bursts that cause changes in the reported latency Sub-millisecond reporting is necessary for these customers, since many campus and backbones are currently delivering under a second of latency across several switch hops. Electronic trading environments have generally worked to eliminate or minimize all areas of device and network latency to deliver rapid order fulfillment to the business. Reporting that network response times are quotjust under one millisecondquot is no longer sufficient the granularity of latency measurements reported across a network segment or backbone need to be closer to 300-800 micro-seconds with a degree of resolution of 100 igrave seconds. IP SLA recently added support for IP multicast test streams, which can measure market data latency. A typical network topology is shown in Figure 11 with the IP SLA shadow routers, sources, and responders. Figure 11 IP SLA Deployment Computing Services Computing services cover a wide range of technologies with the goal of eliminating memory and CPU bottlenecks created by the processing of network packets. Trading applications consume high volumes of market data and the servers have to dedicate resources to processing network traffic instead of application processing. Transport processingAt high speeds, network packet processing can consume a significant amount of server CPU cycles and memory. An established rule of thumb states that 1Gbps of network bandwidth requires 1 GHz of processor capacity (source Intel white paper on I/O acceleration www. intel/technology/ioacceleration/306517.pdf ). Intermediate buffer copyingIn a conventional network stack implementation, data needs to be copied by the CPU between network buffers and application buffers. This overhead is worsened by the fact that memory speeds have not kept up with increases in CPU speeds. For example, processors like the Intel Xeon are approaching 4 GHz, while RAM chips hover around 400MHz (for DDR 3200 memory) (source Intel www. intel/technology/ioacceleration/306517.pdf ). Context switchingEvery time an individual packet needs to be processed, the CPU performs a context switch from application context to network traffic context. This overhead could be reduced if the switch would occur only when the whole application buffer is complete. Figure 12 Sources of Overhead in Data Center Servers TCP Offload Engine (TOE)Offloads transport processor cycles to the NIC. Moves TCP/IP protocol stack buffer copies from system memory to NIC memory. Remote Direct Memory Access (RDMA)Enables a network adapter to transfer data directly from application to application without involving the operating system. Eliminates intermediate and application buffer copies (memory bandwidth consumption). Kernel bypass Direct user-level access to hardware. Dramatically reduces application context switches. Figure 13 RDMA and Kernel Bypass InfiniBand is a point-to-point (switched fabric) bidirectional serial communication link which implements RDMA, among other features. Cisco offers an InfiniBand switch, the Server Fabric Switch (SFS): www. cisco/application/pdf/en/us/guest/netsol/ns500/c643/cdccont0900aecd804c35cb. pdf. Figure 14 Typical SFS Deployment Trading applications benefit from the reduction in latency and latency variability, as proved by a test performed with the Cisco SFS and Wombat Feed Handlers by Stac Research: Application Virtualization Service De-coupling the application from the underlying OS and server hardware enables them to run as network services. One application can be run in parallel on multiple servers, or multiple applications can be run on the same server, as the best resource allocation dictates. This decoupling enables better load balancing and disaster recovery for business continuance strategies. The process of re-allocating computing resources to an application is dynamic. Using an application virtualization system like Data Synapses GridServer, applications can migrate, using pre-configured policies, to under-utilized servers in a supply-matches-demand process (wwwworkworld/supp/2005/ndc1/022105virtualpage2 ). There are many business advantages for financial firms who adopt application virtualization: Faster time to market for new products and services Faster integration of firms following merger and acquisition activity Increased application availability Better workload distribution, which creates more quothead roomquot for processing spikes in trading volume Operational efficiency and control Reduction in IT complexity Currently, application virtualization is not used in the trading front-office. One use-case is risk modeling, like Monte Carlo simulations. As the technology evolves, it is conceivable that some the trading platforms will adopt it. Data Virtualization Service To effectively share resources across distributed enterprise applications, firms must be able to leverage data across multiple sources in real-time while ensuring data integrity. With solutions from data virtualization software vendors such as Gemstone or Tangosol (now Oracle), financial firms can access heterogeneous sources of data as a single system image that enables connectivity between business processes and unrestrained application access to distributed caching. The net result is that all users have instant access to these data resources across a distributed network (www. gridtoday/03/0210/101061 ). This is called a data grid and is the first step in the process of creating what Gartner calls Extreme Transaction Processing (XTP) (www. gartner/DisplayDocumentrefgsearchampid500947 ). Technologies such as data and applications virtualization enable financial firms to perform real-time complex analytics, event-driven applications, and dynamic resource allocation. One example of data virtualization in action is a global order book application. An order book is the repository of active orders that is published by the exchange or other market makers. A global order book aggregates orders from around the world from markets that operate independently. The biggest challenge for the application is scalability over WAN connectivity because it has to maintain state. Todays data grids are localized in data centers connected by Metro Area Networks (MAN). This is mainly because the applications themselves have limitsthey have been developed without the WAN in mind. Figure 15 GemStone GemFire Distributed Caching Before data virtualization, applications used database clustering for failover and scalability. This solution is limited by the performance of the underlying database. Failover is slower because the data is committed to disc. With data grids, the data which is part of the active state is cached in memory, which reduces drastically the failover time. Scaling the data grid means just adding more distributed resources, providing a more deterministic performance compared to a database cluster. Multicast Service Market data delivery is a perfect example of an application that needs to deliver the same data stream to hundreds and potentially thousands of end users. Market data services have been implemented with TCP or UDP broadcast as the network layer, but those implementations have limited scalability. Using TCP requires a separate socket and sliding window on the server for each recipient. UDP broadcast requires a separate copy of the stream for each destination subnet. Both of these methods exhaust the resources of the servers and the network. The server side must transmit and service each of the streams individually, which requires larger and larger server farms. On the network side, the required bandwidth for the application increases in a linear fashion. For example, to send a 1 Mbps stream to 1000recipients using TCP requires 1 Gbps of bandwidth. IP multicast is the only way to scale market data delivery. To deliver a 1 Mbps stream to 1000 recipients, IP multicast would require 1 Mbps. The stream can be delivered by as few as two serversone primary and one backup for redundancy. There are two main phases of market data delivery to the end user. In the first phase, the data stream must be brought from the exchange into the brokerages network. Typically the feeds are terminated in a data center on the customer premise. The feeds are then processed by a feed handler, which may normalize the data stream into a common format and then republish into the application messaging servers in the data center. The second phase involves injecting the data stream into the application messaging bus which feeds the core infrastructure of the trading applications. The large brokerage houses have thousands of applications that use the market data streams for various purposes, such as live trades, long term trending, arbitrage, etc. Many of these applications listen to the feeds and then republish their own analytical and derivative information. For example, a brokerage may compare the prices of CSCO to the option prices of CSCO on another exchange and then publish ratings which a different application may monitor to determine how much they are out of synchronization. Figure 16 Market Data Distribution Players The delivery of these data streams is typically over a reliable multicast transport protocol, traditionally Tibco Rendezvous. Tibco RV operates in a publish and subscribe environment. Each financial instrument is given a subject name, such as CSCO. last. Each application server can request the individual instruments of interest by their subject name and receive just a that subset of the information. This is called subject-based forwarding or filtering. Subject-based filtering is patented by Tibco. A distinction should be made between the first and second phases of market data delivery. The delivery of market data from the exchange to the brokerage is mostly a one-to-many application. The only exception to the unidirectional nature of market data may be retransmission requests, which are usually sent using unicast. The trading applications, however, are definitely many-to-many applications and may interact with the exchanges to place orders. Figure 17 Market Data Architecture Design Issues Number of Groups/Channels to Use Many application developers consider using thousand of multicast groups to give them the ability to divide up products or instruments into small buckets. Normally these applications send many small messages as part of their information bus. Usually several messages are sent in each packet that are received by many users. Sending fewer messages in each packet increases the overhead necessary for each message. In the extreme case, sending only one message in each packet quickly reaches the point of diminishing returnsthere is more overhead sent than actual data. Application developers must find a reasonable compromise between the number of groups and breaking up their products into logical buckets. Consider, for example, the Nasdaq Quotation Dissemination Service (NQDS). The instruments are broken up alphabetically: This approach allows for straight forward network/application management, but does not necessarily allow for optimized bandwidth utilization for most users. A user of NQDS that is interested in technology stocks, and would like to subscribe to just CSCO and INTL, would have to pull down all the data for the first two groups of NQDS. Understanding the way users pull down the data and then organize it into appropriate logical groups optimizes the bandwidth for each user. In many market data applications, optimizing the data organization would be of limited value. Typically customers bring in all data into a few machines and filter the instruments. Using more groups is just more overhead for the stack and does not help the customers conserve bandwidth. Another approach might be to keep the groups down to a minimum level and use UDP port numbers to further differentiate if necessary. The other extreme would be to use just one multicast group for the entire application and then have the end user filter the data. In some situations this may be sufficient. Intermittent Sources A common issue with market data applications are servers that send data to a multicast group and then go silent for more than 3.5 minutes. These intermittent sources may cause trashing of state on the network and can introduce packet loss during the window of time when soft state and then hardware shorts are being created. PIM-Bidir or PIM-SSM The first and best solution for intermittent sources is to use PIM-Bidir for many-to-many applications and PIM-SSM for one-to-many applications. Both of these optimizations of the PIM protocol do not have any data-driven events in creating forwarding state. That means that as long as the receivers are subscribed to the streams, the network has the forwarding state created in the hardware switching path. Intermittent sources are not an issue with PIM-Bidir and PIM-SSM. Null Packets In PIM-SM environments a common method to make sure forwarding state is created is to send a burst of null packets to the multicast group before the actual data stream. The application must efficiently ignore these null data packets to ensure it does not affect performance. The sources must only send the burst of packets if they have been silent for more than 3 minutes. A good practice is to send the burst if the source is silent for more than a minute. Many financials send out an initial burst of traffic in the morning and then all well-behaved sources do not have problems. Periodic Keepalives or Heartbeats An alternative approach for PIM-SM environments is for sources to send periodic heartbeat messages to the multicast groups. This is a similar approach to the null packets, but the packets can be sent on a regular timer so that the forwarding state never expires. S, G Expiry Timer Finally, Cisco has made a modification to the operation of the S, G expiry timer in IOS. There is now a CLI knob to allow the state for a S, G to stay alive for hours without any traffic being sent. The (S, G) expiry timer is configurable. This approach should be considered a workaround until PIM-Bidir or PIM-SSM is deployed or the application is fixed. RTCP Feedback A common issue with real time voice and video applications that use RTP is the use of RTCP feedback traffic. Unnecessary use of the feedback option can create excessive multicast state in the network. If the RTCP traffic is not required by the application it should be avoided. Fast Producers and Slow Consumers Today many servers providing market data are attached at Gigabit speeds, while the receivers are attached at different speeds, usually 100Mbps. This creates the potential for receivers to drop packets and request re-transmissions, which creates more traffic that the slowest consumers cannot handle, continuing the vicious circle. The solution needs to be some type of access control in the application that limits the amount of data that one host can request. QoS and other network functions can mitigate the problem, but ultimately the subscriptions need to be managed in the application. Tibco Heartbeats TibcoRV has had the ability to use IP multicast for the heartbeat between the TICs for many years. However, there are some brokerage houses that are still using very old versions of TibcoRV that use UDP broadcast support for the resiliency. This limitation is often cited as a reason to maintain a Layer 2 infrastructure between TICs located in different data centers. These older versions of TibcoRV should be phased out in favor of the IP multicast supported versions. Multicast Forwarding Options PIM Sparse Mode The standard IP multicast forwarding protocol used today for market data delivery is PIM Sparse Mode. It is supported on all Cisco routers and switches and is well understood. PIM-SM can be used in all the network components from the exchange, FSP, and brokerage. There are, however, some long-standing issues and unnecessary complexity associated with a PIM-SM deployment that could be avoided by using PIM-Bidir and PIM-SSM. These are covered in the next sections. The main components of the PIM-SM implementation are: PIM Sparse Mode v2 Shared Tree (spt-threshold infinity) A design option in the brokerage or in the exchange.

No comments:

Post a Comment