El Diseño Del Sistema De Comercio Algorítmico


Arquitectura algorítmica Trading System Anteriormente en este blog he escrito sobre la arquitectura conceptual de un sistema de comercio algorítmico inteligente, así como los requisitos funcionales y no funcionales de un sistema de comercio algorítmico producción. Desde entonces, he diseñado una arquitectura de sistema que creo que podría satisfacer esos requisitos arquitectónicos. En este post voy a describir la arquitectura siguiendo las directrices de la norma 42010 de sistemas e ingeniería de software descripción de la arquitectura ISO / IEC / IEEE. De acuerdo con esta norma una descripción de la arquitectura debe: Contener múltiples vistas arquitectónicas estandarizados (por ejemplo en UML) y mantener la trazabilidad entre las decisiones de diseño y arquitectura de software requisitos definición de la arquitectura Todavía no existe un consenso en cuanto a lo que es una arquitectura de sistemas es. En el contexto de este artículo, se define como la infraestructura dentro de la cual los componentes de aplicaciones que satisfagan los requisitos funcionales se pueden especificar, desplegados, y ejecutados. Requisitos funcionales son las funciones que se esperan del sistema y sus componentes. requisitos no funcionales son medidas a través del cual se puede medir la calidad del sistema. Un sistema que satisfaga plenamente sus necesidades funcionales todavía puede dejar de cumplir con las expectativas si los requisitos no funcionales se dejan insatisfecho. Para ilustrar este concepto cuenta la situación siguiente: un sistema de comercio algorítmico que se acaba de comprar / construida hace excelentes decisiones comerciales, pero es completamente inoperable con la gestión de las organizaciones de riesgos y sistemas de contabilidad. ¿Sería este sistema satisfacer sus expectativas conceptual Arquitectura Una vista conceptual describe conceptos de alto nivel y los mecanismos que existen en el sistema en el más alto nivel de granularidad. En este nivel, el sistema de comercio algorítmico sigue una arquitectura impulsada por eventos (EDA) dividido en cuatro capas, y dos aspectos arquitectónicos. Para cada capa y de aspecto arquitecturas de referencia y los patrones se utilizan. Los patrones arquitectónicos son probados, estructuras genéricas para la consecución de los requisitos específicos. aspectos arquitectónicos son temas transversales que abarcan múltiples componentes. Evento impulsado por la arquitectura - una arquitectura que produce, detecta, consume, y reacciona a los eventos. Los eventos incluyen movimientos en tiempo real de mercado, eventos complejos o tendencias y eventos comerciales por ejemplo, enviar un pedido. Este diagrama ilustra la arquitectura conceptual de las arquitecturas de sistema de comercio de referencia algorítmicos Para usar una analogía, una arquitectura de referencia es similar a los planos de un muro de carga. Este azul-impresión puede ser re-utilizado para la construcción de múltiples diseños con independencia de lo que se está construyendo edificio, ya que satisface una serie de requisitos que ocurren comúnmente. Del mismo modo, una arquitectura de referencia define una plantilla que contiene estructuras y mecanismos que pueden utilizarse para la construcción de una arquitectura de software de hormigón que satisfaga los requisitos específicos genéricos. La arquitectura para el sistema de comercio algorítmico utiliza una arquitectura basada en el espacio (SBA) y un controlador de vista del modelo (MVC) como referencias. También se utilizan buenas prácticas tales como el almacén de datos operacionales (ODS), el extracto de transformar y patrón de carga (ETL), y un almacén de datos (DW). Modelo controlador de vista - un patrón que separa la representación de la información de la interacción de los usuarios con él. Espacio arquitectura basada - especifica una infraestructura donde las unidades de procesamiento débilmente acoplados interactúan entre sí a través de una memoria asociativa compartido llamado espacio (que se muestra a continuación). Vista estructural La vista estructural de una arquitectura muestra los componentes y subcomponentes del sistema de comercio algorítmico. También muestra cómo estos componentes se despliegan en la infraestructura física. Los diagramas UML utilizados en esta vista son diagramas de componentes y diagramas de despliegue. A continuación se muestra la galería de los diagramas de despliegue del sistema de comercio algorítmico general y las unidades de procesamiento en la arquitectura de referencia de la SBA, así como diagramas de componentes relacionados para cada una de las capas. Las tácticas arquitectónicas De acuerdo con el instituto de ingeniería de software una táctica de arquitectura es un medio de satisfacer un requisito de calidad mediante la manipulación de algún aspecto de un modelo de atributo de calidad a través de las decisiones de diseño arquitectónico. Un ejemplo simple que se usa en la arquitectura del sistema de comercio algorítmico está manipulando un almacén de datos operativos (ODS) con un componente de consulta continua. Este componente analizar continuamente el ODS para identificar y extraer los acontecimientos complejos. Las siguientes tácticas se utilizan en la arquitectura: El patrón disruptor en las colas de sucesos y de la orden de memoria para el evento y el orden colas de lenguaje de consulta continua (CQL) compartido en el filtrado de SAO de datos con el patrón de diseño de filtros en algoritmos para evitar la congestión de datos entrantes en todos las conexiones entrantes y salientes la gestión activa de colas (AQM) y de notificación de congestión de recursos de productos básicos de computación explícitos con capacidad de actualización (escalable) redundancia activa de todos los puntos únicos de indexación fracaso y estructuras de persistencia optimizados en los ODS Programar copia de seguridad periódica de datos y scripts de limpieza para historia de las transacciones de SAO en todas las sumas de comprobación de bases de datos para todos los pedidos para detectar fallas Anotación de eventos con marcas de tiempo para saltar eventos rancios pedido reglas de validación por ejemplo, cantidades comerciales máximos automatizados componentes de comerciantes utilizan una base de datos en memoria para la autenticación de análisis de dos etapas para las interfaces de usuario que se conecta a la TA cifrado en las interfaces de usuario y las conexiones con el patrón de diseño ATs Observador de la MVC para gestionar vistas La lista anterior son sólo algunos de diseño decisiones I identificados durante el diseño de la arquitectura. No es una lista completa de las tácticas. A medida que se desarrolló el sistema de tácticas adicionales deben ser empleados a través de múltiples niveles de granularidad para cumplir los requisitos funcionales y no funcionales. A continuación se presentan tres diagramas que describen el patrón disruptor diseño, patrón de diseño del filtro, y el componente de consulta continua. Ver Behavioural Este punto de vista de una arquitectura muestra cómo los componentes y capas deben interactuar uno con el otro. Esto es útil al crear escenarios para probar diseños de la arquitectura y de la comprensión del sistema de extremo a extremo. Este punto de vista consiste en diagramas de secuencia y diagramas de actividad. diagramas de actividad que muestran los sistemas de negociación algorítmica de proceso interno y cómo se supone que los comerciantes para interactuar 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 para identificar las tecnologías y los marcos posibles que podrían ser utilizados para realizar la arquitectura. Como principio general, es mejor de usar con ventaja de las tecnologías existentes, siempre que cumplan los requisitos de forma adecuada, tanto funcionales y no funcionales. Un marco es un ejemplo dado cuenta de arquitectura de referencia JBoss es un marco que da cuenta de la arquitectura de referencia JEE. Las siguientes tecnologías y marcos son interesantes y deben ser considerados en la aplicación de un sistema de comercio algorítmico: CUDA - NVidia tiene una serie de productos que soportan un alto rendimiento de modelado finanzas computacionales. Uno puede alcanzar hasta 50x mejoras en el rendimiento en la realización de simulaciones de Monte Carlo en la GPU en lugar de la CPU. Apache Río - río es la herramienta Kit Desarrollar distribuido usada sistemas. Se ha utilizado como marco para la creación de aplicaciones basadas en el patrón de SBA Apache Hadoop - en caso de que la tala generalizada es un requisito, entonces el uso de Hadoop ofrece una solución interesante para el problema de las grandes datos. Hadoop se puede implementar en un entorno en clúster apoyo a las tecnologías CUDA. AlgoTrader - una plataforma de comercio algorítmico de código abierto. AlgoTrader potencialmente podría ser desplegado en el lugar de los componentes automatizados comerciante. REVISIÓN del motor - una aplicación independiente que soporta los protocolos de Intercambio de Información Financiera (FIX), incluyendo FIX, rápido y FIXatdl. Aunque no es una tecnología o un marco, los componentes deben ser construidas 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ñado para satisfacer requisitos muy genéricas identificadas para los sistemas de negociación algorítmica. En términos generales los sistemas de negociación algorítmica se complican por tres factores que varían con cada aplicación: Dependencias de la empresa externa y sistemas de intercambio Desafiando requisitos no funcionales y la evolución de las limitaciones arquitectónicas sería, por tanto, deba ser adaptado en una base de caso por caso con el fin La arquitectura de software propuesto para satisfacer los requisitos de organización y reglamentarios específicos, así como para superar las restricciones regionales. La arquitectura del sistema de comercio algorítmico debe ser visto como un simple punto de referencia para los individuos y las organizaciones que deseen diseñar sus propios sistemas de negociación algorítmica. Para una copia completa y fuentes utilizadas por favor descargue una copia de mi informe. Gracias. TagsAs puramente científico informático usted está en la posición perfecta para iniciarse en el comercio algorítmico. Esto es algo que he testigo de primera mano en Quantiacs 1. donde los científicos e ingenieros son capaces de entrar de lleno en el comercio automatizado y sin ninguna experiencia previa. En otras palabras, tajadas de programación son el principal ingrediente necesario para empezar. Para tener una idea general de lo retos le esperan después / durante la creación de un sistema de comercio algorítmico, echa un vistazo a este post Quora. La construcción de un sistema de comercio a partir de cero requerirá un conocimiento básico, una plataforma de negociación, datos de mercado y acceso a mercados. Aunque no es un requisito, la elección de una única plataforma de comercio que ofrece la mayor parte de estos recursos le ayudará a ponerse en marcha rápidamente. Dicho esto, las habilidades que se desarrollan serán transferibles a cualquier lenguaje de programación y casi cualquier plataforma. Lo creas o no, la construcción de estrategias de operación automatizados isnt basa en ser un experto en el mercado. No obstante, el aprendizaje de la mecánica básica del mercado le ayudará a descubrir las estrategias comerciales rentables. Opciones, futuros y otros derivados de John C. Hull - Gran primer libro para introducir las finanzas cuantitativas, y acercándose a él desde el lado matemáticas. Trading cuantitativa de Ernie Chan - Chan Ernie ofrece el mejor libro de introducción para el comercio cuantitativo y le guía a través del proceso de creación de algoritmos de negociación en MATLAB y Excel. Algorítmico negociación de futuros a través de la máquina de aprendizaje - un desglose de 5 páginas de la aplicación de un modelo sencillo de aprendizaje automático para uso general indicadores de análisis técnico. Aquí está una lista de lectura agregada PDF con un desglose completo de libros, videos, cursos y foros de negociación. La mejor manera de aprender es haciendo, y en el caso de la negociación automatizada que se reduce a la cartografía y la codificación. Un buen punto de partida es existente ejemplos de sistemas de comercio y exposiciones existentes de técnicas de análisis técnico. Por otra parte, un informático experto tiene la ventaja adicional de ser capaz de aplicar el aprendizaje automático para el comercio algorítmico. Éstos son algunos de esos recursos: TradingView - Una plataforma de gráficos visuales fantástico en su propia, TradingView es un gran parque infantil para sentirse cómodo con el análisis técnico. Tiene la ventaja añadida de que permite a las estrategias comerciales de secuencias de comandos y busque otras ideas comerciales pueblos. Foro Trading Automatizado - gran comunidad en línea para enviar preguntas para principiantes y la búsqueda de respuestas a cuestiones cuantitativas comunes cuando acaba de empezar. Los foros de Quant son un gran lugar para sumergirse en las estrategias, herramientas y técnicas. Seminario de YouTube en el comercio de las ideas de trabajo con ejemplos de código en Github. Aprendizaje automático: Más presentaciones sobre comercio automatizado se pueden encontrar en la Quantiacs Quant Club. La mayoría de las personas de una formación científica (eso es si la ciencia informática o ingeniería) han tenido una exposición a Python o MATLAB, que resultan ser lenguajes populares para las finanzas cuantitativas. Quantiacs ha creado una caja de herramientas de código abierto que proporciona pruebas retrospectivas y 15 años de datos históricos del mercado de forma gratuita. La mejor parte es todo lo que se construye en tanto Python y MATLAB que le da la opción de lo que el desarrollo de su sistema con. Aquí está una estrategia de negociación de seguimiento de tendencias muestra en MATLAB. Este es todo el código necesario para hacer funcionar un sistema de comercio automatizado, mostrando tanto la potencia de MATLAB y el Quantiacs caja de herramientas. Quantiacs le permite operar 44 futuros y todas las existencias de la SampP 500. Además, una variedad de bibliotecas adicionales, tales como TensorFlow son compatibles. (Exención de responsabilidad: yo trabajo en Quantiacs) Una vez que usted está listo para ganar dinero como un Quant, puede unirse a las últimas Quantiacs automatizados competencia comercial, con un total de 2.250.000 en inversiones disponibles: ¿Se puede competir con los mejores cuantos 12.5k Vistas middot Ver upvotes middot Not for Reproduction Esta respuesta ha sido completamente re-escrito aquí son 6 principal base de conocimientos para la construcción de sistemas de negociación algorítmica. Debe estar familiarizado con todos ellos con el fin de construir sistemas comerciales eficaces. Algunos de los términos utilizados pueden ser un poco técnico, pero usted debería ser capaz de entenderlos buscando en Google. Nota: (La mayor parte de) estos no se aplican si usted quiere hacer de alta frecuencia de negociación 1. Las teorías de mercado que hay que entender cómo funciona el mercado. Más específicamente, usted debe entender las ineficiencias del mercado, las relaciones entre los diferentes activos / productos y comportamiento de los precios. las ideas de operación se derivan de las ineficiencias del mercado. Tendrá que saber cómo evaluar las ineficiencias del mercado que le dan una ventaja comercial frente a los que no funciona. El diseño de robots eficaces implica la comprensión de cómo funcionan los sistemas automatizados de comercio. En esencia, una estrategia de negociación algorítmica consta de 3 componentes principales: 1) Entradas, Salidas 2) y 3) tamaño de la posición. Youll necesidad de diseñar estos 3 componentes en relación con la ineficiencia del mercado que está capturando (y no, esto no es un proceso sencillo). Usted no necesita saber matemáticas avanzadas (a pesar de que le ayudará si tu objetivo es construir estrategias más complejas). Las buenas habilidades de pensamiento crítico y una comprensión decente en las estadísticas le llevará muy lejos. Diseño involucra pruebas retrospectivas (pruebas de ventaja comercial y robustez) y optimización (maximización del rendimiento con una curva mínima de montaje). Usted necesitará saber cómo gestionar una cartera de estrategias de negociación algorítmica también. Las estrategias pueden ser complementarios o contradictorios esto puede conducir a un aumento en la exposición al riesgo no planificados o de cobertura deseado. la asignación de capital es importante hacer demasiado dividir el capital por igual durante los intervalos regulares o recompensa a los ganadores con más capital Si sabe qué productos usted quiere operar, encontrar plataformas de comercialización adecuados para estos productos. A continuación, descubra la API de lenguaje de programación de esta plataforma / backtesters. Si usted está comenzando, yo recomendaría Quantopian (sólo las poblaciones), Quantconnect (acciones y FX) o Metatrader 4 (FX y CFDs sobre índices bursátiles, acciones y materias primas). Los lenguajes de programación utilizados son Python, C y mql4 respectivamente. 4. Gestión de Datos de basura en basura. datos inexactos conduce a resultados inexactos. Necesitamos datos razonablemente limpias para pruebas precisas. Limpieza de datos es un compromiso entre coste y precisión. Si desea obtener datos más precisos, lo necesario para pasar más tiempo (tiempo, dinero) de limpiarlo. Algunos problemas que hacen que los datos sucios incluyen datos que faltan, los datos duplicados, datos erróneos (mala garrapatas). Otras cuestiones que conduce a datos engañosos incluyen dividendos, división de acciones y futuros vuelcos etc. 5. Gestión de Riesgos Hay 2 tipos principales de riesgo: riesgo de mercado y riesgo operacional. El riesgo de mercado implica un riesgo relacionado con su estrategia de negociación. ¿Considera peor de los casos ¿Qué pasa si un evento cisne negro como 3 Guerra Mundial que sucede con Cobertura ¿Ha distancia de riesgos no deseados Es el tamaño de la posición demasiado alta Además de gestionar el riesgo de mercado, es necesario mirar al riesgo operacional. fallo del sistema, pérdida de conectar a Internet, la mala ejecución de algoritmo (que conduce a precios mal ejecutadas, o los oficios perdidos debido a la incapacidad para manejar recotizaciones / alta deslizamiento) y robo por parte de piratas informáticos son cuestiones muy reales. 6. Ejecución de Backtesting vivo y real de operaciones son muy diferentes. Su necesidad de seleccionar los corredores adecuados (MM vs STP vs ECN). Noticias de la divisa de mercado con Forex Trading foros como amplificador de corredores de la divisa críticas es su mejor amigo, leer los comentarios de los agentes allí. Es necesario una infraestructura adecuada (VPN segura y gastos de tiempo de inactividad, etc.) y los procedimientos de evaluación (supervisar el rendimiento de los robots y analizarlos en relación con la ineficiencia del mercado / backtests / timisations op) para manejar el robot durante su vida útil. Lo que necesita saber cuándo intervenir (modificar actualización / apagado / t urna / en sus robots) y cuándo no. Evaluación y Optimización de estrategias de negociación Pardo (Grandes ideas sobre métodos de estrategias de construcción y comercialización de pruebas) el comercio su camino a la libertad financiera Van K Tharp (Ridículo-Haga clic en el título de cebo a un lado, este libro es una gran visión de conjunto de los sistemas de comercio mecánicos) Quantitative Trading Ernest Chan (gran introducción de algo negociación en un nivel menor.) comercio e intercambios: microestructura del mercado para profesionales Larry Harris (microestructura del mercado es la ciencia de cómo funcionan los intercambios y lo que realmente sucede cuando se coloca un comercio es importante conocer esta información. a pesar de que se acaba de empezar) algorítmica amp DMA Barry Johnson (arrojar luz sobre algoritmos de ejecución bancos. Esto no es directamente aplicable a su comercio algo pero es bueno saber) los cuantos de Scott Patterson (historias de guerra de algunos cuantos de los mejores. buena . como una lectura de acostarse) Quantopian (Código, la investigación, y discutir ideas con la comunidad utiliza Python) Fundamentos de comercio Algo AlgoTrading101 (exención de responsabilidad: Soy propietario de este sitio / curso. Aprender las teorías de diseño de robots, las teorías de mercado y de codificación. Usos mql4) - Únete al reto (Aprender conceptos comerciales y teorías de pruebas retrospectivas Recientemente han desarrollado su propia plataforma de pruebas retrospectivas y el comercio por lo que esta parte es todavía nuevo para mí, pero su base de conocimientos sobre los conceptos de comercio son buenos) recomendados Blogs / Foros (estos... incluye las finanzas, el comercio y los foros de negociación algo): recomendados lenguajes de programación: Si sabe qué productos usted quiere operar, encontrar plataformas de comercialización adecuados para estos productos. A continuación, descubra la API de lenguaje de programación de esta plataforma / backtesters. Si usted está comenzando, yo recomendaría Quantopian (sólo las poblaciones), Quantconnect (acciones y FX) o Metatrader 4 (FX y CFDs sobre índices bursátiles, acciones y materias primas). Los lenguajes de programación utilizados son Python, C y mql4 respectivamente. 11k Vistas middot Ver upvotes middot Not for Reproduction Aunque este es un tema muy amplio con referencias a los algoritmos de construcción, el establecimiento de la infraestructura, la asignación de activos y gestión de riesgos, pero yo apenas se centrará en la primera parte de cómo debe ser el trabajo en la construcción de nuestro propio algoritmo, y hacer las cosas correctas. 1. Estrategia de consolidación. Algunos de los puntos clave a destacar aquí: La captura de grandes tendencias - Una buena estrategia debe en todos los casos, ganar dinero cuando el mercado está en tendencia. Los mercados van con una buena tendencia que dura sólo el 15-20 de las veces, pero este es el momento en que todos los gatos y perros (los comerciantes de todos los tiempos-marco, intradía, diario, semanal, a largo plazo) son las compras a cabo y todos ellos tienen un tema común. Una gran cantidad de comerciantes también construir estrategias de reversión a la media en la que se tratan de juzgar las condiciones cuando el precio se han movido lejos de la media, y tomar un comercio en contra de la tendencia, sino que deben crearse cuando éxito ha construir y negocian un buen seguimiento de tendencias sistemas . Las probabilidades de apilamiento de hasta - Las personas a menudo trabajan para tratar de construir un sistema que tiene una excelente relación de victorias / derrotas, pero no that039s el enfoque correcto. Por ejemplo, un algo con un ganador de 70 con una ganancia promedio de 100 por el comercio y la pérdida promedio de 200 por el comercio se acaba de hacer 100 por cada 10 operaciones (neto 10 / comercio). Sin embargo, un algo con un ganador de 30 con ganancia media de 500 por el comercio y la pérdida del 100 por operación obtendrá una ganancia neta de 800 para 10 operaciones (80 / comercio). Por lo tanto, no es necesario que la relación de victorias / derrotas debe ser bueno, en lugar it039s las probabilidades de que se acumula hasta que debería ser mejor. Esto va diciendo las pérdidas quotKeep pequeñas, pero deje que su runquot ganadores. quotIn la inversión, lo que es cómodo es raramente profitable. quot - Robert Arnott Disposición - Disposición es inevitable, si usted está siguiendo cualquier tipo de estrategia. Así, mientras que el diseño de un algo don039t tratar de reducir la reducción o hacer alguna condición específica de encargo de cuidar de que la reducción. Esta condición específica puede, en el futuro puede actuar como un control de carretera en la captura de una gran tendencia y su algo puede funcionar mal. Gestión de Riesgos - Cuando se construye una estrategia, siempre se debe tener una puerta de salida, lo que el mercado decida hacer. El mercado es un lugar de probabilidades y se debe diseñar un algo para salir de un comercio tan pronto como sea posible si doesn039t adaptarse a su apetito por el riesgo. Normalmente se argumenta que hay que corre el riesgo de 1-2 del capital en cada operación, y es óptimo en muchos sentidos, ya que incluso si se obtiene arnd 10 operaciones falsas en su capital de la sucesión pasará a sólo 20.But este no es el caso en el escenario real del mercado. Algunos oficios Lossing será de entre 0-1, mientras que algunos pueden ir a 3-4, por lo que es mejor para definir el capital medio Lossing por el comercio y la capital máximo que se puede perder en un comercio, ya que los mercados son completamente al azar y can039t ser juzgados . quotEvery vez en cuando, el mercado hace algo tan estúpido que toma su aliento away. quot - Jim Cramer 2. Las pruebas y la optimización de un deslizamiento Estrategia. Cuando estamos probando una estrategia en datos históricos, estamos bajo el supuesto de que la orden se ejecutará al precio predefinido llegado por el algo. Pero esto nunca va a ser el caso, ya que tenemos que hacer frente a los creadores de mercado y algo039s HFT ahora. Su orden en el mundo today039s nunca será ejecutado en el precio deseado, y no habrá deslizamiento. Esto debe ser incluido en la prueba. Repercusión en los mercados: Volumen negociado por el algo es otro factor importante a considerar al hacer el back-testing y la recolección de los resultados históricos. A medida que aumenta el volumen de los pedidos realizados por algo tendrá una considerable repercusión en el mercado y el precio promedio del orden llenado será muy diferente. Sus algo pueden producir resultados completamente diferentes en condiciones reales de mercado, si no va a estudiar la dinámica de volumen algo de su cuenta. Optimización: La mayoría de los comerciantes sugieren que no lo haga el ajuste de curvas y más de optimización y que son correctos ya que los mercados son una función de variables aleatorias y no hay dos situación volverá a ser lo mismo. Así parámetros de optimización para situaciones particulares es una mala idea. Yo sugeriría que se vaya para la optimización del Zonal. Es una técnica que me siga, compro zonas que identifican que tienen características similares en términos de volatilidad y volumen. Optimizar estas áreas por separado, en lugar de la optimización de todo el período. Los anteriores son algunos de los pasos más básicos y más importantes que sigo, al convertir un pensamiento básico en un algoritmo y la comprobación de la validez it039s. quot Todo el mundo tiene la capacidad mental para seguir el mercado de valores. Si lo hizo a través de matemáticas de quinto grado, puede hacerlo. quotPeter Lynch 14.5k Vistas middot middot Ver upvotes Not for Reproduction Para empezar con lo básico, obtener una bodega de Amibroker (AmiBroker - Descargar). Amibroker tiene un fácil aprender el lenguaje y potente motor de backtest donde se puede crear prototipos de sus ideas. También obtener Howard Bandy 039s de libros cuantitativos sistemas de comercio. Este libro es una muy buena introducción a los conceptos de desarrollo cuantitativo. You039ll también necesita al menos un conocimiento básico de las estadísticas. Hay un montón de buenos cursos MOOC disponible para esto de forma gratuita. Como este Estadística One - Universidad de Princeton Coursera It039s también vale la pena siguiendo la calle entera. que es un mashup de todos los blogs Quant, muchos de los cuales publican código Amibroker con sus ideas. A partir de ahí, it039s entonces vale la pena aprender Python (aprender pitón - Búsqueda de Google), y también haciendo Andrew Ng039s excelente Universidad de Stanford Máquina curso de aprendizaje, que se extiende de forma gratuita en Coursera. Si a continuación desea poner sus propios algoritmos para la prueba, buenos sitios para la que son Quantconnect o Quantopian. Por último, este tipo tiene algunos buenos consejos sobre convirtiéndolo en su carrera www. quantstart / Buena suerte con el viaje parcialmente tomado de respuesta a Alan Clement039s ¿Cómo puede un desarrollador de software en las finanzas convertirse en un desarrollador cuant 14.4K Vistas middot middot Ver upvotes No es para Teniendo en cuenta que la reproducción soy un graduado de la informática que se construyó un sistema de comercio de ultra alta frecuencia a partir de cero, creo que puedo añadir programadores perspectiva de algunas respuestas realmente fantásticas sobre cómo ir sobre la construcción de un sistema de comercio algorítmico. En realidad, hay sólo 3 bloques principales en un sistema Algo Trading (ATS) 1. Mercado manejador de datos (por ejemplo, controlador de FAST) 2. Módulo de Estrategia (por ejemplo, la estrategia de transición) 3. Orden del router (enrutador por ejemplo FIX) es posible añadir el módulo de riesgo, ya sea en el módulo de Estrategia o el módulo Router Orden o ambos. En tanto el flujo de datos es correcto, debe ser bueno para ir. Recuerde que si usted está diseñando un ATS para la latencia mínima, añadiendo más capas o complejidad aumentará ella. arquitectura minimalista ATS Y si se añade las campanas y silbatos, sería conseguir un poco complejo: Si también está interesado en el meollo de la cuestión de la aplicación de la arquitectura anterior, usted debe tener las siguientes cosas en mente. Evitar cerraduras / mutex. En caso de tener que utilizarlo, trate por estructuras de lockless utilizando atómicas. Hay un par de librerías disponibles para estructuras de datos lockless (por ejemplo libcds, kit de concurrencia, etc). C-11 soporta std :: atómica. y usted debe esforzarse para usarlos también. Si usted está apuntando para una baja latencia, evitar cuál es hecho en Quickfix. Su escrito por la seguridad / flexibilidad / ility reusab como objeto (bloquear) la creación y la destrucción se realiza para cada invocación de cualquier mensaje a enrutador. Sin duda, no hay manera de escribir un código sensible a la latencia. Sin asignación de memoria en tiempo de ejecución. vía de ejecución debe utilizar la gestión de memoria personalizado y sin bloqueo con piscina pre-memoria. Toda la inicialización se puede hacer en los constructores. estrecho acoplamiento. El modelo de hilos, modelo E / S y la gestión de memoria deben ser diseñados para colaborar entre sí para lograr un mejor rendimiento general. Esto va en contra del concepto de programación orientada a objetos de acoplamiento débil, pero su coste necesario para evitar el tiempo de ejecución del polimorfismo dinámico. Usar plantillas. En el mismo sentido, también sugeriría nos fijamos en C templatization para lograr flexibilidad de código. Con tantas nuevas características añadidas a las plantillas en c11, sería un crimen no pueda usarlo para añadir flexibilidad. optimización / Hardware OS: Por último, usted debe buscar para trabajar con Linux Kernel RT y la tarjeta de red con conductor Solarflare OpenOnLoad para lograr una latencia mínima. usted puede mirar más para aislar la CPU y ejecutar su programa en ese núcleo en particular. Si baja latencia no es lo que se está buscando es que hay variantes de recursos ATS libremente disponible en la red, por ejemplo, Quickfix (C), Marketcetera (Java). Un montón de otros proveedores también proporcionan pruebas retrospectivas y el comercio módulo que están estrechamente acoplado con sus propios backends. Los populares son Quantconnect, Quantiacs, Interactivo Broker, Riqueza Lab, TradeStation y AmiBroker. Quantopian utiliza descenso por cable, que es una biblioteca basada en el pitón de código abierto, y se está convirtiendo en muy popular. Por otro lado, no hay mejor manera de aprender que construir por sí mismo. Una vez dicho esto, si se inicia la construcción a partir de cero, mientras que se aprende mucho, pero también el resultado final será mucho gasto de tiempo (un par de meses). Y si usted está dispuesto a invertir su tiempo, yo también le aconsejo que aprender los matices de ATS y el comercio algorítmico, en general, antes de empezar a construir un sistema de este tipo. De hecho, dos de mis estudiantes han creado recientemente sus propios sistemas de comercio - www. quantinsti / blogs / e. . En caso de que suena interesante, se puede comprobar www. quantinsti / epat / para obtener más detalles. 1.2K Vistas middot middot Ver upvotes no para la ReproductionBest lenguaje de programación para sistemas de comercio algorítmico Por Michael Salas-Moore el 26 de julio de 2013 Una de las preguntas más frecuentes que recibo en la carpeta de correo QS es ¿Cuál es el mejor lenguaje de programación para el comercio algorítmico. La respuesta corta es que no hay mejor lenguaje. parámetros de la estrategia, el rendimiento, modularidad, el desarrollo, la capacidad de recuperación y el costo de todo deben ser considerados. Este artículo se describen los componentes necesarios de una arquitectura de sistema de negociación algorítmica y cómo las decisiones relativas a la aplicación afectará a la elección de la lengua. En primer lugar, se tendrán en cuenta los principales componentes de un sistema de comercio algorítmico, tales como las herramientas de investigación, optimizador de la cartera, gestor de riesgos y el motor de ejecución. Posteriormente, se examinarán diferentes estrategias de negociación y cómo afectan al diseño del sistema. En particular, será tanto se discutirá la frecuencia de la negociación y el volumen de operaciones probable. Una vez que la estrategia de negociación ha sido seleccionado, es necesario arquitecto todo el sistema. Esto incluye elección del hardware, el sistema operativo (s) y la resistencia del sistema contra eventos raros, potencialmente catastróficas. Mientras se está considerando la arquitectura, debe prestarse la debida atención a rendimiento - tanto a las herramientas de investigación, así como el entorno de ejecución en vivo. ¿Cuál es el sistema de comercio tratando de realizar antes de decidir sobre el mejor lenguaje para escribir un sistema de comercio automatizado es necesario definir los requisitos. Es el sistema va a ser puramente de ejecución basado ¿El sistema requiere la construcción de un módulo de gestión de riesgos o de la cartera ¿El sistema requiere una backtester de alto rendimiento para la mayoría de las estrategias del sistema de comercio se pueden dividir en dos categorías: Investigación y generación de señales. La investigación se refiere a la evaluación de una estrategia de actuación a través de datos históricos. El proceso de evaluación de una estrategia de negociación sobre los datos de mercado antes de que se conoce como backtesting. El tamaño de los datos y la complejidad algorítmica tendrán un gran impacto en la intensidad computacional de la backtester. velocidad de la CPU y la concurrencia a menudo son los factores limitantes en la optimización de la velocidad de ejecución de la investigación. La generación de señales se ocupa de generar un conjunto de señales de operación de un algoritmo y el envío de este tipo de órdenes al mercado, por lo general a través de una casa de valores. Para ciertas estrategias se requiere un alto nivel de rendimiento. E / S de cuestiones tales como ancho de banda y latencia son a menudo el factor limitante en la optimización de los sistemas de ejecución. Por lo tanto la elección de idiomas para cada componente de todo el sistema puede ser muy diferente. El tipo, frecuencia y volumen de Estrategia El tipo de estrategia algorítmica empleado tendrá un impacto sustancial en el diseño del sistema. Será necesario tener en cuenta los mercados se comercializan, la conectividad a los proveedores de datos externos, la frecuencia y el volumen de la estrategia, el equilibrio entre la facilidad de desarrollo y la optimización del rendimiento, así como cualquier hardware personalizado, incluida la costumbre de ubicación conjunta

Comments