VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 2
声望: 0

def on_bar(self, bar: BarData): # 判断新的一天,计算range
am = self.am
am.update_bar(bar)
if not am.inited:
return
self.bars.append(bar)
if len(self.bars) <= 4:
return
else:
self.bars.pop(0)
last_bar = self.bars[-2]

    # New Day
    # 如果上一根K线的时间为 14:58,NewDay = True
    # 如果上一根K线的时间为14:59,
    if last_bar.datetime.time() == time(hour=14, minute=58):
         self.NewDay = True
         
    if last_bar.datetime.time() == time(hour=14, minute=59):
        if self.day_open and self.NewDay == True:
            self.QianRi_range = self.ZuoRi_range
            self.ZuoRi_range = self.day_range                
            self.day_range = self.day_high - self.day_low # 计算日range
            self.big_range = max(self.day_range,max(self.ZuoRi_range,self.QianRi_range))
            
            self.open_price = bar.open_price
            self.NewDay = False

问题:1.如何判断新的一天,这么写对么?有无更好的方法
2.晚上开盘前点开始运行,self.day_open and self.NewDay == True:这个条件就成立了,直接开始运行,前天和大前天的range计算不对,该怎么办?

Member
加入于:
帖子: 6137
声望: 382

策略创建两个bg分别合成分钟线和K线应该会方便一点吧