ricequant / rqalpha-mod-vnpy

RQAlpha 对接 vnpy 的扩展 Mod。通过启用该 Mod 来实现期货策略的实盘交易
Apache License 2.0
298 stars 59 forks source link

vnpy在onRtnDepthMarketData的问题 #10

Closed handsomu closed 7 years ago

handsomu commented 7 years ago

vnpy封装的 onRtnDepthMarketData函数会对volume=0的数据进行过滤。 导致在非交易时段调用subscribe函数没有当前最新快照数据返回,无法计算出portfolio.total_value(举例来说,有股指期货仓位的策略在夜盘时间打印portfolio信息,直接报错退出)。 需要进行改写,或者加入QryDepthMarketData函数。

Cuizi7 commented 7 years ago

develop 分支代码已修复。

Cuizi7 commented 7 years ago

现在已经重写了 vnpy 相当多的函数,我们是否可以考虑一下直接从更底层引用vnpy?直接调用 vnpy 封装好的底层 python 版 CTP 接口。

这样做的好处

  1. 可以减少数据转换的层级,便于我们对数据的控制,减少bug。
  2. 另外也可以减少对 vnpy 上层代码的依赖,避免由于 vnpy 升级导致出现的不兼容情况。
  3. 更容易上 python 3 弊端:
  4. 跟大的工作量
  5. 再接入其他交易接口的时候也要做很多类似的重写工作,做不到我们当初设想的 “一键接入”(不过现在重写了很多函数以后也已经做不到一键接入了。)

@handsomu @wh1100717 @cedricporter

wh1100717 commented 7 years ago

原本使用vnpyGateway的目的是希望的直接集成其他的交易接口,不需要每一个交易接口都实现一遍,如果本身vnpyGateway要实现对接就需要重写很多函数的话,那实际上相当于我们做了一个rqalphaGateway。

我觉得可以基于现有的代码,重构、整合,然后脱离vnpyGateway,或者对其进行扩展,然后不再依赖vnpyGateway

Cuizi7 commented 7 years ago

master 分支已更新。