发布于vn.py社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2021-12-13
 
上周发布了vn.py的2.8.0版本,本次更新的内容主要是对证券相关的API接口进行了更新和升级,包括:华鑫证券奇点极速柜台接口升级4.0版本、新增东方证券OST极速柜台接口,满足合格机构投资者使用vn.py进行证券程序化交易的需求。

和之前一样,对于使用VN Studio的用户,启动VN Station后,直接点击界面右下角的【更新】按钮就能完成自动更新升级,对于没有安装的用户,请下载VN Studio-2.8.1,体验一键安装的量化交易Python发行版,下载链接:

https://download.vnpy.com/vnstudio-2.8.1.exe

 

模块剥离的说明

 

现有问题

首先要跟大家说一声抱歉,最近一周尝试安装VN Studio-2.8.0的同学,可能有不少都见过了下面这个报错:

description

这个安装报错自从VN Studio发布以来就陆续有出现,在最近几个月的版本中出现频率显著变高。背后的核心原因是随着vn.py提供的各种交易接口(gateway)、数据服务(datafeed)、数据库适配器(database)等功能的增多,底层依赖模块之间的版本冲突和安装问题就越发容易出现。

比如这次VN Studio-2.8.0的报错,经过排查后最终定位到了arctic这个库上,其最近更新的新版本中:

  • 一方面由于需要用到Panel这个数据结构,将pandas依赖锁定在了1.0.3以下的版本(pandas最新版本已经是1.3.5);
  • 另一方面用于高性能数据压缩的lz4依赖库,在安装时需要使用Visual Studio从源代码进行编译(大部分人没有安装)。

解决方案

定位到上述问题后,我们重新打包了VN Studio-2.8.1,移除了之前版本中的vnpy_arctic模块,目前内部测试下来安装上已经没有问题。

需要用到Arctic数据库的用户,可以通过下述命令进行安装:

# 升级pip到最新版本python -m pip install pip
# 安装vnpy_arcticpip install vnpy_arctic

以上方案算是快速治标解决了2.8.0的问题,但是要从根本上解决还是得回到从2.3.0以来启动的【模块剥离计划】,以下黑体加粗链接可以点击后查看gitee上的具体项目仓库:

  • vn.py本身作为框架核心库,只保留量化交易系统最通用的组件(事件引擎、数据结构、抽象接口、标准UI等);

  • 其他针对性的功能(如具体的交易接口、数据库适配器、策略应用等)则作为扩展插件库,用户可以根据自己的需求选择安装,如:

以上所有的【库】(对应Python中的Package概念,比如NumPy、pandas),在剥离后都会对其依赖进行严格的版本控制管理,从而解决掉由于vn.py功能变得丰富后产生的各种安装和维护问题。

其他影响

目前最新版本的vn.py中,已经完成了大约90%的模块剥离工作,剩下部分也会在3.0发布前全部完成。

未来3.0版本发布后(预计2022年一季度),将会恢复支持基于pip的安装方案,对于有扩展开发需求的vn.py用户来说,系统的持续迭代和维护将会变得更加容易。

 

证券接口的更新

 

截止目前,vn.py开源项目中所支持的全部证券相关API交易接口,都需要用户联系券商完成相关的三方系统采购后,才能在实盘交易中使用。基本要求如下:

  • 客户身份

    • 个人客户,需要获得专业投资者资格认定,部分券商要求为:

      • 资金门槛:300万;
      • 投资经历:一年以上股票交易经验;
    • 机构客户,持有私募基金牌照,或者其他机构投资者牌照;

  • 技术系统

    • 实盘交易中,交易系统需要运行于券商托管机房内的服务器上(不支持互联网方式接入);
    • 交易系统需要通过券商的安全和合规测试,并完成三方系统采购流程。

以上情况仅供参考,具体要求各家券商有所区别,有需求可以联系券商客服人员咨询详细情况。

华鑫证券奇点接口(vnpy_tora)

华鑫证券的奇点柜台最近发布了4.0的大版本升级,具体功能介绍可以查看其官网:N视界量化投资

最新版本vn.py中对奇点接口的支持包括:

  • 股票交易ToraStockGateway

    • 4.0.2版本的交易API
    • 1.0.0版本的Level 1行情API
    • 4.0.0版本的Level 2行情API
  • 期权交易ToraOptionGateway

    • 1.2.6版本的交易和行情API

东方证券OST接口(vnpy_ost)

OST是由东方证券推出的极速交易柜台,最新版本vn.py中提供了对接OST股票交易的OstGateway,在行情上对接了OST基于UDP的Level 2行情API。

 

其他更新

 

策略应用模块剥离

  1. PortfolioStrategy,投资组合策略模块,剥离到vnpy_portfoliostrategy项目中;
  2. PaperAccount,本地仿真交易模块,剥离到vnpy_paperaccount项目中;
  3. ExcelRtd,Excel RTD实时数据服务模块,剥离到vnpy_excelrtd项目中。

交易接口模块剥离

  1. 飞马期货交易接口,剥离到vnpy_femas项目中;
  2. 金仕达黄金交易接口,剥离到vnpy_ksgold项目中。

 

CHANGELOG

 

新增

  1. 新增东证OST柜台交易接口vnpy_ost

  2. 增加投资组合策略模块的策略参数优化功能

修复

  1. 修复部分C++接口模块剥离后,遗留的安装脚本编译代码导致的报错问题

  2. 修复vnpy_xtp订阅深交所行情后,可能出现的闪退问题

  3. 修复vnpy_tushare部分数据字段为None时,导致的数据错误

  4. 修复vnpy_mini在夜盘换日时上期所行情时间戳的日期字段误差问题

  5. 修复vnpy_uft的ETF期权合约信息解析缺失的问题

  6. 修复vnpy_wind下载数据存在缺失时的N/A解析问题

  7. 修复vnpy_webtrader的html静态文件缺失的问题

  8. 修复vnpy_dolphindb存储Tick数据时的数据类型问题

  9. 修复vnpy_dolphindb读取数据为空时的报错BUG

  10. 修复vnpy_esunny查询黄金TD合约的合约乘数为0的问题

  11. 修复vnpy_ctastrategy策略初始化读取布尔值false失败的问题

  12. 修复vnpy_rohon的期权合约字段赋值错误的问题

  13. 修复vnpy_leveldb的Linux安装依赖库问题

调整

  1. 移除老版本基于requests库的RestClient客户端

  2. 移除老版本基于websocket-client库的WebsocketClient客户端

  3. vnpy_tts增加对上交所和深交所股票模拟交易的支持

  4. 移除vnpy_ctp的期权询价指令

  5. 增加vnpy_ctp的授权码验证失败后,避免重复操作的功能

  6. 优化vnpy_uft的断线重连行情订阅逻辑

  7. 增加vnpy_arctic对于用户名和密码的鉴权功能

  8. 增加vnpy_mini对于股指期权的支持

剥离

  1. 将华鑫奇点交易接口剥离到vnpy_tora项目中,并升级到4.0版本

  2. 将飞马交易接口剥离到vnpy_femas项目中

  3. 将金仕达黄金接口剥离到vnpy_ksgold项目中

  4. 将投资组合策略模块剥离到vnpy_portfoliostrategy项目中

  5. 将Excel RTD模块剥离到vnpy_excelrtd项目中

  6. 将本地仿真模拟交易模块剥离到vnpy_paperaccount项目中