vnpy学习(1):初览结构

参考:
https://zhuanlan.zhihu.com/p/102154074(知乎-vnpy源码阅读学习(1):准备工作)
https://www.cnblogs.com/xiaoxuebiye/p/9876106.html(VNPY 架构设计文档)

vnpy的实现思路应该是创建了一个主引擎,然后把gateway + app + 事件引擎都集中在了主引擎上面。然后通过窗体事件引擎发生交互进行数据处理。
我们的源码阅读基本可以分成两条线路去学习:

  • pyqt创建和生成窗体
  • vnpy的引擎机制
"""
vn_trader/run.py
创建pyqt的界面 -> 创建事件引擎 -> 创建主引擎 -> 
配置各种网关引擎 -> 配置配置项 -> 创建主窗体 -> 启动
"""

from vnpy.event import EventEngine
from vnpy.trader.engine import MainEngine
from vnpy.trader.ui import MainWindow, create_qapp
from vnpy.gateway.femas import FemasGateway
from vnpy.gateway.deribit import DeribitGateway
from vnpy.app.option_master import OptionMasterApp


def main():
    #创建pyqt界面
    qapp = create_qapp()
    #事件引擎
    event_engine = EventEngine()
    #主引擎
    main_engine = MainEngine(event_engine)
    #增加网关引擎 从名字上看应该是飞马数据
    main_engine.add_gateway(FemasGateway)
    main_engine.add_gateway(DeribitGateway)
    #这个看着像给主引擎配置选型
    main_engine.add_app(OptionMasterApp)
    #启动主窗口,并且配置事件引擎和主引擎
    main_window = MainWindow(main_engine, event_engine)
    main_window.showMaximized()
    
    qapp.exec()
    
if __name__ == "__main__":
    #入口的启动
    main()

《VNPY 架构设计文档》
版本1.x
在这里插入图片描述
五.系统结构设计(软件结构设计思路):
VNPY 设计思路是数据驱动引擎牵引应用挂靠
从业务出发,所有的交易都是基与行情的反应,有了行情才有信号,才有委托,才有持仓和风控;
从技术角度看,数据来源于API(CTP,LTS,火币)等,可以说数据驱动了一切。
VNPY的引擎包括:主引擎,事件引擎,数据引擎和应用引擎。
引擎的作用有点类似电脑的主板,所有的东西都往上插。如果需要资源,就向引擎要。VNPY主引擎驱动Gateway(延伸到各行情交易CTP),使用了消息引擎(EventEngine)把所有Gateway发过来的数据分发到各个内部的外部的引用。内部的应用包括数据引擎,主界面等,外部应用包括风控管理,CTA策略,算法交易等各应用。
在应用里面,VNPY又设计了应用引擎来带动各策略组,给策略组提供服务。 同时VNPY主引擎提供了,订阅,委托,撤单,数据库操作等接口给各个内部的,外部的APP。
数据服务作为多个独立应用程序,来实现数据的下载,整理,保存。 供策略回测使用。从性能的角度来说Python性能会极大的牵制了回测部分的功能。

在这里插入图片描述在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值