VnPy解读1:核心架构与事件驱动机制
VnPy作为开源的量化交易框架,采用Python语言构建,其核心架构围绕事件驱动模型展开。事件驱动机制通过解耦组件间的依赖关系,实现高效异步通信。主引擎MainEngine负责协调各个功能模块,包括行情接口MdApi、交易接口TdApi、策略模块CtaStrategy等。
from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow
# 初始化事件引擎和主引擎
event_engine = EventEngine()
main_engine = MainEngine(event_engine)
# 添加默认组件
main_engine.add_extension()
main_engine.add_app()
# 启动GUI界面
main_window = MainWindow(main_engine)
main_window.show()
VnPy解读2:Gateway与协议适配层
Gateway是连接交易所API的核心组件,承担协议转换和消息编码工作。每个Gateway需实现BaseGateway抽象类,重写connect、subscribe等方法。以CTP接口为例,其C++原生API通过SWIG生成Python绑定,再封装为符合vnpy规范的Gateway。
from vnpy.api.ctp import MdApi, TdApi
from vnpy.trader.gateway import BaseGateway
class CtpGateway(BaseGateway):
def __init__(self, event_engine):
super().__init__(event_engine, "CTP")
self.md_api = CtpMdApi(self)
self.td_api = CtpTdApi(self)
def connect(self, setting: dict):
1171

被折叠的 条评论
为什么被折叠?



