发布于veighna社区公众号【vnpy-community】
原文作者:用Python的交易员 | 发布时间:2022-05-16
上周五发布了VeighNa的3.1.0版本,本次更新的主要内容是升级了若干依赖库到对应的Python 3.10新版本,解决之前版本中出现的warning提示等问题。
对于已经安装了VeighNa Studio 3.0.0的用户,可以使用快速更新功能完成自动升级。对于没有安装的用户,请下载VeighNa Studio-3.1.0,体验一键安装的量化交易Python发行版,下载链接:
https://download.vnpy.com/veighna_studio-3.1.0.exe
自动更新功能
考虑到许多用户可能是第一次使用VeighNa Station重构后的自动更新功能,这里做个简单的演示说明。
启动VeighNa Station后,可以通过标题栏上的版本号确认当前的Station版本:
在左侧导航栏找到【更新】标签切换页面,此时可以先点击页面左下角的【检查】按钮,查看当前本地VeighNa Studio内已安装的三方库版本:
点击右下角的【更新】按钮后,会自动连接服务器获取目前VeighNa相关模块已发布的新版本号,并使用子进程对逐个模块执行更新升级,更新过程中的日志信息会输出在右侧的监控区域:
更新完成后会自动弹出对话框提示重启,此时需要手动关闭VeighNa Station来完成重启操作。
如果发现有部分模块更新失败或者出错的情况,可以尝试再次点击【更新】按钮执行任务。对于持续失败的情况,建议选中复制右侧日志区域里的相关日志信息后,在社区论坛的【安装指南】板块咨询求助。
依赖库升级
tzlocal升级到4.2
不少同学在论坛反馈了上个版本中遇到的这个get_localzone().zone函数warning提示:
背后原因是在时区相关的定义和转换上,从Python 3.9版本开始新增了zoneinfo内置库用于替代之前社区维护的pytz三方库,两者之间的API设计有所区别。
本次更新中将tzlocal库升级到了4.2版本,同时将get_localzone().zone替换为新的get_localzone_name函数解决了上述问题。
pymongo升级到4.0
在之前版本的pymongo中,由于需要使用collection.replace_one函数来保证主键(vt_symbol、interval、datetime)约束下的数据更新,只能采用逐条数据写入的方式,导致vnpy_mongodb模块的K线和Tick数据的写入性能相当差。
感谢社区dyllanwli贡献的数据批量写入功能,基于pymongo新的4.0版本中引入的bulk_write函数,写入时间和读取速度相对之前有了显著提升。
CHANGELOG
新增
- 新增恒生云UF2.0证券仿真环境交易接口vnpy_uf(仅限Python 3.7)
- 新增火象投教仿真环境交易接口vnpy_hx
调整
- 升级tzlocal库的版本到4.2,消除get_localzone()函数的warning
- 完善代码中函数和变量类型提示
- 使用QtCore.Signal代替老的QtCore.pyqtSignal
- 优化vnpy_rohon接口的委托成交相关细节功能
- 更新vnpy_xtp到2.2.32.2.0版本XTP API,支持上交所新债系统
- 优化vnpy_mongodb的数据写入速度,基于pymongo 4.0版本的批量写入功能
- 增加vnpy_ctp对于委托函数返回值为非0(请求发送失败)状态的处理
- 对vnpy_ctastrategy和vnpy_ctabacktester的策略模板下拉框中内容,改为基于首字母排序
修复
- 修复vnpy_optionmaster模块希腊值监控组件的数据刷新问题
- 修复vnpy_mongodb由于时间戳的时区信息缺失,导致的数据加载范围问题
- 修复vnpy_tts的sdist源代码打包缺失lib文件的问题
- 修复vnpy_rqdata由于查询返回数据为NaN导致的解析问题