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版本:
在左侧导航栏找到【更新】标签切换页面,此时可以先点击页面左下角的【检查】按钮,查看当前本地VeighNa Studio内已安装的三方库版本:
点击右下角的【更新】按钮后,会自动连接服务器获取目前VeighNa相关模块已发布的新版本号,并使用子进程对逐个模块执行更新升级,更新过程中的日志信息会输出在右侧的监控区域:
更新完成后会自动弹出对话框提示重启,此时需要手动关闭VeighNa Station来完成重启操作。
如果发现有部分模块更新失败或者出错的情况,可以尝试再次点击【更新】按钮执行任务。对于持续失败的情况,建议选中复制右侧日志区域里的相关日志信息后,在社区论坛的【安装指南】板块咨询求助。
不少同学在论坛反馈了上个版本中遇到的这个get_localzone().zone函数warning提示:
背后原因是在时区相关的定义和转换上,从Python 3.9版本开始新增了zoneinfo内置库用于替代之前社区维护的pytz三方库,两者之间的API设计有所区别。
本次更新中将tzlocal库升级到了4.2版本,同时将get_localzone().zone替换为新的get_localzone_name函数解决了上述问题。
在之前版本的pymongo中,由于需要使用collection.replace_one函数来保证主键(vt_symbol、interval、datetime)约束下的数据更新,只能采用逐条数据写入的方式,导致vnpy_mongodb模块的K线和Tick数据的写入性能相当差。
感谢社区dyllanwli贡献的数据批量写入功能,基于pymongo新的4.0版本中引入的bulk_write函数,写入时间和读取速度相对之前有了显著提升。
在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文件
基于需求自己调用相关代码即可