mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-28 20:22:12 +08:00
BUG: Set data portal last trading session if passed
This commit is contained in:
+33
-13
@@ -166,15 +166,35 @@ class DataPortal(object):
|
||||
self._augmented_sources_map = {}
|
||||
self._extra_source_df = None
|
||||
|
||||
self._first_trading_session = first_trading_day
|
||||
self._first_available_session = first_trading_day
|
||||
|
||||
_last_sessions = [r.last_available_dt
|
||||
for r in [equity_daily_reader, future_daily_reader]
|
||||
if r is not None]
|
||||
if _last_sessions:
|
||||
self._last_trading_session = min(_last_sessions)
|
||||
if last_available_session:
|
||||
self._last_available_session = last_available_session
|
||||
else:
|
||||
self._last_trading_session = None
|
||||
# Infer the last session from the provided readers.
|
||||
last_sessions = [
|
||||
reader.last_available_dt
|
||||
for reader in [equity_daily_reader, future_daily_reader]
|
||||
if reader is not None
|
||||
]
|
||||
if last_sessions:
|
||||
self._last_available_session = min(last_sessions)
|
||||
else:
|
||||
self._last_available_session = None
|
||||
|
||||
if last_available_minute:
|
||||
self._last_available_minute = last_available_minute
|
||||
else:
|
||||
# Infer the last minute from the provided readers.
|
||||
last_minutes = [
|
||||
reader.last_available_dt
|
||||
for reader in [equity_minute_reader, future_minute_reader]
|
||||
if reader is not None
|
||||
]
|
||||
if last_minutes:
|
||||
self._last_available_minute = min(last_minutes)
|
||||
else:
|
||||
self._last_available_minute = None
|
||||
|
||||
aligned_equity_minute_reader = self._ensure_reader_aligned(
|
||||
equity_minute_reader)
|
||||
@@ -223,14 +243,14 @@ class DataPortal(object):
|
||||
self.trading_calendar,
|
||||
self.asset_finder,
|
||||
aligned_minute_readers,
|
||||
last_available_minute,
|
||||
self._last_available_minute,
|
||||
)
|
||||
|
||||
_dispatch_session_reader = AssetDispatchSessionBarReader(
|
||||
self.trading_calendar,
|
||||
self.asset_finder,
|
||||
aligned_session_readers,
|
||||
last_available_session,
|
||||
self._last_available_session,
|
||||
)
|
||||
|
||||
self._pricing_readers = {
|
||||
@@ -286,15 +306,15 @@ class DataPortal(object):
|
||||
return ReindexMinuteBarReader(
|
||||
self.trading_calendar,
|
||||
reader,
|
||||
self._first_trading_session,
|
||||
self._last_trading_session
|
||||
self._first_available_session,
|
||||
self._last_available_session
|
||||
)
|
||||
elif reader.data_frequency == 'session':
|
||||
return ReindexSessionBarReader(
|
||||
self.trading_calendar,
|
||||
reader,
|
||||
self._first_trading_session,
|
||||
self._last_trading_session
|
||||
self._first_available_session,
|
||||
self._last_available_session
|
||||
)
|
||||
|
||||
def _reindex_extra_source(self, df, source_date_index):
|
||||
|
||||
Reference in New Issue
Block a user