WonderTrader
es un marco de desarrollo comercial cuantitativo de alta eficiencia y alta disponibilidad basado en el módulo central de C++
que es adecuado para todo tipo de transacciones en todo el mercado.
WonderTrader
se basa en el marco central de C++
de alta velocidad y el marco de capa de aplicación (wtpy) eficiente y fácil de usar, y se compromete a crear un escenario comercial de I+D cuantitativo integral y totalmente automatizado desde I+D, comercio, operaciones y programación. .
WonderTrader
lanzó un nuevo motor UFT en 0.9
para satisfacer las necesidades del comercio de latencia ultrabaja. Después de una serie de optimizaciones, la latencia del sistema está dentro de los 175 nanosegundos .
La verdadera arquitectura comercial de WonderTrader
WonderTrader
Rico motor comercial
- El motor de CTA , también llamado motor de estrategia de sincronización , generalmente es adecuado para estrategias con menos objetivos, una lógica de cálculo más rápida y está controlado por eventos y tiempo. Los escenarios de aplicación típicos incluyen sincronización de oferta única, arbitraje por debajo de la frecuencia media, etc. Para la estrategia DualThrust proporcionada en la demostración, el tiempo promedio necesario para un único recálculo es de aproximadamente 70 microsegundos para la versión de implementación de Python y aproximadamente 4,5 microsegundos para la versión de implementación de C++.
- Motor SEL , también llamado motor de estrategia asíncrono , generalmente es adecuado para estrategias basadas en el tiempo que tienen muchos objetivos y requieren mucho tiempo para calcular la lógica. Los escenarios de aplicación típicos incluyen estrategias de selección de acciones multifactoriales, estrategias transversales largas y cortas, etc.
- El motor HFT , también llamado motor de estrategia de alta frecuencia , está dirigido principalmente a estrategias de alta frecuencia o baja latencia. Está controlado por eventos y el retraso del sistema es de entre 1 y 2 microsegundos.
- El motor UFT , también llamado motor de estrategia ultrarrápido , está dirigido principalmente a estrategias de frecuencia ultraalta o latencia ultrabaja, impulsadas por eventos, y el retraso del sistema es de 200 nanosegundos.
Interfaz de desarrollo completa
- Interfaz de datos eficiente y fácil de usar : cada estrategia tendrá un módulo de contexto independiente. El contexto almacenará automáticamente en caché los datos requeridos por la estrategia y la estrategia se puede llamar directamente.
- Interfaz de señal simple : la estrategia solo necesita establecer la posición objetivo y se ejecutará automáticamente en segundo plano.
- Lógica de política libre de contexto : la política no necesita registrar ningún dato por sí misma, solo necesita consultar la interfaz cada vez. Todos los datos se almacenan en caché en la memoria y se garantiza la eficiencia del acceso.
gestión estratégica profesional
- Gestión unificada de combinaciones de estrategias : El enfoque de combinación de estrategias se utiliza principalmente para coordinar con la gestión de productos de organizaciones profesionales. Una placa combinada corresponde a varios objetivos de varias estrategias y luego establece un monto de fondo unitario básico. Esta es la placa combinada básica de gestión de productos, que es conveniente para la expansión.
- Ejecución de la fusión de la posición objetivo : una vez fusionada la posición objetivo, se evita el riesgo de autotransacción y se reducen la ocupación del margen y los gastos de comisión.
- Almacenamiento independiente de posiciones teóricas : las posiciones teóricas de la estrategia se almacenan de forma independiente y el rendimiento general del disco combinado también se calcula de forma independiente, lo que facilita la gestión interna.
- Ejecución simultánea de múltiples cuentas : una vez determinada la posición objetivo de la combinación, se ejecuta simultáneamente a través de múltiples canales comerciales, lo que puede garantizar de manera efectiva la coherencia del rendimiento de diferentes cuentas.
Tipo completo de soporte de backtest
- Soporte completo de lenguaje : ya sea una estrategia desarrollada en
C++
, una estrategiapython
desarrollada enwtpy
o una estrategia desarrollada en otros submarcos de lenguaje, todas se prueban en un motor de backtesting unificado .- Alta eficiencia de backtesting : el motor de backtesting está desarrollado en
C++
, la eficiencia del backtesting es alta y la velocidad es rápida. Ya sea una estrategiaC++
o una estrategiaPython
, se puede verificar rápidamente.- Soporte completo de estrategias : además de las estrategias CTA y SEL , también se pueden realizar pruebas retrospectivas de las estrategias HFT , las estrategias UFT y las unidades de ejecución .
Servo de datos eficiente
- Servidor de datos local : el motor de almacenamiento integrado de
WonderTrader
utiliza almacenamiento local, establece un servidor de datos localmente y transmite datos de mercado en tiempo real a través del puertoudp
para lograr una estructura de servicio1+N
, que puede proporcionar servicios de datos indiferenciados para múltiples combinaciones. discos al mismo tiempo. La arquitectura profesional a nivel de proveedor de datos respalda el establecimiento de un sistema de distribución de múltiples niveles para hacer frente fácilmente a diversos escenarios de demanda.- Almacenamiento en caché de datos históricos : durante el proceso de transacción, todos los datos históricos se almacenan en caché en la memoria. Al mismo tiempo, se adopta el mecanismo de hacer referencia directa a los segmentos de datos de la memoria para evitar fundamentalmente la copia de datos y mejorar la eficiencia del acceso.
- Motor de almacenamiento eficiente : los datos en tiempo real utilizan archivos
mmap
, que pueden leer y escribir a altas velocidades sin perder datos. Al mismo tiempo, admite la base de datos mysql para almacenar datos históricos, lo que hace que sea más conveniente crear su propia base de datos de investigación de inversiones sobre esta base.
Control de riesgos flexible
- Control de riesgo de fondos del disco combinado : el disco combinado tiene una escala de fondos preestablecida y el control de riesgo de fondos del disco combinado se puede llevar a cabo en función de los fondos virtuales del disco combinado. La mayor ventaja es que si la combinación está en la etapa descendente, después de que se active el control de riesgos, incluso si la cuenta de capital no alcanza la línea de control de riesgos, no seguirá disminuyendo.
- Control de riesgos de tráfico del canal : Dirigido principalmente a riesgos de cumplimiento , controlando indicadores como el número total de pedidos cancelados, el número de pedidos realizados en un corto período de tiempo y el número de pedidos cancelados.
- Control de riesgo de fondos de cuentas : es consistente con el control de riesgos de fondos en el sentido general, controlando principalmente el retiro de fondos de cuentas, etc.
- Intervención manual de emergencia : proporcione una entrada para la intervención manual de emergencia y logre fines de control cargando un archivo de configuración. Es adecuado principalmente para riesgos en un solo producto. Si existe un riesgo en todo el mercado, el sistema se puede detener manualmente.
- Mecanismo de embrague : El mecanismo de embrague se basa en el mecanismo de separación de señales y ejecución. Se utiliza principalmente para desconectar directamente la ejecución de la señal a través del mecanismo de embrague si existe un riesgo en la estrategia o combinación. La ventaja es que no afecta la lógica de la estrategia y solo desconecta la ejecución de la señal. Puede continuar observando el desempeño de la estrategia en una etapa específica del mercado y confirmarlo con investigación teórica.
Potente consola (servicio de monitoreo wtpy)
- Monitoreo de operaciones de discos combinados : puede ver registros de operaciones en tiempo real, datos teóricos de estrategias, datos de canales comerciales, etc., y proporcionar una entrada para inicio y parada manuales.
- Servicio de programación automática : programa de forma totalmente automática las tareas programadas (iniciar, detener, reiniciar), admite la configuración de repeticiones de tareas semanalmente y admite la tutela de procesos.
- Notificación de eventos en tiempo real : el servicio de monitoreo recibe los eventos enviados por el disco combinado y luego los reenvía al terminal de monitoreo para avisar al usuario.
- Visor de backtest : con el módulo WtBtSnooper, puede ver y analizar datos de backtest.
- Implementación remota completamente automática (en construcción) : Implementación remota en línea completamente automática, que proporciona servicios de implementación automatizada para diversos escenarios de aplicaciones, como entornos de prueba retrospectiva y entornos de disco real.
control interno del equipo El método de gestión estratégica de cartera proporciona una solución perfecta para la gestión de equipos internos.
C++
puede proporcionar la máxima confidencialidad de las políticas y los investigadores de inversiones no tienen que preocuparse por la filtración de políticas; Comercio con múltiples cuentas ( configuración de múltiples productos ) Para combinaciones de estrategias bajo diferentes ciclos de mercado, el equipo promedio tendrá la combinación de estrategias que sea más adecuada para el momento. Sin embargo, durante el mismo período, el equipo puede administrar muchas cuentas al mismo tiempo, pero de hecho, las combinaciones de estrategias utilizadas por estas cuentas son las mismas. En este momento, la arquitectura de ejecución M+1+N proporcionada por la plataforma WonderTrader
puede satisfacer perfectamente esta demanda.
Supongamos que el tamaño del capital básico de una determinada combinación P es de 5 millones, el rendimiento esperado es del 30%, la reducción máxima es del 10% y la relación rendimiento-riesgo es de 3:1. La cuenta A utiliza esta combinación P para operar; y la cantidad de fondos en la cuenta A es 10 millones, y la cantidad máxima aceptable es El retroceso también es del 10%. La cuenta B también usa esta combinación para negociar con P, y la cantidad de fondos también es 10 millones, pero puede; El retroceso máximo aceptado es del 20% en este momento, debido a que los parámetros de riesgo de la cuenta A son consistentes con el mercado básico, la ampliación del tamaño del lote de la cuenta A es el tamaño del capital/tamaño del fondo del mercado básico = 1000w/500w = 2; veces; la cuenta B puede tolerarlo. La reducción máxima es del 20%, por lo que la proporción del tamaño del lote debe duplicarse, es decir, la cuenta B se puede asignar 4 veces.
Seguimiento de múltiples objetivos Algunas plataformas de comercio cuantitativo que utilizan lenguajes interpretados (como Python
) para desarrollar módulos centrales son capaces de realizar varios escenarios de aplicación cuando solo hay unos pocos objetivos. Pero cuando el número de objetivos que deben ser rastreados llega a más de 100, o incluso a más de 50, no puede satisfacer la demanda. Por un lado, consume muchos recursos mediante el uso de multiprocess
y otros mecanismos. Aunque cada objetivo se ejecuta de forma independiente, se crearán cientos de procesos nuevos para cientos de objetivos, lo que consume mucha memoria y CPU. , la estrategia es ineficiente y existe una fuerte competencia por los recursos. En determinadas circunstancias, la respuesta estratégica también será más lenta. El núcleo de WonderTrader
está desarrollado en C++
, y el servo de datos está diseñado desde el principio para proporcionar servicios a múltiples combinaciones al mismo tiempo. Al mismo tiempo, la estrategia y la ejecución están separadas, y la ejecución de la señal y el cálculo de la estrategia se ejecutan de forma completamente independiente. dos hilos diferentes. Con una arquitectura de este tipo, se pueden satisfacer bien las necesidades del seguimiento multiestándar.
Estrategia computacionalmente intensiva La cantidad de cálculos necesarios para algunas estrategias es asombrosa. Una típica es la estrategia de selección de acciones, ya sea que utilice múltiples factores o fundamentos, examinará gradualmente miles de acciones para obtener el grupo de acciones objetivo final. Además, algunos marcos multifactoriales multiestándar también tienen una gran cantidad de cálculos. Una estrategia de este tipo requiere una gran cantidad de cálculos y lleva mucho tiempo. El motor SEL
de WonderTrader
está personalizado para satisfacer esta necesidad. El motor SEL
adopta un modelo asincrónico basado en el tiempo. Al registrar el cronograma de tiempo de recálculo con el motor (que admite múltiples ciclos, como intradiario, diario, semanal y mensual), activa el recálculo regularmente y luego ajusta las posiciones de los objetivos de múltiples objetivos. , por lo tanto la señal de salida.
Comercio rápido WonderTrader
utiliza C++
como lenguaje de desarrollo central subyacente. Uno de los propósitos más importantes es lograr el máximo rendimiento , por lo que el comercio de alta frecuencia o el comercio rápido representan una proporción muy grande en los escenarios de uso de WonderTrader
. WonderTrader
ha abierto un nuevo UFTEngine en la versión v0.9
, que está especialmente diseñado para escenarios comerciales extremadamente rápidos. A diferencia del HFTEngine
original, HFTEngine
apunta a altas frecuencias generales y se enfoca en proporcionar componentes subyacentes de alto rendimiento a la capa de aplicación . Considerará más problemas de compatibilidad y problemas de acoplamiento de la capa de aplicación. UFTEngine
está completamente separado del proyecto WtCore
y no proporciona interfaces para la capa de aplicación. Todo está desarrollado e implementado en C++
y el retraso del sistema está dentro de los 200 ns .
Comercio algorítmico WonderTrader
tiene un módulo de entrada de ejecutor independiente WtExecMon
, en el que los usuarios pueden implementar el comercio algorítmico. En la arquitectura de ejecución M+1+N de WonderTrader
, la parte de ejecución 1+N se elimina y puede usarse como un ejecutor comercial algorítmico independiente . Cuando los usuarios lo usan, al establecer la posición objetivo del objetivo especificado, la unidad de ejecución del algoritmo puede colocar órdenes comerciales de acuerdo con el algoritmo preestablecido. Los usuarios pueden agregar más unidades de ejecución de algoritmos implementando su propio módulo WtExecFact
. La capa inferior eficiente C++
puede proporcionar una sólida garantía para el efecto de ejecución de la unidad de ejecución del algoritmo.
wtpy
WonderTrader
, un submarco Python3
de WonderTrader
desarrollado con Python3
Python
tiene muchas bibliotecas de terceros muy populares y potentes para el procesamiento de datos de series temporales.Python
es muy conveniente para escribir y depurar código. Se puede ejecutar directamente sin compilación.Python
también permiten que Python
se aplique a más escenarios.wtpy
es como una extensión de WonderTrader
en el lenguaje Python
.wtpy
también tiene un potente componente de servicio de monitoreo incorporado WtMonSvr
. Este componente proporciona una interfaz de monitoreo webui
remoto, que puede monitorear el funcionamiento de la combinación de estrategias en tiempo real. También proporciona un servicio de programación automática 24×7
para proteger sus transacciones. WonderTrader
WonderTrader
github
: https://github.com/wondertrader/wondertradergitee
: https://gitee.com/wondertrader/wondertraderwtpy
github
: https://github.com/wondertrader/wtpygitee
: https://gitee.com/wondertrader/wtpywtpy
: https://pypi.org/project/wtpy/ wtpy
se puede instalar directamente en python3.8
o superior. pip install wtpy --upgrade
WonderTrader
Wt4ElegantRL
que utiliza wtpy
como motor de backtest subyacente https://github.com/drlgistics/Wt4ElegantRL wondertrader
para recibir información en tiempo real de WonderTrader
610730738
(completo) Grupo 2 367916500
( star
antes de unirse y luego proporcione su nombre de usuario github
)WonderTrader
, consulte https://docs.wondertrader.com/WonderTrader
https://dumengru.github.io/docs_wondertrader/WonderTrader
de @ZzzzHeJ https://zzzzhej.github.io/WonderTrader-Learning-Notes/