vn.py官网
开源量化社区
Member
avatar
加入于:
帖子: 31
声望: 0

load 是小时K线 合成日K新,可是 打印出一小时的数据时,我在晚上22点到23点之间的时候, 日K线的合成是从昨天的23点到今天的23点, 为什么是这样,不是应该从0点 到24点合成日K线吗? 请问哪里出错了?
代码如下:
self.bg_hour = BarGenerator(self.on_bar,60,self.on_hour_bar,interval=Interval.MINUTE)
self.bg_day = BarGenerator(self.on_hour_bar,24,self.on_day_bar,interval=Interval.HOUR)

    # self.bg_hour = BarGenerator(self.on_bar)
    self.am_day = ArrayManager(size = 150)

def on_init(self):
"""
Callback when strategy is inited.
"""
self.write_log("策略初始化")
self.load_bar(days= 200,interval=Interval.HOUR,use_database= True)

    # self.load_bar(days=10)


def on_hour_bar(self, bar: BarData):
"""
Callback of new day bar data update.
"""
logging.info("小时k线时间%s,K线收盘价%s",bar.datetime,bar.close_price)
self.bg_day.update_bar(bar)
print(f"小时k线时间:{bar.datetime},K线收盘价:{bar.close_price}")

Administrator
avatar
加入于:
帖子: 4873
声望: 283

K线时间戳,是该K线的开始时间点,而不是结束时间点

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

vnpy的日K线合成规则, 是获取历史数据,合成24根1小时K线,而不是严格意义的 0点到23点59分 的 24根K线。 所以 我要上传数据的时候 要完整的一整天,才能正好是24根K线时是 一天。 假如上传历史数据多了几根K线,那么直接获取24根1小时K线,就不是严格意义上的日K线了吗??是不是这样的?

Member
avatar
加入于:
帖子: 2643
声望: 157

vn.py官方的BarGenerator没有合成日线的逻辑,想合成日线可以基于自己需要来个性化合成了。比如数字货币是24小时交易的,如果想获取0点到0点的日线数据,也可以考虑判断传进来的数据的datetime.date不同来合成

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

沪公网安备 31011502017034号