graph LR
Event_Driven_Core["Event-Driven Core"]
Trading_Orchestration["Trading Orchestration"]
External_Connectivity["External Connectivity"]
Data_Model["Data Model"]
Strategy_Simulation["Strategy & Simulation"]
User_Interface["User Interface"]
Event_Driven_Core -- "dispatches events to" --> Trading_Orchestration
Event_Driven_Core -- "dispatches events to" --> External_Connectivity
Event_Driven_Core -- "dispatches events to" --> Strategy_Simulation
Event_Driven_Core -- "dispatches events to" --> User_Interface
Trading_Orchestration -- "dispatches internal events to" --> Event_Driven_Core
External_Connectivity -- "sends data/events to" --> Event_Driven_Core
Strategy_Simulation -- "generates simulated data/events for" --> Event_Driven_Core
Trading_Orchestration -- "manages" --> External_Connectivity
Strategy_Simulation -- "sends order requests to" --> Trading_Orchestration
Trading_Orchestration -- "sends orders to" --> External_Connectivity
External_Connectivity -- "creates/uses" --> Data_Model
Event_Driven_Core -- "uses" --> Data_Model
Trading_Orchestration -- "uses" --> Data_Model
External_Connectivity -- "uses" --> Data_Model
Strategy_Simulation -- "uses" --> Data_Model
User_Interface -- "uses" --> Data_Model
External_Connectivity -- "creates" --> Data_Model
Strategy_Simulation -- "creates" --> Data_Model
Event_Driven_Core -- "sends market data to" --> Strategy_Simulation
Trading_Orchestration -- "sends events/data to" --> User_Interface
User_Interface -- "displays" --> Data_Model
click Event_Driven_Core href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//vnpy/Event_Driven_Core.md" "Details"
click Trading_Orchestration href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//vnpy/Trading_Orchestration.md" "Details"
click External_Connectivity href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//vnpy/External_Connectivity.md" "Details"
click Strategy_Simulation href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//vnpy/Strategy_Simulation.md" "Details"
click User_Interface href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main//vnpy/User_Interface.md" "Details"
The vnpy architecture is built around an event-driven paradigm, ensuring high responsiveness and loose coupling between its various components. The analysis identifies six fundamental components that form the core of the system's functionality, from market interaction to strategy execution and user visualization.
The foundational event-driven architecture, managing event queues and dispatching events to registered handlers. It enables loose coupling and real-time communication across all system components, acting as the central nervous system.
Related Classes/Methods:
The central management component responsible for initializing and overseeing sub-engines, managing trading gateways, handling order flow, and providing a unified interface for system operations. It acts as the brain of the live trading system.
Related Classes/Methods:
Provides the standardized interface for connecting to various trading venues (brokers/exchanges). It handles real-time market data reception, order execution, and account/position queries, dispatching all updates as events. This component is the system's eyes and hands in the market.
Related Classes/Methods:
Defines the standardized data structures (e.g., TickData, OrderData, TradeData) used for consistent data representation and exchange throughout the entire vnpy framework. It is the common language understood by all components.
Related Classes/Methods:
Encompasses the core trading logic (strategies) and the backtesting environment for simulating strategy execution with historical data. It consumes market data, generates trading signals, and sends order requests, representing the intelligence and development ground of the system.
Related Classes/Methods:
Provides the graphical user interface for interacting with the vnpy system, displaying real-time market data, order/trade information, account details, and interactive charts. It offers essential visibility and control for the user.
Related Classes/Methods: