Description
In qlib/data/filter.py line 163, timestamp_series.sort_index() is called but its return value is discarded:
timestamp_series.sort_index() # returns new Series, original unchanged
pandas.Series.sort_index() returns a new sorted Series and does not modify in place (unlike sort_index(inplace=True)). The unsorted series is then iterated to build timestamp ranges, which can produce incorrect filter boundaries.
Fix
- timestamp_series.sort_index() + timestamp_series = timestamp_series.sort_index()
I will submit a fix shortly.