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

Я пытаюсь заставить zipline работать с неамериканскими внутридневными данными, которые я загрузил в панду DataFrame:

                        BARC    HSBA     LLOY     STAN
Date                                                  
2014-07-01 08:30:00  321.250  894.55  112.105  1777.25
2014-07-01 08:32:00  321.150  894.70  112.095  1777.00
2014-07-01 08:34:00  321.075  894.80  112.140  1776.50
2014-07-01 08:36:00  321.725  894.80  112.255  1777.00
2014-07-01 08:38:00  321.675  894.70  112.290  1777.00

Я следовал учебнику по скользящим среднимВот, заменив «AAPL» собственным кодом символа, а исторические вызовы - данными «1m» вместо «1d».

Затем я делаю последний звонок, используяalgo_obj.run(DataFrameSource(mydf)), гдеmydf это датафрейм выше.

Однако возникают всевозможные проблемы, связанные сTradingEnvironment, Согласно исходному коду:

# This module maintains a global variable, environment, which is
# subsequently referenced directly by zipline financial
# components. To set the environment, you can set the property on
# the module directly:
#       from zipline.finance import trading
#       trading.environment = TradingEnvironment()
#
# or if you want to switch the environment for a limited context
# you can use a TradingEnvironment in a with clause:
#       lse = TradingEnvironment(bm_index="^FTSE", exchange_tz="Europe/London")
#       with lse:
# the code here will have lse as the global trading.environment
#           algo.run(start, end)

Однако использование контекста, похоже, не работает полностью. Я все еще получаю ошибки, например, утверждая, что мои временные метки находятся перед открытием рынка (и действительно, глядя наtrading.environment.open_and_close времена для рынка США.

Мой вопрос: кому-нибудь удавалось использовать zipline с данными за пределами США? Не могли бы вы указать мне ресурс и в идеале пример кода о том, как это сделать?

нотабене Я видел, что есть некоторыетесты на github, которые, по-видимому, связаны с торговыми календарями (tradincalendar_lse.py, tradingcalendar_tse.py и т. д.), но, похоже, они обрабатывают данные только на дневном уровне. Я должен был бы исправить:

время открытия / закрытиясправочные данные для эталонаи, вероятно, больше ...

Ответы на вопрос(2)

Ваш ответ на вопрос