тестирование 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 и т. д.), но, похоже, они обрабатывают данные только на дневном уровне. Я должен был бы исправить:
время открытия / закрытиясправочные данные для эталонаи, вероятно, больше ...