Yo también estaba interesado en la misma pregunta, y deciden compartir mi proyecto y de la investigación hasta el momento.
He construido un Comercio de Futuros de nuevo tester en python, que finalmente apoyará en vivo/papel comercial. Aquí el boceto del diseño:
-------------- -------------- ------------
| MarketData | ---> | Backtester | --> | Results |
| (MongoDB) | | (Engine) | | (MongoDb |
-------------- -------------- ------------
^
|
---------------
| Algoritms |
---------------
Los datos de mercado por goteo alimentado en el Backtester del motor, en el que los procesos en contra de la entrada de los algoritmos para decidir si quiere tomar un comercio. Todos los resultados (es decir, el comercio de registro, estadísticas de comercio, etc...) son el resultado de nuevo en la MongoDB.
Front End Requisitos
Siguiente, mi objetivo es construir un front-end. Quiero la parte delantera para permitir a un usuario para la instalación de pruebas retrospectivas. es decir, los parámetros de Entrada para el backtest, tales como la hora de inicio/fin, algoritmo, a partir de efectivo, etc.., los botones de inicio/parar/detener el comercio, etc... una Vez que el backtest comienza, quiero que el usuario vea el backtest de comercio de ocurrir en tiempo real en los gráficos. Ellos deben ser capaces de configurar múltiples cartas, es decir, 5 minutos de las velas, 1 hora, día, etc... también quiero las estadísticas de actualización en vivo como el backtest se ejecuta, incluyendo la equidad de una curva del gráfico. Quantopian tiene algo similar (ver quantopian.com) aunque quiero construir este suelo por varias razones.
Extremo delantero / lado del Cliente Marcos
A mí me parece que un front-end framework, como AngularJS o ReactJS, sería útil aquí para permitir una experiencia interactiva que estoy tratando de crear. Me estoy inclinando hacia ReactJS sobre todo porque he encontrado este impresionante gráficos de comillas de proyecto: http://rrag.github.io/react-stockcharts/.
Hay otros proyectos como el Plotly del Guión (que está construido en la parte superior de ReactJS, Plotly.js y D3). Pero me estoy encontrando que Plotly los gráficos son un poco rígidos, es decir, el eje-y no se ajuste en un gráfico como el zoom, y no apoyar a todos de la misma fuera de cuadro gráfico de características como reaccionar-stockcharts. También hay Plotly del Guión. Aunque me estoy dando cuenta que es difícil de integrar el Guión en una Aplicación Web (ver algunos de los debates en los foros sobre este tema). Pero el Guión no permite que usted no tiene que vivir (intervalo) la actualización de los gráficos. Su relativamente nuevo, por lo que tiene un potencial en el futuro. Pero me estoy inclinando hacia ReactJS y reaccionar-stockcharts.
También he pensado en ir con Grafana, que es un fuera-de-la-caja de front end, principalmente, para la supervisión y alertas de las aplicaciones (creo QUE admin quiere monitor de CPU, Memoria, etc.., para varios servidores en su laboratorio). Tienen un soporte limitado para unos datos de entrada de las fuentes, es decir, InfluxDB, MySQL, Elasticsearch, Grafito, etc... parece InfluxDB es un preferido de la base de datos a utilizar, probablemente porque creo que es desarrollado por la misma gente que construyó Grafana (que ofrecen estas en una solución completa llamada InfluxData). Hay otros plugins para MongoDB, gráficos velas, y plotly. Pero es difícil tratando de integrar y utilizar todos estos plugins para obtener la misma experiencia como reaccionar-stockcharts. Y en el final, esta aplicación no se siente bien para un stock de gráficos o backtesting web app.
Servicio Marcos de lado
Todavía no estoy completamente seguro si necesito un servicio del lado del marco. Aunque estoy considerando utilizar Node.js. Node.js al parecer, también actúa como un Servidor Web. Pero lo que me atrae a Node.js es el hecho de que el apoyo de async puestos de trabajo. Así que cuando el usuario envía backtest puestos de trabajo, estos trabajos pueden ser enviados a través de Node.js en el backend (MongoDB). Y del mismo modo, puede esperar y la retroalimentación de los resultados comerciales para el cliente. No conectar/desconectar con frecuencia como los tradicionales Servidor Web HTTP de las solicitudes. La conexión permanece activa y funciona de forma asincrónica. (Soy un novato en todo esto, así que cualquiera puede me corrija si estoy equivocado acerca de esto).
El frasco también es digno de la comprobación hacia fuera. Desde mi backend es python, podría ser más fácil de integrar e incluso eliminar la necesidad de ir a través de una base de datos.
Por último, he encontrado que existen estos free open source web de pilas.
1. MEAN (MongoDB, ExpressJS, AngularJS, NodeJS)
Aquí está su página web:
http://mean.io/
También, usted puede conseguir esta funcionando bastante rápido con ventana acoplable Componer:
https://hub.docker.com/r/meanjs/mean/
2. MERN (MongoDB, ExpressJS, ReactJS, NodeJS)
Aquí está su página web:
http://mern.io/
También, usted puede conseguir esta funcionando bastante rápido con ventana acoplable Componer:
https://github.com/Hashnode/mern-starter
Y una discusión interesante sobre Mongo del sitio web acerca de estos:
https://www.mongodb.com/blog/post/the-modern-application-stack-part-1-introducing-the-mean-stack