发布于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的同学,可能有不少都见过了下面这个报错:
这个安装报错自从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等);
其他针对性的功能(如具体的交易接口、数据库适配器、策略应用等)则作为扩展插件库,用户可以根据自己的需求选择安装,如:
交易接口插件
策略应用插件
- vnpy_ctastrategy:CTA策略应用
- vnpy_spreadtrading:价差交易应用
数据库适配器插件
- vnpy_sqlite:SQLite数据库适配器
- vnpy_dolphindb:DolphinDB数据库适配器
以上所有的【库】(对应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。
其他更新
策略应用模块剥离
- PortfolioStrategy,投资组合策略模块,剥离到vnpy_portfoliostrategy项目中;
- PaperAccount,本地仿真交易模块,剥离到vnpy_paperaccount项目中;
- ExcelRtd,Excel RTD实时数据服务模块,剥离到vnpy_excelrtd项目中。
交易接口模块剥离
- 飞马期货交易接口,剥离到vnpy_femas项目中;
- 金仕达黄金交易接口,剥离到vnpy_ksgold项目中。
CHANGELOG
新增
新增东证OST柜台交易接口vnpy_ost
增加投资组合策略模块的策略参数优化功能
修复
修复部分C++接口模块剥离后,遗留的安装脚本编译代码导致的报错问题
修复vnpy_xtp订阅深交所行情后,可能出现的闪退问题
修复vnpy_tushare部分数据字段为None时,导致的数据错误
修复vnpy_mini在夜盘换日时上期所行情时间戳的日期字段误差问题
修复vnpy_uft的ETF期权合约信息解析缺失的问题
修复vnpy_wind下载数据存在缺失时的N/A解析问题
修复vnpy_webtrader的html静态文件缺失的问题
修复vnpy_dolphindb存储Tick数据时的数据类型问题
修复vnpy_dolphindb读取数据为空时的报错BUG
修复vnpy_esunny查询黄金TD合约的合约乘数为0的问题
修复vnpy_ctastrategy策略初始化读取布尔值false失败的问题
修复vnpy_rohon的期权合约字段赋值错误的问题
修复vnpy_leveldb的Linux安装依赖库问题
调整
移除老版本基于requests库的RestClient客户端
移除老版本基于websocket-client库的WebsocketClient客户端
vnpy_tts增加对上交所和深交所股票模拟交易的支持
移除vnpy_ctp的期权询价指令
增加vnpy_ctp的授权码验证失败后,避免重复操作的功能
优化vnpy_uft的断线重连行情订阅逻辑
增加vnpy_arctic对于用户名和密码的鉴权功能
增加vnpy_mini对于股指期权的支持
剥离
将华鑫奇点交易接口剥离到vnpy_tora项目中,并升级到4.0版本
将飞马交易接口剥离到vnpy_femas项目中
将金仕达黄金接口剥离到vnpy_ksgold项目中
将投资组合策略模块剥离到vnpy_portfoliostrategy项目中
将Excel RTD模块剥离到vnpy_excelrtd项目中
将本地仿真模拟交易模块剥离到vnpy_paperaccount项目中