¿Quieres leer esto en inglés ? Ir aquí
VeighNa es un marco de desarrollo de sistema de comercio cuantitativo de código abierto basado en Python Con contribuciones continuas de la comunidad de código abierto, ha crecido gradualmente hasta convertirse en una plataforma de comercio cuantitativo multifuncional. Desde su lanzamiento, ha acumulado muchos usuarios de instituciones financieras o relacionadas. campos, incluidos fondos de capital privado, compañías de valores, compañías de futuros, etc.
[Terminal cuantitativa VeighNa Elite] para operadores profesionales se ha lanzado oficialmente, brindando un soporte perfecto para las necesidades de los operadores profesionales en términos de concurrencia de estrategias masivas, cambio de posición inteligente, ejecución dividida de algoritmos y soporte para operaciones con múltiples cuentas. Para obtener información más detallada, escanee el código QR a continuación para seguirlo y haga clic en [Comunicación comunitaria -> Servicio de membresía Elite] en la barra de menú :
Si tiene alguna pregunta durante el proceso de uso de VeighNa para el desarrollo secundario (estrategias, módulos, etc.), consulte la documentación del proyecto VeighNa . Si no puede resolver el problema, vaya a la sección [Preguntar y ayudar] del sitio oficial. foro de la comunidad para obtener ayuda. También eres bienvenido a [Compartir experiencias] ¡Comparte tu experiencia usando esta sección!
¿Quieres obtener más información sobre VeighNa? Escanee el código QR a continuación para agregar un asistente y unirse al [grupo WeChat de comunicación comunitaria de VeighNa]:
Una plataforma de comercio cuantitativo multifuncional (Trader), que integra una variedad de interfaces comerciales y proporciona API simples y fáciles de usar para algoritmos de estrategia específicos y desarrollo de funciones, para crear rápidamente aplicaciones de comercio cuantitativo requeridas por los comerciantes.
La interfaz comercial (puerta de enlace) que cubre los siguientes productos comerciales de propiedad nacional y extranjera:
mercado interno
CTP (ctp): opciones y futuros nacionales
CTP Mini (mini): Futuros y opciones nacionales
CTP Securities (sopt): opciones de ETF
Femas: futuros nacionales
Hang Seng UFT (uft): futuros nacionales, opciones de ETF
esunny: futuros nacionales, oro TD
Apex Feichuang (seg): opciones de ETF
Vertex HTS (hts): Opciones ETF
Zhongtai XTP (xtp): valores nacionales (acciones A), opciones ETF
Singularidad de Huaxin (tora): valores nacionales (acciones A), opciones de ETF
Guotai Junan (hft): valores nacionales (acciones A, servicios financieros)
Topix OST (ost): Valores nacionales (acciones A)
Oriental Fortune EMT (emt): valores nacionales (acciones A)
Flying Squirrel (sgit): TD de oro, futuros nacionales
ksgold: oro TD
Lei Xing Asset Management (lstar): Gestión de activos de futuros
Rohon: Gestión de activos de futuros
jees: gestión de activos de futuros
Zhonghui Yida (comstar): mercado interbancario
Nuggets (gm): Valores Nacionales (Simulación)
Hang Seng Cloud UF (uf): Valores nacionales (Simulación)
TTS (tts): Futuros nacionales (simulación)
mercado extranjero
Interactive Brokers (ib): valores extranjeros, futuros, opciones, metales preciosos, etc.
Disco externo Yisheng 9.0 (toque): futuros en el extranjero
Futuros directos (da): futuros en el extranjero
Aplicación especial
Cotizaciones RQData (rqdata): cotizaciones en tiempo real en todos los mercados (acciones, índices, ETF, futuros)
Cotizaciones de Xun Touyan (xt): cotizaciones en tiempo real en todos los mercados (acciones, índices, bonos convertibles, ETF, futuros, opciones)
Servicio RPC (rpc): interfaz de comunicación entre procesos para arquitecturas distribuidas
Aplicaciones comerciales (apps) que cubren los siguientes tipos de estrategias cuantitativas:
cta_strategy: el módulo del motor de estrategia de CTA, aunque mantiene la facilidad de uso, permite a los usuarios llevar a cabo un control detallado sobre los informes encargados y el comportamiento de retiro durante la operación de las estrategias de CTA (reducir el deslizamiento de transacciones e implementar estrategias de alta frecuencia)
cta_backtester: módulo de backtest de estrategia de CTA, sin usar Jupyter Notebook, utiliza directamente la interfaz gráfica para realizar análisis de backtest de estrategia, optimización de parámetros y otros trabajos relacionados.
spread_trading: módulo de negociación de diferenciales, admite diferenciales personalizados, cálculo en tiempo real de cotizaciones y posiciones de diferenciales, admite operaciones de algoritmos de diferenciales y modos de estrategia de diferenciales automáticos
option_master: módulo de negociación de opciones, diseñado para el mercado de opciones nacional, admite múltiples modelos de fijación de precios de opciones, cálculos de superficie de volatilidad implícita, seguimiento del riesgo del valor griego y otras funciones.
portfolio_strategy: módulo de estrategia de cartera, para estrategias cuantitativas (Alfa, arbitraje de opciones, etc.) que negocian múltiples contratos al mismo tiempo, proporcionando pruebas retrospectivas de datos históricos y funciones de negociación automática en tiempo real.
algo_trading: módulo de comercio algorítmico, que proporciona una variedad de algoritmos de comercio inteligentes de uso común: TWAP, Sniper, Iceberg, BestLimit, etc.
script_trader: módulo de estrategia de script, diseñado para estrategias cuantitativas multiestándar y tareas de cálculo. También puede implementar transacciones en forma de instrucciones REPL en la línea de comando.
paper_account: módulo de simulación local, una función de negociación de simulación puramente localizada, coincidencia confiada basada en las condiciones del mercado en tiempo real obtenidas de la interfaz de negociación y provista de registros de posición y empuje de transacciones confiados
chart_wizard: módulo de gráfico de líneas K, que obtiene datos históricos basados en el servicio de datos RQData (futuros) o la interfaz comercial, y muestra cambios de mercado en tiempo real combinados con Tick push
portfolio_manager: el módulo de gestión de cartera comercial, basado en carteras comerciales estratégicas independientes (subcuentas), proporciona gestión de registros de transacciones encargadas, seguimiento automático de posiciones comerciales y estadísticas en tiempo real de ganancias y pérdidas diarias.
rpc_service: módulo de servicio RPC, que permite que un determinado proceso se inicie como servidor. Como canal unificado de enrutamiento de transacciones y mercado, permite que varios clientes se conecten al mismo tiempo para implementar un sistema distribuido multiproceso.
data_manager: módulo de gestión de datos históricos, vea la descripción general de los datos existentes en la base de datos a través del directorio de árbol, seleccione datos en cualquier período de tiempo para ver los detalles del campo, admita la importación y exportación de datos de archivos CSV
data_recorder: Módulo de registro de mercado, configurado en base a la interfaz gráfica, registra las condiciones del mercado Tick o K-line en tiempo real en la base de datos según las necesidades, para backtesting de estrategias o inicialización de mercado real.
excel_rtd: servicio de datos en tiempo real RTD (Real Time Data) de Excel, basado en el módulo pyxll para obtener actualizaciones push en tiempo real de varios datos (mercados, contratos, posiciones, etc.) en Excel
Risk_manager: módulo de gestión de riesgos, que proporciona estadísticas y restricciones sobre el control del flujo de transacciones, la cantidad de pedidos, la encomienda de actividades, el número total de cancelaciones de pedidos y otras reglas, implementando de manera efectiva funciones de control de riesgos de front-end.
web_trader: módulo de servicio web, diseñado para los requisitos de la arquitectura BS, implementa un servidor web que proporciona llamadas a funciones activas (REST) y envío de datos pasivo (Websocket)
La encapsulación de la interfaz API de transacciones de Python (api) proporciona la implementación de acoplamiento subyacente de la interfaz de transacciones anterior.
Cliente REST (rest): un cliente API REST de alto rendimiento basado en IO asincrónica de rutina, que utiliza el modelo de programación de bucle de mensajes de eventos para admitir el envío de solicitudes de transacciones en tiempo real de alta concurrencia
Cliente Websocket (websocket): un cliente API Websocket de alto rendimiento basado en IO asincrónica de rutina, que admite la ejecución simultánea del bucle de eventos compartido con el cliente REST.
El motor impulsado por eventos (evento) simple y fácil de usar sirve como núcleo del programa de comercio impulsado por eventos.
Interfaz de adaptador para acoplar varias bases de datos (base de datos):
clase SQL
SQLite (sqlite): base de datos liviana de un solo archivo, no es necesario instalar ni configurar programas de servicio de datos, la opción predeterminada de VeighNa, adecuada para usuarios novatos
MySQL (mysql): una base de datos relacional de código abierto convencional con documentación extremadamente rica y que puede reemplazar otras implementaciones compatibles con NewSQL (como TiDB)
PostgreSQL (postgresql): una base de datos relacional de código abierto con funciones más ricas. Admite nuevas funciones a través de complementos de extensión. Solo se recomienda para usuarios experimentados.
Clase NoSQL
DolphinDB (dolphindb): una base de datos de series temporales distribuida de alto rendimiento, adecuada para tareas de baja latencia o en tiempo real con requisitos de velocidad extremadamente altas
Ártico (ártico): una base de datos de series de tiempo financieras de alto rendimiento que adopta soluciones de optimización del rendimiento, como el almacenamiento en bloques y la compresión LZ4, para lograr una lectura y escritura eficiente de datos de series de tiempo.
TDengine (taos): una base de datos de series temporales distribuida, de alto rendimiento y compatible con SQL con almacenamiento en caché integrado, computación de transmisión, suscripción de datos y otras funciones del sistema, que pueden reducir en gran medida la complejidad de la I + D y la operación y mantenimiento.
TimescaleDB (timescaledb): una base de datos de series temporales desarrollada en base a PostgreSQL. Se instala como una extensión de complemento y admite la partición automática de datos por espacio y tiempo.
MongoDB (mongodb): una base de datos de documentos basada en almacenamiento de archivos distribuido (formato bson). La memoria caché de datos activos incorporada proporciona velocidades de lectura y escritura más rápidas.
InfluxDB (influxdb): una base de datos de series temporales especialmente diseñada para el almacenamiento de datos en columnas TimeSeries proporciona aplicaciones de análisis periférico y de lectura y escritura extremadamente altas.
LevelDB (leveldb): una base de datos clave/valor de alto rendimiento lanzada por Google. Implementa un motor de almacenamiento en proceso basado en el algoritmo LSM y admite miles de millones de datos masivos.
Interfaz de adaptador (datafeed) para acoplar los siguientes tipos de servicios de datos:
Xun Investment Research (xt): acciones, futuros, opciones, fondos, bonos
MiKang RQData (rqdata): acciones, futuros, opciones, fondos, bonos, oro TD
Wing Chun Master (voltrader): futuros, opciones
Hang Seng UData (udata): acciones, futuros, opciones
TuShare (tushare): acciones, futuros, opciones, fondos
Viento (viento): acciones, futuros, fondos, bonos
Tinysoft (tinysoft): acciones, futuros, fondos, bonos
Flush iFinD (ifind): acciones, futuros, fondos, bonos
Tianqin TQSDK (tqsdk): futuros
Componente estándar de comunicación entre procesos (rpc), utilizado para implementar sistemas comerciales complejos con implementación distribuida.
El gráfico (gráfico) de líneas K de alto rendimiento de Python admite la visualización de gráficos con un gran volumen de datos y funciones de actualización de datos en tiempo real.
Los foros comunitarios y las columnas de Zhihu incluyen tutoriales de desarrollo sobre el proyecto VeighNa e investigaciones sobre la aplicación de Python en el campo del comercio cuantitativo.
El grupo de comunicación oficial 262656087 (QQ) está administrado estrictamente (los miembros que han sido buceadores durante mucho tiempo son eliminados regularmente) y la tarifa de entrada al grupo se donará al fondo comunitario de VeighNa.
Nota: La descripción anterior de las características funcionales se basa en la situación en el momento de la publicación de la documentación y puede actualizarse o ajustarse en el futuro. Si la descripción de la función es diferente de la existencia real, contáctenos a través de Problema para realizar ajustes.
Descargue la versión de lanzamiento aquí, descomprímala y ejecute el siguiente comando para instalarla:
ventanas
install.bat
ubuntu
bash install.sh
Macos
bash install_osx.sh
Nota: Las bibliotecas dependientes necesarias para la instalación del marco VeighNa se enumeran en setup.cfg, y las versiones de instalación recomendadas de estas bibliotecas dependientes se proporcionan en requisitos.txt.
Registre una cuenta de simulación CTP en SimNow y obtenga el código del corredor y la dirección del servidor de cotizaciones comerciales en esta página.
Regístrese en el foro de la comunidad VeighNa para obtener la cuenta y la contraseña de VeighNa Station (la cuenta y la contraseña del foro son las mismas)
Inicie VeighNa Station (se creará automáticamente un acceso directo en el escritorio después de instalar VeighNa Studio), ingrese la cuenta y la contraseña del paso anterior para iniciar sesión.
¡Haga clic en el botón VeighNa Trader en la parte inferior para comenzar a operar! ! !
Aviso:
Además del método de inicio gráfico basado en VeighNa Station, también puede crear run.py en cualquier directorio y escribir el siguiente código de muestra:
from vnpy . event import EventEngine
from vnpy . trader . engine import MainEngine
from vnpy . trader . ui import MainWindow , create_qapp
from vnpy_ctp import CtpGateway
from vnpy_ctastrategy import CtaStrategyApp
from vnpy_ctabacktester import CtaBacktesterApp
def main ():
"""Start VeighNa Trader"""
qapp = create_qapp ()
event_engine = EventEngine ()
main_engine = MainEngine ( event_engine )
main_engine . add_gateway ( CtpGateway )
main_engine . add_app ( CtaStrategyApp )
main_engine . add_app ( CtaBacktesterApp )
main_window = MainWindow ( main_engine , event_engine )
main_window . showMaximized ()
qapp . exec ()
if __name__ == "__main__" :
main ()
Abra CMD en este directorio (mantenga presionada la tecla Mayús->haga clic con el botón derecho del mouse->abrir ventana de comando/PowerShell aquí) y ejecute el siguiente comando para iniciar VeighNa Trader:
python run.py
VeighNa usa Github para alojar su código fuente. Si desea contribuir con código, utilice el proceso PR (Pull Request) de github:
Crear un problema: para cambios más importantes (como nuevas funciones, refactorización a gran escala, etc.), se recomienda abrir un problema para discutirlo primero. Para mejoras más pequeñas (como mejoras de documentos, correcciones de errores, etc.), simplemente. envíe un PR directamente.
Fork VeighNa: haga clic en el botón Fork en la esquina superior derecha
Clona tu propia bifurcación: git clone https://github.com/$userid/vnpy.git
Crea tu propia rama de funciones desde dev : git checkout -b $my_feature_branch dev
Modifica $my_feature_branch y envía los cambios a tu bifurcación
Cree una [Solicitud de extracción] desde la rama $my_feature_branch de su bifurcación a la rama de desarrollo del proyecto principal; haga clic en comparar entre bifurcaciones aquí, seleccione la bifurcación y la rama requeridas para crear un PR
¡Esperando revisión, es necesario continuar mejorando o fusionarnos!
Al enviar código, cumpla con las siguientes reglas para mejorar la calidad del código:
flake8
en el directorio raíz del proyecto. MIT