Monday 13 November 2017

Requisitos Funcionales Del Sistema De Comercio


Algorithmic Trading System Requirements 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 precisión 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, una pista de auditoría y se replica Un entorno de uso del sistema que admite múltiples perfiles de usuario y expone una 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 de negociación 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 bases 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 del accidente del flash de 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, prueba de nuevo 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. TagsAlgorithmic Trading System Arquitectura Anteriormente en este blog he escrito sobre la arquitectura conceptual de un sistema inteligente de comercio algorítmico, así como los requisitos funcionales y no funcionales de un sistema de producción de comercio algorítmico. 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 visto 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. TagsQué son los requisitos funcionales y no funcionales de la metodología de desarrollo del sistema Los requisitos funcionales son tareas o procesos observables que deben ser realizados por el sistema en desarrollo. Por ejemplo, un requisito funcional de un sistema de negociación de acciones debe actualizar y recordar los precios de las acciones de un motor de búsqueda web, debe analizar con precisión las consultas booleanas para un cajero automático, debe procesar retiros y dispensar efectivo al cliente. Los requisitos no funcionales son cualidades o estándares que el sistema en desarrollo debe tener o cumplir, pero que no son tareas que serán automatizadas por el sistema. Ejemplo de requisitos no funcionales para un sistema incluyen: sistema debe ser construido para un costo total instalado de 1.050.000,00 sistema debe ejecutarse en Windows Server 2003 sistema debe estar protegido contra ataques de troyanos. Es importante tener en cuenta que este tipo de requisitos siempre existen, independientemente del enfoque o método utilizado para administrar el desarrollo de software. Una metodología de desarrollo de software ayuda a identificar, documentar y realizar los requisitos. Requisitos funcionales del sistema básico de gestión de la biblioteca: 1. Libro de almacenamiento 2. Lectores Gestión de la información: (1) la información del lector en (2) modificar la información del lector (3) t Hellip él información del lector para eliminar (4) la consulta de información del lector. 3. Búsqueda de libros: (1) Introduzca un ISBN, en el documento para encontrar el libro, si la salida del libro para encontrar toda la información si no puede encontrar la salida de la falta de encontrar información. (2)) compruebe todos los libros para comprar títulos, y ISBN. 4. Gestión de préstamos (1) Toda la información del lector, incluyendo el nombre, el número, pedir prestado un libro, para pedir prestado libros 2, para pedir prestado libros 3, ingrese la información del lector y se almacena en el lector de la matriz. (2) checkout: Introduzca el nombre del lector y los libros por ISBN, nombre para determinar si los lectores de la matriz, (MÁS) 31 personas encontraron esta útil Respuesta por La Comunidad WikiAnswers reg

No comments:

Post a Comment