From e7b504f4ca6a2c74daa6f6c41ad34f461dbefdb9 Mon Sep 17 00:00:00 2001 From: Richard Frank Date: Mon, 10 Dec 2012 16:12:29 -0500 Subject: [PATCH] Removed list of trading days since we already have an OrderedDict --- tests/test_perf_tracking.py | 2 +- zipline/finance/trading.py | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/test_perf_tracking.py b/tests/test_perf_tracking.py index 4435b780..be1ee502 100644 --- a/tests/test_perf_tracking.py +++ b/tests/test_perf_tracking.py @@ -62,7 +62,7 @@ check treasury and benchmark data in findb, and re-run the test.""" self.oneday = datetime.timedelta(days=1) self.tradingday = datetime.timedelta(hours=6, minutes=30) - self.dt = self.trading_environment.trading_days[random_index] + self.dt = self.trading_environment.trading_day_map.keys()[random_index] def tearDown(self): pass diff --git a/zipline/finance/trading.py b/zipline/finance/trading.py index 26f7986f..7dc97458 100644 --- a/zipline/finance/trading.py +++ b/zipline/finance/trading.py @@ -67,7 +67,6 @@ class TradingEnvironment(object): capital_base=None ): - self.trading_days = [] self.trading_day_map = OrderedDict() self.treasury_curves = treasury_curves self.benchmark_returns = benchmark_returns @@ -80,12 +79,14 @@ class TradingEnvironment(object): "Period start falls after period end." for bm in benchmark_returns: - self.trading_days.append(bm.date) self.trading_day_map[bm.date] = bm - assert self.period_start <= self.trading_days[-1], \ + self.first_trading_day = next(self.trading_day_map.iterkeys()) + self.last_trading_day = next(reversed(self.trading_day_map)) + + assert self.period_start <= self.last_trading_day, \ "Period start falls after the last known trading day." - assert self.period_end >= self.trading_days[0], \ + assert self.period_end >= self.first_trading_day, \ "Period end falls before the first known trading day." self.first_open = self.calculate_first_open() @@ -114,7 +115,7 @@ class TradingEnvironment(object): one_day = datetime.timedelta(days=1) first_open = self.period_start - one_day - if first_open <= self.trading_days[0]: + if first_open <= self.first_trading_day: log.warn("Cannot calculate prior day open.") return self.period_start @@ -169,7 +170,7 @@ class TradingEnvironment(object): if self.period_trading_days is None: self.period_trading_days = [] - for date in self.trading_days: + for date in self.trading_day_map.iterkeys(): if date > self.period_end: break if date >= self.period_start: @@ -193,10 +194,9 @@ class TradingEnvironment(object): def next_trading_day(self, test_date): dt = self.normalize_date(test_date) - last_dt = next(reversed(self.trading_day_map)) delta = datetime.timedelta(days=1) - while dt <= last_dt: + while dt <= self.last_trading_day: dt += delta if dt in self.trading_day_map: return dt