VeighNa量化社区
你的开源社区量化交易平台
xiaohe's Avatar
Member
离线
4300 帖子
声望: 268

get_order是从接口收到的委托信息推送,停止单缓存在本地还没有发出

发布于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版本:

description

在左侧导航栏找到【更新】标签切换页面,此时可以先点击页面左下角的【检查】按钮,查看当前本地VeighNa Studio内已安装的三方库版本:

description

点击右下角的【更新】按钮后,会自动连接服务器获取目前VeighNa相关模块已发布的新版本号,并使用子进程对逐个模块执行更新升级,更新过程中的日志信息会输出在右侧的监控区域:

description

更新完成后会自动弹出对话框提示重启,此时需要手动关闭VeighNa Station来完成重启操作。

如果发现有部分模块更新失败或者出错的情况,可以尝试再次点击【更新】按钮执行任务。对于持续失败的情况,建议选中复制右侧日志区域里的相关日志信息后,在社区论坛的【安装指南】板块咨询求助。

 

依赖库升级

 

tzlocal升级到4.2

不少同学在论坛反馈了上个版本中遇到的这个get_localzone().zone函数warning提示:

description

背后原因是在时区相关的定义和转换上,从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

 

新增

  1. 新增恒生云UF2.0证券仿真环境交易接口vnpy_uf(仅限Python 3.7)
  2. 新增火象投教仿真环境交易接口vnpy_hx

调整

  1. 升级tzlocal库的版本到4.2,消除get_localzone()函数的warning
  2. 完善代码中函数和变量类型提示
  3. 使用QtCore.Signal代替老的QtCore.pyqtSignal
  4. 优化vnpy_rohon接口的委托成交相关细节功能
  5. 更新vnpy_xtp到2.2.32.2.0版本XTP API,支持上交所新债系统
  6. 优化vnpy_mongodb的数据写入速度,基于pymongo 4.0版本的批量写入功能
  7. 增加vnpy_ctp对于委托函数返回值为非0(请求发送失败)状态的处理
  8. 对vnpy_ctastrategy和vnpy_ctabacktester的策略模板下拉框中内容,改为基于首字母排序

修复

  1. 修复vnpy_optionmaster模块希腊值监控组件的数据刷新问题
  2. 修复vnpy_mongodb由于时间戳的时区信息缺失,导致的数据加载范围问题
  3. 修复vnpy_tts的sdist源代码打包缺失lib文件的问题
  4. 修复vnpy_rqdata由于查询返回数据为NaN导致的解析问题
     

在on_stop_order里移除了

json文件只记录策略持仓,所以手动下单需要手动修改。
如果不想读取json文件里的数据,可以手动删除对应json或者自行修改engine.py

合约查询找不到说明接口不支持了

可以自己打印排查看看

使用CTA策略模块即可

你on_bar已经收到1分钟的bar了,可以直接用了,不需要update_bar了。
多周期策略请参考vnpy_ctastrategy.strategies里的示例策略multi_timeframe_strategy。

这个没有做保存CSV了,可以自己通过脚本获取输出了

main_engine.get_all_contracts()

回测的话是你选择时段的最后一根为止(如果数据库里有的话),实盘是到你请求的时间为止做为end(如果数据库里有的话)

turnover的报错是因为2.5.0以后数据库更新了turnover字段,但是你的sqlite没有更新字段,删除用户名目录下的.vntrader目录下的database.db再运行即可,删除前可以做好数据库的备份。

是因为你没有安装talib的c包,就直接安装的python包导致的

一开始注册的时候设置的

之前停止策略的时候会把变量缓存到json文件,再次初始化时会读取之前的json文件

基于需求自己调用相关代码即可

© 2015-2022 微信 18391752892
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】