终于迎来了Python 2上的最终版本v1.9.2 LTS,该版本将是第一个长期支持版本,vn.py在Python 2上将不再有功能方面的更新。

但会提供一年的BUG修复和社区支持,大概到Python社区停止对Python 2的维护为止,毕竟Python 3才是未来。

交易复制TradeCopy

v1.9.2新增了TradeCopy交易复制模块,该功能主要针对一些需要管理较多个交易账户的用户设计,使用方式上相当傻瓜:

  1. 首先需要复制多个examples/VnTrader目录,其中一个作为发布者(即负责产生交易信号的账户),其他作为订阅者(即负责跟踪交易信号的账户)
  2. 在VN Trader的启动脚本run.py中加载TradeCopy模块,启动后打开功能->交易复制,看到管理界面
  3. 对于运行发布者账户的VN Trader,用户只需在界面上点击“启动发布者”按钮即可,响应和发布地址可以根据需求调整端口(一般用不着),发布间隔指的是每隔多久同步一次整体仓位信息,对于CTP来说默认的1秒就行,对于其他性能较低的接口(比如某些数字货币)需要更长的间隔
  4. 对于运行订阅者账户的VN Trader,需要保证请求和订阅地址的端口和发布者账户一致(否则收不到信号),同时选择需要复制的比例倍数,比如2代表着当发布者账户做多1手螺纹时,订阅者也会做多2手(默认比例为1),然后点击“启动订阅者”
  5. 在发布者VN Trader中执行手动或者策略交易,当有成交时或者每隔一段时间(发布间隔),TradeCopy模块会自动推送发布者账户当前最新的持仓情况
  6. 订阅者VN Trader收到最新的目标仓位信息后,将会自动执行同步交易,保证实际仓位和发布者所给出目标仓位的一致
  7. 注意需要保证订阅者账户的资金充足,以及持仓信息正确,否则当有拒单出现时TradeCopy模块将会自动停止工作(SimNow上的商品今昨仓问题尤其容易触发拒单)

TradeCopy模块的默认使用场景是同一电脑上的多账户运行管理,但由于底层通讯功能基于vnpy.rpc组件实现,用户可以很方便的将整个部署扩展到局域网或者因特网上,只需修改通讯地址部分的部分代码即可。

需要注意的是,TradeCopy模块的交易复制实现,是基于发布者账户的仓位变化情况,即需要收到实际成交后才会去触发,因此并不适合于需要细粒度挂撤单的交易类型,比如窄范围挂单报价的价差交易、使用BestLimit算法的CTA策略等等。

其他更新内容

底层接口

  • 升级火币接口,采用Websocket推送来维护委托、成交和资金数据,大幅提高性能降低被火币流控的几率
  • 修复OKEXF期货接口的5挡行情显示顺序问题
  • 更新富途交易接口为futu-api

数据服务

  • 新增图形化的RQData数据下载器(盘中自动实时更新落地到本地数据库)
  • 新增RQData的期货Tick数据下载功能
  • 新增CccDataService的日线数据下载功能
  • 移除天勤和通联数据接口(对方已不再维护)