当我尝试将数据摄取到 zipline 包中时,因为我无法获得一分钟的数据,而只有 5 分钟的 klines 数据。看起来标准的 zipline 不支持它?引用自http://www.zipline.io/bundles.html
摄取(环境,asset_db_writer,minute_bar_writer,daily_bar_writer,adjustment_writer,日历,start_session,end_session,缓存,show_progress,output_dir)
minute_bar_writer minute_bar_writer 是 BcolzMinuteBarWriter 的一个实例。此编写器用于将数据转换为 zipline 的内部 bcolz 格式,以便稍后由 BcolzMinuteBarReader 读取。如果提供了分钟数据,用户应该使用 (sid, dataframe) 元组的可迭代调用 write()。show_progress 参数也应该转发给这个方法。如果数据源不提供分钟级数据,则无需调用write方法。将一个空的迭代器传递给 write() 以表示没有分钟数据也是可以接受的。
无论如何,我使用此界面将 5 分钟 klines 摄取到 zipline 中。但是当我调用 run_algorithm 时,无论我输入什么 data_frequency,它都会提示错误。
data = run_algorithm(start=start,
end=end,
initialize=initialize,
capital_base=100000,
handle_data=handle_data,
bundle="poloniex_csv",
data_frequency='60min',
trading_calendar=PoloniexExchangeCalendar())
AssertionError:所有读者必须共享目标 trading_calendar。Reader= for type= 使用 calendar= 与所需的共享日历不匹配=
如何解决这个问题?例如让 BcolzMinuteBarReader 支持 5minutes 数据。我可以处理 zipline handle_data 函数中的 5 分钟数据。谢谢!