Commit aaac4c26 authored by Dr.李's avatar Dr.李

update codes

parent c66e3552
This diff is collapsed.
......@@ -302,7 +302,7 @@ def fd_skdetail(security_ids, trade_dt):
groups = read_sql(query).sort_values("security_code").groupby("pid")
dfs = []
for k, g in groups:
g = g[g.PUBLISHDATE == np.max(g.PUBLISHDATE)]
# g = g[g.PUBLISHDATE == np.max(g.PUBLISHDATE)]
total_value = g.HOLDMKTCAP.sum()
g["weight"] = g.HOLDMKTCAP / total_value
dfs.append(g)
......@@ -423,7 +423,7 @@ def sw_industry_daily(start_date, end_date, level=1, security_ids=None):
sec_id_strs = _join_ids(security_ids)
if sec_id_strs:
query = f"""
SELECT trade_date, security_code, industry_code{level} as industry_code, industry_name{level} as industry_name FROM sw_industry_daily
SELECT trade_date, security_code, industry_code{level} as industry_code, industry_name{level} as industry_name FROM sw_industry_daily_2021
WHERE
trade_date >= '{_to_yyyy_mm_dd(start_date)}' AND
trade_date <= '{_to_yyyy_mm_dd(end_date)}' AND
......@@ -432,7 +432,7 @@ def sw_industry_daily(start_date, end_date, level=1, security_ids=None):
"""
else:
query = f"""
SELECT trade_date, security_code, industry_code{level} as industry_code, industry_name{level} as industry_name FROM sw_industry_daily
SELECT trade_date, security_code, industry_code{level} as industry_code, industry_name{level} as industry_name FROM sw_industry_daily_2021
WHERE
trade_date >= '{_to_yyyy_mm_dd(start_date)}' AND
trade_date <= '{_to_yyyy_mm_dd(end_date)}' AND
......@@ -445,24 +445,26 @@ def stk_return(start_date, end_date, security_ids=None):
sec_id_strs = _join_ids(security_ids)
if sec_id_strs:
query = f"""
SELECT security_code, min(trade_date) as start_date, max(trade_date) as end_date, exp(sum(ln(1.0 + change_pct / 100.))) - 1.0 AS chg_pct FROM stk_daily_price_pro
SELECT security_code, trade_date, `close`, lat_factor FROM stk_daily_price_pro
WHERE
trade_date >= '{_to_yyyy_mm_dd(start_date)}' AND
trade_date <= '{_to_yyyy_mm_dd(end_date)}' AND
trade_date in ('{_to_yyyy_mm_dd(start_date)}', '{_to_yyyy_mm_dd(end_date)}') AND
security_code IN ({sec_id_strs}) AND
flag = 1
GROUP BY security_code;
"""
else:
query = f"""
SELECT security_code, min(trade_date) as start_date, max(trade_date) as end_date, exp(sum(ln(1.0 + change_pct / 100.))) - 1.0 AS chg_pct FROM stk_daily_price_pro
SELECT security_code, trade_date, `close` * lat_factor AS lat_price FROM stk_daily_price_pro
WHERE
trade_date >= '{_to_yyyy_mm_dd(start_date)}' AND
trade_date <= '{_to_yyyy_mm_dd(end_date)}' AND
trade_date in ('{_to_yyyy_mm_dd(start_date)}', '{_to_yyyy_mm_dd(end_date)}') AND
flag = 1
GROUP BY security_code;
"""
return read_sql(query, source="mysql").sort_values("security_code").reset_index(drop=True)
df = read_sql(query, source="mysql").sort_values("security_code")
df["trade_date"] = df["trade_date"].astype(str)
df = df.pivot(index="security_code", columns="trade_date", values="lat_price").dropna()
df.rename(columns={f'{_to_yyyy_mm_dd(start_date)}': "start_date", f'{_to_yyyy_mm_dd(end_date)}': "end_date"}, inplace=True)
df["chg_pct"] = df["end_date"] / df["start_date"] - 1.0
return df.reset_index()
def fd_manager(manager_ids=None, manager_names=None, start_date=None, end_date=None):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment