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

策略是基于30分钟K线执行,每当30分钟K线走完,执行缓存一次数据

description

可是有个问题,比如说在15:00会触发一个执行价格(等待中),15:00后停止策略后,会变成已撤销

然后到夜盘到时候,初始化策略,启动策略之后,这个执行价格会消失(失效)

description

直到过半个小时,21:30后才会重新触发一个执行价格(等待中)。但是这样一来,如果在21:00到21:30这半个小时之间价格到达了原本的触发价,则策略不会执行,请问这问题该如何解决?

Member
avatar
加入于:
帖子: 716
声望: 62
  1. 停止策略后所有活动中的委托都会被撤销
  2. 本地停止单只在策略运行时有效,策略关闭后就结束了
  3. 可以在策略启动时加载历史数据,这样策略引擎就会复现之前的数据。15:00到21:00之间就是连续的了,那么15:00时刻那个订单就会在21:00开盘时委托
Member
avatar
加入于:
帖子: 15
声望: 0

谢谢大佬,请问是在策略中加载历史数据吗?

Member
avatar
加入于:
帖子: 15
声望: 0

策略中已经有self.load_bar(20)了

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

不好意思,我刚才讲的有点问题。
你15:00的order时间显示的是14:30。而你显示21:00时刻的bar要到21:30才能推送,所以你的需求是在21:00根据14:30这根bar下单。
在执行self.load_bar(20)时,系统会执行on_bar函数,但是因为是历史数据,所以不会下单。但是所有的结果都是计算好的。
也就是说在执行完self.load_bar(20)函数后,所有的变量都是你15:00那个时刻的变量。
你在self.load_bar(20)函数之后把下单逻辑再写一遍就可以了。有些变量需要使用全局变量存放。

Member
avatar
加入于:
帖子: 15
声望: 0

谢谢大佬!折腾了2天,终于调试ok了。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

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