def test_convert_minute(calendar): cal = calendar.schedule.loc[TEST_CALENDAR_START:TEST_CALENDAR_STOP] market_opens = cal.market_open market_closes = cal.market_close market_open_values = market_opens.values.astype('datetime64[m]').astype( np.int64) market_closes_values = market_closes.values.astype('datetime64[m]').astype( np.int64) # 测试期间的所有分钟 all_minutes = calendar.minutes_window(market_opens.iloc[0], MINUTES_PER_DAY * len(cal)) # 首先查找分钟对应位置,然后根据位置找回分钟epoch,转换后测试是否一致 for i in range(len(all_minutes)): minute_dt = all_minutes[i] pos = find_position_of_minute( market_open_values, market_closes_values, minute_dt.value / NANOS_IN_MINUTE, MINUTES_PER_DAY, False, ) minute_epoch = minute_value(market_open_values, pos, MINUTES_PER_DAY) finded = pd.Timestamp(minute_epoch, tz='UTC', unit="m") assert minute_dt == finded
def _pos_to_minute(self, pos): minute_epoch = minute_value( self._market_open_values, pos, self._minutes_per_day ) return pd.Timestamp(minute_epoch, tz='UTC', unit="m")
def _pos_to_minute(self, pos): minute_epoch = minute_value( self._market_open_values, pos, US_EQUITIES_MINUTES_PER_DAY ) return pd.Timestamp(minute_epoch, tz='UTC', unit="m")
def _pos_to_minute(self, pos): minute_epoch = minute_value( self._market_open_values, pos, self._minutes_per_day ) return pd.Timestamp(minute_epoch, tz='UTC', unit="m")
def _pos_to_minute(self, pos): minute_epoch = minute_value( self._market_open_values, pos, US_EQUITIES_MINUTES_PER_DAY ) return pd.Timestamp(minute_epoch, tz='UTC', unit="m")
def test_minute_value(calendar): cal = calendar.schedule.loc[TEST_CALENDAR_START:TEST_CALENDAR_STOP] market_opens = cal.market_open market_open_values = market_opens.values.astype('datetime64[m]').astype( np.int64) # 测试期间的所有分钟 all_minutes = calendar.minutes_window(market_opens.iloc[0], MINUTES_PER_DAY * len(cal)) for i, expected in enumerate(all_minutes): actual = minute_value(market_open_values, i, MINUTES_PER_DAY) actual = pd.Timestamp(actual, unit='m', tz='utc') assert actual == expected