vnpy源码学习记录(3) ----------CTP网关

本文详细介绍了vnpy中的CTP网关,包括如何实例化CTP网关、连接交易和行情服务器、轮询机制以及数据处理。 vnpy提供了全面的交易接口支持,CTP网关实现了交易和行情的连接,通过CtpTdApi和CtpMdApi进行API封装。在连接过程中,涉及服务器连接、授权验证、登录等步骤,并通过回调函数处理各种响应。此外,还阐述了轮询机制用于定时查询账户和持仓信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


介绍CTP网关之前先看看网关类的抽象类:BaseGateway
BaseGateway用于创建与不同交易系统的网关连接的抽象网关类。该类必须是线程安全的(所有方法必须线程安全,对象之间没有可变的共享属性);所有方法都需要是非阻塞的;每个方法和回调方法都需满足在docstring中描述的需求;如果连接断开会自动重新连接。
所有的方法必须要实现所有的@abstractmethod
回调函数必须手动响应
on_tick on_trade on_order on_position on_account on_contract
所有传给回调函数的XxxData类必须是常量,也就是说传给on_xxx函数的对象就不该被修改了。如果使用缓存来保存数据的引用,在传递数据到on_xx方法前使用copy.copy来创建一个新对象。
default_setting和exchanges属性保存连接网关的信息和网关支持的交易所
__init__()中初始化事件引擎和网关名

self.event_engine = event_engine
self.gateway_name = gateway_name

vnpy覆盖了国内外所有交易品种的交易接口(vnpy.gateway目录下)。这里暂时只介绍CTP和RPC两种网关

CTP网关

CtpGateway vnpy/gateway/ctp/ctp_gateway.py

1. 实例化CTP网关

main_engine.add_gateway(CtpGateway)  # 将ctp添加到主引擎中
   def add_gateway(self, gateway_class: BaseGateway):
        gateway = gateway_class(self.event_engine)  # 实例化  
        self.gateways[gateway.gateway_name] = gateway 添加进网关字典

        #将网关支持的交易所添加到引擎          
        for exchange in gateway.exc
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值