VeighNa量化社区
你的开源社区量化交易平台
Member
avatar
加入于:
帖子: 60
声望: 1

vnpy需要24小时开着吗?

一个策略,如果停止它、重新编辑变量、对它进行移仓操作、或者关闭vnpy,在这种种情况下, 那这个策略里头的BarGenerator里的数据,以及策略内部的局部变量(variables),还在吗?

Member
avatar
加入于:
帖子: 716
声望: 55

vnpy可以24小时开,但是策略需要再开盘前开启收盘后关闭,因为非交易时间会有垃圾数据扰乱交易逻辑。
停止策略后,会将局部变量保存到本地的json中,BarGenerator里的缓存tick数据会消失,所以尽量不要在盘中随意停止再开启策略。

Member
avatar
加入于:
帖子: 60
声望: 1

郭易燔 wrote:

vnpy可以24小时开,但是策略需要再开盘前开启收盘后关闭,因为非交易时间会有垃圾数据扰乱交易逻辑。
停止策略后,会将局部变量保存到本地的json中,BarGenerator里的缓存tick数据会消失,所以尽量不要在盘中随意停止再开启策略。

我有两个问题:

  1. 非交易时间的垃圾数据是什么意思? 也就是说收盘后,仍然会有tick数据不断从交易所传来,是这个意思是吗? 垃圾数据都是什么时候产生的呢? 就延后1分钟关闭策略有影响吗?收盘后需要关闭,也就是说一天需要关闭/开启三次,分别是早盘、下午和夜盘,每一次都需要关闭策略吗? 而且不同品种的夜盘结束时间是不一样的,我使用的是portfolio_strategy模块,虽然我是开盘时发单,但是我晚上到底应该23:00关策略,还是2:30关策略呢? 还是说,我只需要写一个筛选tick数据的程序,就可以直接不关闭策略了吗?
  2. 如果我的策略是依赖十天的数据,在初始化阶段我根据rqdata数据库传入了这些数据。而我每次在收盘后关闭了策略, 此时BarGenerator里的tick数据以及根据tick数据合成的bar都消失;那当我再打开的策略的时候,没有了前十天的bar数据,岂不是这个策略已经无法再运行了?要运行这个策略,只能移除这个策略、再重新初始化,是这样吗?
Member
avatar
加入于:
帖子: 3469
声望: 228
  1. 在非交易时段有出现非交易时段tick的情况,具体情况可以自己观察一下,最好是在process_tick_event函数里过滤一下。但是即使加了tick过滤,也建议收盘后关闭系统开盘前再重启,清理一下系统缓存。
  2. rqdata是数据服务不是数据库。停止策略时会缓存策略状态(保存策略变量及仓位至json文件),重启后初始化完该策略实例会读取之前的缓存。具体可参考官方文档https://www.vnpy.com/docs/cn/cta_strategy.html
© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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