Нет календарного смещения при использовании пользовательского пакета данных для минутных данных в zipline - PullRequest
0 голосов
/ 09 мая 2018

Я написал свой собственный пакет 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 будет при необходимости пересчитывать данные минут до дневных данных.

Кто-нибудь испытывал это раньше? Есть ли что-то, что я должен сделать, чтобы начать повторную выборку минутных и дневных данных бара?

Ура!

...