Python: проблема с торговым календарем / историей zipline

У меня нестабильный / странный результат с торговым календарем Zipline. На одной машине с Python 3.4.2x64 и Zipline 0.7.42 я могу запустить следующий код:

trading.environment = TradingEnvironment(bm_symbol='^FTSE', exchange_tz='Europe/London')
    Holidays = list(set(tradingcalendar_lse.non_trading_days)-set(data.index))
    trading.environment.trading_days = pd.date_range(start=trading.environment.trading_days[0],
                                             end=trading.environment.trading_days[-1],
                                             freq=pd.tseries.offsets.CDay(holidays=Holidays))
    freq = trading.environment.trading_days.freq
    trading.environment.trading_days =  trading.environment.trading_days + data.index
    trading.environment.trading_days.freq = freq
    trading.environment.open_and_closes = pd.DataFrame(index=trading.environment.trading_days +
                                                             data.index,columns=["market_open","market_close"])
    trading.environment.open_and_closes.market_open = (trading.environment.open_and_closes.index +
                                                       pd.to_timedelta(60*7,unit="T")).to_pydatetime()
    trading.environment.open_and_closes.market_close = (trading.environment.open_and_closes.index +
                                                        pd.to_timedelta(60*15+30,unit="T")).to_pydatetime()

Он основан на: обратном тестировании zipline с использованием не-американских (европейских) внутридневных данных

Это, вероятно, немного избыточно, но позволяет мне иметь историю со всеми моими данными (на одной машине).

Я пытаюсь запустить тот же код на другом компьютере, который должен иметь ту же конфигурацию и получить ошибку:

AttributeError: can't set attribute

1) Кто-нибудь может понять, в чем может быть разница в моих конфигах, которая приводит к этой ошибке?

2) Будет ли у кого-нибудь более надежное решение, чтобы настроить календарь так, чтобы все мои даты были в истории в конце?

Большое спасибо

1 ответ

Я потратил немного больше времени на это. trading.environment.trading_days - это на самом деле DatetimeIndex, который должен быть неизменяемым, поэтому попытка установить freq не очень хороший подход. У DatetimeIndex есть методы, которые больше подходят для того, что я хочу. При этом я не могу воспроизвести свой первоначальный результат методами...

Другие вопросы по тегам