mirror of
https://github.com/wassname/catalyst.git
synced 2026-07-15 11:22:18 +08:00
MAINT: Batch transform uses get_algo_instance
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user