From 2e46323a9e70cd889e45fc8dfc321e6b06592e9d Mon Sep 17 00:00:00 2001 From: fredfortier Date: Wed, 18 Oct 2017 20:30:24 -0400 Subject: [PATCH] Fixed an issue with minute bundles --- catalyst/exchange/exchange_bcolz.py | 17 +++++++++++------ catalyst/exchange/exchange_bundle.py | 1 - tests/exchange/test_bundle.py | 6 +++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/catalyst/exchange/exchange_bcolz.py b/catalyst/exchange/exchange_bcolz.py index c91a4157..e85e0c4c 100644 --- a/catalyst/exchange/exchange_bcolz.py +++ b/catalyst/exchange/exchange_bcolz.py @@ -41,12 +41,14 @@ class BcolzExchangeBarReader(BcolzMinuteBarReader): def load_raw_arrays(self, fields, start_dt, end_dt, sids): - if self._data_frequency == 'minute': - return super(BcolzExchangeBarReader, self) \ - .load_raw_arrays(fields, start_dt, end_dt, sids) + # if self._data_frequency == 'minute': + # return super(BcolzExchangeBarReader, self) \ + # .load_raw_arrays(fields, start_dt, end_dt, sids) + # + # else: + # return self._load_daily_raw_arrays(fields, start_dt, end_dt, sids) - else: - return self._load_daily_raw_arrays(fields, start_dt, end_dt, sids) + return self._load_daily_raw_arrays(fields, start_dt, end_dt, sids) def _load_daily_raw_arrays(self, fields, start_dt, end_dt, sids): start_idx = self._find_position_of_minute(start_dt) @@ -62,7 +64,10 @@ class BcolzExchangeBarReader(BcolzMinuteBarReader): mask = None data = [] for field in fields: - out = np.full(shape, np.nan) + if field != 'volume': + out = np.full(shape, np.nan) + else: + out = np.zeros(shape, dtype=np.float64) for i, sid in enumerate(sids): carray = self._open_minute_file(field, sid) diff --git a/catalyst/exchange/exchange_bundle.py b/catalyst/exchange/exchange_bundle.py index b8006362..c4128696 100644 --- a/catalyst/exchange/exchange_bundle.py +++ b/catalyst/exchange/exchange_bundle.py @@ -319,7 +319,6 @@ class ExchangeBundle: for index, field in enumerate( ['open', 'high', 'low', 'close', 'volume']): ohlcv[field] = arrays[index].flatten() - ohlcv[field] = ohlcv[field][~np.isnan(ohlcv[field])] df = pd.DataFrame( data=ohlcv, diff --git a/tests/exchange/test_bundle.py b/tests/exchange/test_bundle.py index 1439b2d6..1372429d 100644 --- a/tests/exchange/test_bundle.py +++ b/tests/exchange/test_bundle.py @@ -17,7 +17,7 @@ log = Logger('test_exchange_bundle') class ExchangeBundleTestCase: def test_ingest_minute(self): - exchange_name = 'poloniex' + exchange_name = 'bitfinex' # start = pd.to_datetime('2017-09-01', utc=True) start = pd.to_datetime('2017-9-1', utc=True) @@ -27,8 +27,8 @@ class ExchangeBundleTestCase: log.info('ingesting exchange bundle {}'.format(exchange_name)) exchange_bundle.ingest( - data_frequency='daily', - include_symbols='etc_btc', + data_frequency='minute', + include_symbols='neo_eth', # include_symbols=None, exclude_symbols=None, start=start,