我编写了自己的 zipline 捆绑包来从我的交易所获取加密货币价格。摄取运行顺利,我检查了数据库并在其中看到了我的分钟数据。
我试图运行一个非常简单的算法来验证我的包,但我遇到了一个异常。
我的算法如下所示:
def initialize(context):
# I tried to run it without this line as well
context.sim_params._emission_rate = 'minute'
def handle_data(context, data):
order(symbol('ETHBTC'), 10)
record(ETHBTC=data.current(symbol('ETHBTC'), 'price'))
最后一行给了我以下异常:
File "python3.5/site-packages/zipline/data/us_equity_pricing.py", line 710, in sid_day_index
offset = day_loc - self._calendar_offsets[sid]
KeyError: Equity(0 [ETHBTC])
我进一步研究了这一点,发现 zipline 使用每日条形阅读器来获取符号“ETHBTC”的日历偏移量。但是我的每日柱形数据是空的,因为我只是在摄取每分钟的数据。
根据 zipline 文档,摄取每日条形数据不是强制性的,我从中得出结论,如果需要,zipline 会将分钟数据重新采样为每日数据。
有谁之前经历过这个吗?我必须做些什么来开始重新采样分钟到每日条形数据吗?
干杯!