报错截图看一下,可能是某个包没有安装成功,需要手动安装缺少的包
官网下载的安装包是.exe格式的吗?
UDP和组播的参数在vnpy的底层接口函数createFtdcMdApi中并没有被暴露出来,这个需要重新封装CTP接口中的createFtdcMdApi函数,然后将 bIsUsingUdp和bIsMulticast参数填写为True
我已经实现了回测换月、实盘no_ui模式自动换月,欢迎交流:微信849322520
回测中换月:
需要在数据库中存储各个月份合约的数据,还有换月的信息,以便代码判断
更改BacktestingEngine的run_backtesting函数,每个交易日开始或结束时判断一下是否换月,若换月则更改策略合约并且重新初始化
实盘中换月:
1、移植策略持仓、策略名称、策略设置信息strategy_setting、策略变量信息strategy_data;2、变更合约策略映射self.symbol_strategy_map,当tick行情推送的时候,通过这个映射来将合约tick行情推送给指定的策略实例;3、删除strategy_orderid_map和orderid_strategy_map中旧合约的挂单,这些用于保存策略的挂单信息;4、订阅新合约;5、策略初始化和启动策略
目前比较方便的做法是,将.vntrader文件和相关策略文件复制多份,每个账户启动一个程序进行运行,互不干扰。
还有一种方法是更改CTP底层文件,实现一个程序多个账户同时登录交易
亚林 wrote:
这是这个持仓数量一直在变动..这个持仓信息为什么不准确呀
tts通道?
机器人 wrote:
我把vn安装后,可以打开,但找不到如何入门的资料。现有的手册只是针对菜单简单地介绍。哪里有系统的入门材料?现在《量化交易基础入门》也点不开,只是指到这个论坛。感觉社区不太活跃。有哪位前辈能指指路。如果没有,我们能不能一起建一个这样的指南。
你要是有编程基础的话,在vnpy操作上我可以给你指指路
arrayManager中的指标是基于TA-LIB库计算的,TA-LIB库中文文档链接:https://www.bookstack.cn/read/talib-zh/README.md
solmyr wrote:
意思是把5M的策略写在1M的on_1min_bar中?
直接将5M数据作为1M数据进行回测,策略中不需要做任何更改,因为数据中的bar的分钟时间符合5分钟切分,所以即使BarGenerator会进行合成,也不会对数据进行更改。
都是基于TALIB库计算的,TALIB文档链接:https://www.bookstack.cn/read/talib-zh/README.md
woodlandnight wrote:
请问如何给参数优化加进度条呢。。优化的时候经常会卡死,然后也不知道是在什么时候卡死的,为什么卡死的
可以先使用较少的数据量和参数优化测试看看。电脑配置怎么样,优化的时候,使用的是电脑所有的核心来并行处理的
Bamboo wrote:
问题是我用am.rsi(6)和am_1.rsi(6,array=True)[-1]得到的结果不一样
贴一下,am和am_1的创建代码,以及运行所处位置的代码
1、在策略实例中委托发送OCO一对订单时,保存相关订单号信息;2、在策略实例中,编写取消订单函数cancel_order,这个订单取消函数内部会调用回测引擎中的cancel_order订单取消函数;3、在策略实例的on_stop_order函数中对StopOrder推送对象进行判断,若触发了OCO订单对中其中一个订单,那么调用策略实例中的订单取消函数;4、回测引擎中的订单取消函数,会将self.active_stop_orders中OCO订单号取消掉,这样可以在同一根bar中实时取消OCO订单组中另一个订单。
知了 wrote:
卸载其他版本后,安装3.0版本,添加了sklearn库,调用matplotlib库后出现问题,安装pyside2后仍然有问题,在vscode内运行测试程序
其实不需要安装pyside2,也不需要安装pyqt5,安装sklearn后直接就可以用的,官网的veighna是支持的
woodlandnight wrote:
C:\veighna_studio\lib\site-packages\vnpy\trader\setting.py:32: PytzUsageWarning: The zone attribute is specific to pytz's interface; please migrate to a new time zone provider. For more details on how to do so, see https://pytz-deprecation-shim.readthedocs.io/en/latest/migration.html
"database.timezone": get_localzone().zone,
启动时提示这个,请问该如何解决
使用zoneinfo包替代即可
使用包zoneinfo来替换即可
我的微信849322520,欢迎交流
使用脚本策略,平今,不过,平今函数需要自己在脚本引擎中重新编写一下
我的微信849322520,欢迎交流
1、新版veighNa 3.0在关闭子进程时,会关闭主引擎(调用main_engine.close());
2、而在main_engine.close()中会将主引擎中的所有引擎self.engines关闭,即调用每个引擎的close函数来关闭;
3、cta_engine也是self.engines中的一员,所以也会调用cta_engine.close来关闭
4、cta_engine.close调用时,会将所有的策略实例的变量通过self.sync_strategy_data来保存到本地文件"cta_strategy_data.json"
我的微信849322520,欢迎交流
在CtaEngine引擎中注册一个处理EVENT_TIMER的事件,然后注册函数中对收盘时间时间判断,超过收盘多少秒,就可以使用策略中的强制合成K线函数
微信849322520,欢迎微信交流
OmsEngine初始化时,MainEngine主引擎和EventEngine作为参数传入进来了,在init中调用了self.add_function(),在add_function中将OmsEngine中的函数复制给了主引擎。
整体流程是:1、交易接口中返回的行情Tick、订单回报、合约查询等信息,会通过事件驱动引擎EventEngine保存到队列中;2、事件引擎会固定频率处理队列中的事件,这些事件的处理函数是事先已经注册好了的,所以在处理的时候,只需要调用注册函数去处理对应的事件即可;3、注册函数处理时,会将相应的信息保存到OmsEngine的字典中;4、主引擎通过OmsEngine复制的函数来获取字典中保存的信息。
我的微信是849322520,欢迎微信交流
这个没有办法断点调试