MAINT: Batch transform uses get_algo_instance

This commit is contained in:
jfkirk
2015-09-18 14:17:53 -04:00
parent 4db5e6c142
commit 88495ce9b7
+8 -11
View File
@@ -32,14 +32,9 @@ from six import (
iteritems
)
from zipline.utils.algo_instance import get_algo_instance
from zipline.utils.data import MutableIndexRollingPanel
from zipline.protocol import Event
from zipline.finance.trading import TradingEnvironment
# HACK the BatchTransform module stores a trading environment to be used by
# the transforms
# TODO remove this hack, if not this whole module
_batch_transform_env = TradingEnvironment()
log = logbook.Logger('BatchTransform')
func_map = {'open_price': 'first',
@@ -71,8 +66,9 @@ def downsample_panel(minute_rp, daily_rp, mkt_close):
cur_panel = minute_rp.get_current()
sids = minute_rp.minor_axis
day_frame = pd.DataFrame(columns=sids, index=cur_panel.items)
dt1 = _batch_transform_env.normalize_date(mkt_close)
dt2 = _batch_transform_env.next_trading_day(mkt_close)
env = get_algo_instance().trading_environment
dt1 = env.normalize_date(mkt_close)
dt2 = env.next_trading_day(mkt_close)
by_close = functools.partial(get_date, mkt_close, dt1, dt2)
for item in minute_rp.items:
frame = cur_panel[item]
@@ -337,11 +333,12 @@ class BatchTransform(object):
# we may get events from non-trading sources which occurr on
# non-trading days. The book-keeping for market close and
# trading day counting should only consider trading days.
if _batch_transform_env.is_trading_day(event.dt):
_, mkt_close = _batch_transform_env.get_open_and_close(event.dt)
env = get_algo_instance().trading_environment
if env.is_trading_day(event.dt):
_, mkt_close = env.get_open_and_close(event.dt)
if self.bars == 'daily':
# Daily bars have their dt set to midnight.
mkt_close = _batch_transform_env.normalize_date(mkt_close)
mkt_close = env.normalize_date(mkt_close)
if event.dt == mkt_close:
if self.downsample:
downsample_panel(self.rolling_panel,