From 00f2063e2167ee625bffe7d64b9fa1accd71c4fa Mon Sep 17 00:00:00 2001 From: Victor Grau Serrat Date: Wed, 9 Aug 2017 12:49:53 +0200 Subject: [PATCH] OPEN cal start=2015-03-01, minor fixes for rc-0.1.dev7 --- catalyst/algorithm.py | 3 --- catalyst/data/bundles/poloniex.py | 2 +- catalyst/data/loader.py | 4 ++-- catalyst/finance/risk/risk.py | 2 +- catalyst/pipeline/loaders/crypto_pricing_loader.py | 2 +- catalyst/sources/benchmark_source.py | 5 ----- catalyst/utils/calendars/exchange_calendar_open.py | 4 ++++ 7 files changed, 9 insertions(+), 13 deletions(-) diff --git a/catalyst/algorithm.py b/catalyst/algorithm.py index 139a2395..ed10fedd 100644 --- a/catalyst/algorithm.py +++ b/catalyst/algorithm.py @@ -444,9 +444,6 @@ class TradingAlgorithm(object): 'data frequency: {}'.format(data_frequency) ) - print 'first_dates:', all_dates[:10] - print 'last_dates:', all_dates[:-10] - self.engine = SimplePipelineEngine( get_loader, all_dates, diff --git a/catalyst/data/bundles/poloniex.py b/catalyst/data/bundles/poloniex.py index 9f55e5cc..a7e298f9 100644 --- a/catalyst/data/bundles/poloniex.py +++ b/catalyst/data/bundles/poloniex.py @@ -36,7 +36,7 @@ class PoloniexBundle(BaseCryptoPricingBundle): def frequencies(self): return set(( 'daily', - '5-minute', + #'5-minute', )) @lazyval diff --git a/catalyst/data/loader.py b/catalyst/data/loader.py index 4a8426e7..50dd4f46 100644 --- a/catalyst/data/loader.py +++ b/catalyst/data/loader.py @@ -279,7 +279,7 @@ def ensure_crypto_benchmark_data(symbol, None, symbol, get_calendar(bundle.calendar_name), - first_date, + first_date - trading_day, last_date, 'daily', ) @@ -491,7 +491,7 @@ def _load_cached_data(filename, first_date, last_date, now, resource_name, if os.path.exists(path): try: data = from_csv(path) - data.index = pd.to_datetime(data.index).tz_localize('UTC') + data.index = pd.to_datetime(data.index, infer_datetime_format=True, errors='coerce' ).tz_localize('UTC') if has_data_for_dates(data, first_date, last_date): return data diff --git a/catalyst/finance/risk/risk.py b/catalyst/finance/risk/risk.py index 2d371b56..7faca596 100644 --- a/catalyst/finance/risk/risk.py +++ b/catalyst/finance/risk/risk.py @@ -158,7 +158,7 @@ def choose_treasury(select_treasury, treasury_curves, start_session, ) break - if search_day: + if search_day and trading_calendar.name != 'OPEN': # Supress warning for 'OPEN' calendar if (search_dist is None or search_dist > 1) and \ search_days[0] <= end_session <= search_days[-1]: message = "No rate within 1 trading day of end date = \ diff --git a/catalyst/pipeline/loaders/crypto_pricing_loader.py b/catalyst/pipeline/loaders/crypto_pricing_loader.py index a3ec1114..627b9207 100644 --- a/catalyst/pipeline/loaders/crypto_pricing_loader.py +++ b/catalyst/pipeline/loaders/crypto_pricing_loader.py @@ -45,7 +45,7 @@ class CryptoPricingLoader(PipelineLoader): reader = bundle.five_minute_bar_reader all_sessions = cal.all_five_minutes - elif daily_bar_reader == 'minute': + elif data_frequency == 'minute': reader = bundle.minute_bar_reader all_sessions = cal.all_minutes diff --git a/catalyst/sources/benchmark_source.py b/catalyst/sources/benchmark_source.py index b5a95eee..b9773716 100644 --- a/catalyst/sources/benchmark_source.py +++ b/catalyst/sources/benchmark_source.py @@ -51,10 +51,7 @@ class BenchmarkSource(object): elif benchmark_returns is not None: daily_series = benchmark_returns[sessions[0]:sessions[-1]] - print 'BENCHMARK_RETURNS' - if self.emission_rate == "minute": - print 'BENCHMARK_RETURNS minute' # we need to take the env's benchmark returns, which are daily, # and resample them to minute minutes = trading_calendar.minutes_for_sessions_in_range( @@ -69,7 +66,6 @@ class BenchmarkSource(object): self._precalculated_series = minute_series elif self.emission_rate == '5-minute': - print 'BENCHMARK_RETURNS 5-minute' five_minutes = \ trading_calendar.five_minutes_for_sessions_in_range( sessions[0], @@ -83,7 +79,6 @@ class BenchmarkSource(object): self._precalculated_series = five_minute_series else: - print 'BENCHMARK_RETURNS daily' self._precalculated_series = daily_series else: raise Exception("Must provide either benchmark_asset or " diff --git a/catalyst/utils/calendars/exchange_calendar_open.py b/catalyst/utils/calendars/exchange_calendar_open.py index cf62b8f0..1dbc8cd3 100644 --- a/catalyst/utils/calendars/exchange_calendar_open.py +++ b/catalyst/utils/calendars/exchange_calendar_open.py @@ -1,6 +1,7 @@ from datetime import time from pytz import timezone +from pandas import Timestamp from pandas.tseries.offsets import DateOffset from catalyst.utils.memoize import lazyval @@ -28,3 +29,6 @@ class OpenExchangeCalendar(TradingCalendar): @lazyval def day(self): return DateOffset(days=1) + + def __init__(self, *args, **kwargs): + super(OpenExchangeCalendar, self).__init__(start=Timestamp('2015-03-01', tz='UTC'), **kwargs)