1

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) 有没有人有更强大的解决方案来调整日历,以便我所有的日期最后都在历史记录中?

非常感谢

4

1 回答 1

0

我在这方面花了更多时间。trading.environment.trading_days 实际上是一个 DatetimeIndex ,它应该是不可变的,因此尝试设置 freq 不是一个好方法。DatetimeIndex 有更适合做我想做的事情的方法。话虽如此,我无法用这些方法重现我的初始输出......

于 2015-10-05T11:51:04.580 回答