1
0
mirror of https://github.com/microsoft/qlib.git synced 2026-07-12 15:26:54 +08:00

fix csi500 end date issue (#1373)

This commit is contained in:
YQ Tsui
2022-11-28 18:06:29 +08:00
committed by GitHub
parent 7e5bab599a
commit 4f5ae4d224

View File

@@ -394,7 +394,7 @@ class CSI500Index(CSIIndex):
type: str, value from ["add", "remove"] type: str, value from ["add", "remove"]
""" """
bs.login() bs.login()
today = pd.datetime.now() today = pd.Timestamp.now()
date_range = pd.DataFrame(pd.date_range(start="2007-01-15", end=today, freq="7D"))[0].dt.date date_range = pd.DataFrame(pd.date_range(start="2007-01-15", end=today, freq="7D"))[0].dt.date
ret_list = [] ret_list = []
col = ["date", "symbol", "code_name"] col = ["date", "symbol", "code_name"]
@@ -410,7 +410,8 @@ class CSI500Index(CSIIndex):
bs.logout() bs.logout()
return pd.concat(ret_list, sort=False) return pd.concat(ret_list, sort=False)
def get_data_from_baostock(self, date) -> pd.DataFrame: @staticmethod
def get_data_from_baostock(date) -> pd.DataFrame:
""" """
Data source: http://baostock.com/baostock/index.php/%E4%B8%AD%E8%AF%81500%E6%88%90%E5%88%86%E8%82%A1 Data source: http://baostock.com/baostock/index.php/%E4%B8%AD%E8%AF%81500%E6%88%90%E5%88%86%E8%82%A1
Avoid a large number of parallel data acquisition, Avoid a large number of parallel data acquisition,
@@ -452,13 +453,13 @@ class CSI500Index(CSIIndex):
end_date: pd.Timestamp end_date: pd.Timestamp
""" """
logger.info("get new companies......") logger.info("get new companies......")
today = datetime.date.today() today = pd.Timestamp.now().normalize()
bs.login() bs.login()
result = self.get_data_from_baostock(today) result = self.get_data_from_baostock(today.strftime("%Y-%m-%d"))
bs.logout() bs.logout()
df = result[["date", "symbol"]] df = result[["date", "symbol"]]
df.columns = [self.END_DATE_FIELD, self.SYMBOL_FIELD_NAME] df.columns = [self.END_DATE_FIELD, self.SYMBOL_FIELD_NAME]
df[self.END_DATE_FIELD] = pd.to_datetime(df[self.END_DATE_FIELD].astype(str)) df[self.END_DATE_FIELD] = today
df[self.START_DATE_FIELD] = self.bench_start_date df[self.START_DATE_FIELD] = self.bench_start_date
logger.info("end of get new companies.") logger.info("end of get new companies.")
return df return df