vn.py量化社区
By Traders, For Traders.
Member
avatar
加入于:
帖子: 21
声望: 0

不应该是45,30吗?

self.bg = NewBarGenerator(self.on_bar,window= 45,on_window_bar= self.on_45min_bar,interval=Interval.MINUTE)

if self.interval == Interval.MINUTE:
            # # x-minute bar
            # if not (bar.datetime.minute + 1) % self.window:
            #     finished = True
            if self.last_bar and bar.datetime.minute != self.last_bar.datetime.minute:

                self.interval_count += 1

                if not self.interval_count % self.window:
                    finished = True
                    self.interval_count = 0
Member
avatar
加入于:
帖子: 21
声望: 0

description

Administrator
avatar
加入于:
帖子: 4435
声望: 253

建议检查下你加载的第一条数据时间戳,可能是01而不是00

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

用Python的交易员 wrote:

建议检查下你加载的第一条数据时间戳,可能是01而不是00

我把window改成5时,发现加载第一条数据时因为lastbar是空,interval_count没有计数,所以第一个5m bar用了6个1m bar算的,导致后面的都向后移动了一个bar,把这一行改成这样就正常了,请问这是bug吗?

if (self.last_bar and bar.datetime.minute != self.last_bar.datetime.minute) or not self.last_bar:
                self.interval_count += 1
                if not self.interval_count % self.window:
                    finished = True
                    self.interval_count = 0
Member
avatar
加入于:
帖子: 1741
声望: 115

description
还是请检查一下自己的数据吧,这是我在系统自带multi_timeframe策略里on_5min_bar函数中print出来的

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

沪公网安备 31011502017034号