vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 155
声望: 16

BaseGateway

BaseGateway是抽象出来的网关基类,有两大类函数构成:

  • on_xxx类型:回调内容包括事件、tick数据、成交数据、订单数据、持仓数据、账户数据、日志数据、合约数据,用于向上层推送已经按照vnpy内部标准封装好的数据对象
  • 抽象函数:必须继承实现
    • connect(self,setting:dict):连接接口,如果已经连接,则日志输出,成功连接后进行必要的查询操作
    • close(self):
    • subscribe(self,req:SubscribeRequest):订阅时必须传入vnpy标准订阅请求类参数
    • send_order(self,req:OrderRequest):发单必须传入vnpy标准报单请求类参数,对于报单,有额外的要求
      • 利用OrderRequest生成OrderData,即从报单请求生成报单数据
      • 给OrderData赋值一个与接口类有关的unique_id
      • 如果order已经发出,则更改报单状态为“已提交”,如果发送失败,则应该为“拒单”
      • 利用on_order回调,send_order应返回OrderData.vt_orderid.
         
    • cancel_order(self,reqs:Sequence[CancelRequest]):撤销一系列订单
    • query_account(self):查询账户信息
    • query_position(self):查询持仓信息
    • query_history(self):查询历史信息?
    • get_default_setting(self):返回默认配置。

 

整体逻辑

首先定义一个接口网关,将基类中的抽象方法实现一遍,不过这个接口网关实质是一个上层入口,实际功能包括连接等,需要由缓存着的真正的交易接口句柄实现。

  • 初始化,缓存的对象包括,事件引擎、接口名称、外部交易接口
  • connect(self,setting:dict):将setting中的信息读取,调用底层接口进行connect并初始化查询(持仓、账户信息、
  • subscribe(self,req:SubscribeRequest):利用行情接口订阅行情。
  • send_order(self,req:OrderReuquest)和cancel_order(self,CancelRequest):利用交易接口撤单
  • query_account(self),query_position(self)
  • close(self):关闭底层接口
  • init_query(self):利用事件引擎定时轮询
     
Member
加入于:
帖子: 22
声望: 0

学习

Member
avatar
加入于:
帖子: 1
声望: 0

请问大佬,setting中的信息是如何自动读取的,我指导配置信息在.vntrader文件夹里。

Member
avatar
加入于:
帖子: 155
声望: 16

娃娃仪 wrote:

请问大佬,setting中的信息是如何自动读取的,我指导配置信息在.vntrader文件夹里。

在md和td的api发起connect操作时,有一个从本地读取json文件的操作

© 2015-2019 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号-3