diff --git a/qlib/utils/resam.py b/qlib/utils/resam.py index 99aedfcd50c..f683b32af7a 100644 --- a/qlib/utils/resam.py +++ b/qlib/utils/resam.py @@ -92,8 +92,12 @@ def get_higher_eq_freq_feature(instruments, fields, start_time=None, end_time=No _result = D.features(instruments, fields, start_time, end_time, freq="1min", disk_cache=disk_cache) _freq = "1min" elif norm_freq == Freq.NORM_FREQ_MINUTE: - _result = D.features(instruments, fields, start_time, end_time, freq="1min", disk_cache=disk_cache) - _freq = "1min" + try: + _result = D.features(instruments, fields, start_time, end_time, freq="1min", disk_cache=disk_cache) + _freq = "1min" + except (ValueError, KeyError): + _result = D.features(instruments, fields, start_time, end_time, freq="day", disk_cache=disk_cache) + _freq = "day" else: raise ValueError(f"freq {freq} is not supported") from value_key_e return _result, _freq diff --git a/qlib/utils/time.py b/qlib/utils/time.py index b052f6ab9f7..50f2d95790a 100644 --- a/qlib/utils/time.py +++ b/qlib/utils/time.py @@ -249,9 +249,9 @@ def get_recent_freq(base_freq: Union[str, "Freq"], freq_list: List[Union[str, "F if _min_delta < 0: continue if min_freq is None: - min_freq = (_min_delta, str(_freq)) + min_freq = (_min_delta, Freq(_freq)) continue - min_freq = min_freq if min_freq[0] <= _min_delta else (_min_delta, _freq) + min_freq = min_freq if min_freq[0] <= _min_delta else (_min_delta, Freq(_freq)) return min_freq[1] if min_freq else None