def test_load_raw_arrays(self): reindex_reader = ReindexMinuteBarReader( self.trading_calendar, self.bcolz_equity_minute_bar_reader, self.START_DATE, self.END_DATE, ) m_open, m_close = self.trading_calendar.open_and_close_for_session( self.START_DATE) outer_minutes = self.trading_calendar.minutes_in_range(m_open, m_close) result = reindex_reader.load_raw_arrays(OHLCV, m_open, m_close, [1, 2]) opens = DataFrame(data=result[0], index=outer_minutes, columns=[1, 2]) opens_with_price = opens.dropna() self.assertEqual( 1440, len(opens), "The result should have 1440 bars, the number of minutes in a " "trading session on the target calendar.", ) self.assertEqual( 390, len(opens_with_price), "The result, after dropping nans, should have 390 bars, the " " number of bars in a trading session in the reader's calendar.", ) slicer = outer_minutes.slice_indexer( end=pd.Timestamp("2015-12-01 14:30", tz="UTC")) assert_almost_equal( opens[1][slicer], full(slicer.stop, nan), err_msg="All values before the NYSE market open should be nan.", ) slicer = outer_minutes.slice_indexer( start=pd.Timestamp("2015-12-01 21:01", tz="UTC")) assert_almost_equal( opens[1][slicer], full(slicer.stop - slicer.start, nan), err_msg="All values after the NYSE market close should be nan.", ) first_minute_loc = outer_minutes.get_loc( pd.Timestamp("2015-12-01 14:31", tz="UTC")) # Spot check a value. # The value is the autogenerated value from test fixtures. assert_almost_equal( 10.0, opens[1][first_minute_loc], err_msg="The value for Equity 1, should be 10.0, at NYSE open.", )
def test_load_raw_arrays(self): reindex_reader = ReindexMinuteBarReader( self.trading_calendar, self.bcolz_equity_minute_bar_reader, self.START_DATE, self.END_DATE, ) m_open, m_close = self.trading_calendar.open_and_close_for_session( self.START_DATE) outer_minutes = self.trading_calendar.minutes_in_range(m_open, m_close) result = reindex_reader.load_raw_arrays( OHLCV, m_open, m_close, [1, 2]) opens = DataFrame(data=result[0], index=outer_minutes, columns=[1, 2]) opens_with_price = opens.dropna() self.assertEqual( 1440, len(opens), "The result should have 1440 bars, the number of minutes in a " "trading session on the target calendar." ) self.assertEqual( 390, len(opens_with_price), "The result, after dropping nans, should have 390 bars, the " " number of bars in a trading session in the reader's calendar." ) slicer = outer_minutes.slice_indexer( end=pd.Timestamp('2015-12-01 14:30', tz='UTC')) assert_almost_equal( opens[1][slicer], full(slicer.stop, nan), err_msg="All values before the NYSE market open should be nan.") slicer = outer_minutes.slice_indexer( start=pd.Timestamp('2015-12-01 21:01', tz='UTC')) assert_almost_equal( opens[1][slicer], full(slicer.stop - slicer.start, nan), err_msg="All values after the NYSE market close should be nan.") first_minute_loc = outer_minutes.get_loc(pd.Timestamp( '2015-12-01 14:31', tz='UTC')) # Spot check a value. # The value is the autogenerated value from test fixtures. assert_almost_equal( 10.0, opens[1][first_minute_loc], err_msg="The value for Equity 1, should be 10.0, at NYSE open.")
def init_class_fixtures(cls): super().init_class_fixtures() readers = { Equity: ReindexMinuteBarReader(cls.trading_calendar, cls.bcolz_equity_minute_bar_reader, cls.START_DATE, cls.END_DATE), Future: cls.bcolz_future_minute_bar_reader } cls.dispatch_reader = AssetDispatchMinuteBarReader( cls.trading_calendar, cls.asset_finder, readers)
def _ensure_reader_aligned(self, reader): if reader is None: return if reader.trading_calendar.name == self.trading_calendar.name: return reader elif reader.data_frequency == 'minute': return ReindexMinuteBarReader(self.trading_calendar, reader, self._first_trading_session, self._last_trading_session) elif reader.data_frequency == 'session': return ReindexSessionBarReader(self.trading_calendar, reader, self._first_trading_session, self._last_trading_session)