mirror of
https://github.com/microsoft/qlib.git
synced 2026-07-15 08:46:56 +08:00
Fix the number of minutes on the first and last trading day of high frequency
This commit is contained in:
@@ -472,7 +472,14 @@ class YahooNormalize:
|
|||||||
df.index = pd.to_datetime(df.index)
|
df.index = pd.to_datetime(df.index)
|
||||||
df = df[~df.index.duplicated(keep="first")]
|
df = df[~df.index.duplicated(keep="first")]
|
||||||
if calendar_list is not None:
|
if calendar_list is not None:
|
||||||
df = df.reindex(pd.DataFrame(index=calendar_list).loc[df.index.min() : df.index.max()].index)
|
df = df.reindex(
|
||||||
|
pd.DataFrame(index=calendar_list)
|
||||||
|
.loc[
|
||||||
|
pd.Timestamp(df.index.min()).date() : pd.Timestamp(df.index.max()).date()
|
||||||
|
+ pd.Timedelta(hours=23, minutes=59)
|
||||||
|
]
|
||||||
|
.index
|
||||||
|
)
|
||||||
df.sort_index(inplace=True)
|
df.sort_index(inplace=True)
|
||||||
df.loc[(df["volume"] <= 0) | np.isnan(df["volume"]), set(df.columns) - {symbol_field_name}] = np.nan
|
df.loc[(df["volume"] <= 0) | np.isnan(df["volume"]), set(df.columns) - {symbol_field_name}] = np.nan
|
||||||
_tmp_series = df["close"].fillna(method="ffill")
|
_tmp_series = df["close"].fillna(method="ffill")
|
||||||
@@ -614,6 +621,7 @@ class YahooNormalize1min(YahooNormalize, ABC):
|
|||||||
data_1d = YahooData.get_data_from_remote(self.symbol_to_yahoo(symbol), interval="1d", start=_start, end=_end)
|
data_1d = YahooData.get_data_from_remote(self.symbol_to_yahoo(symbol), interval="1d", start=_start, end=_end)
|
||||||
if data_1d is None or data_1d.empty:
|
if data_1d is None or data_1d.empty:
|
||||||
df["factor"] = 1
|
df["factor"] = 1
|
||||||
|
# TODO: np.nan or 1 or 0
|
||||||
df["paused"] = np.nan
|
df["paused"] = np.nan
|
||||||
else:
|
else:
|
||||||
data_1d = self.data_1d_obj.normalize(data_1d) # type: pd.DataFrame
|
data_1d = self.data_1d_obj.normalize(data_1d) # type: pd.DataFrame
|
||||||
|
|||||||
Reference in New Issue
Block a user