This commit is contained in:
etoai 2026-05-19 11:58:40 +08:00
parent 9bcb8a2b9b
commit ea6bf18767
2 changed files with 8 additions and 8 deletions

File diff suppressed because one or more lines are too long

View File

@ -374,27 +374,27 @@ def _do_fetch_data():
how="left"
)
# 3.5 非交易时段处理API 返回的最新价/涨跌幅为无效值
# 用昨收(昨日收盘价)代替最新价,确保溢价率等数据可正常显示
# 3.5 昨日溢价率用昨收计算(固定不变),实时溢价率用当前价
df["最新价"] = pd.to_numeric(df["最新价"], errors="coerce")
df["昨收"] = pd.to_numeric(df["昨收"], errors="coerce")
mask_invalid = df["最新价"].isna() | (df["最新价"] == 0)
if mask_invalid.any():
df.loc[mask_invalid, "最新价"] = df.loc[mask_invalid, "昨收"]
df.loc[mask_invalid, "涨跌幅"] = 0
has_current_price = df["最新价"].notna() & (df["最新价"] != 0)
# 4. 计算溢价率
# 昨日溢价率 = (昨收 - 最新净值) / 最新净值 —— 固定不变
df["溢价率"] = (
(df["最新价"] - df["最新净值/万份收益"])
(df["昨收"] - df["最新净值/万份收益"])
/ df["最新净值/万份收益"]
* 100
).round(2)
# 实时溢价率 = (当前价 - 估算净值) / 估算净值 —— 非交易时段无效
df["估算溢价率"] = (
(df["最新价"] - df["估算净值"])
/ df["估算净值"]
* 100
).round(2)
# 当前价无效时实时溢价率也无效
df.loc[~has_current_price, "估算溢价率"] = None
# 5. 按基金规模拆分大基金≥3000万优先返回小基金后台缓存
LARGE_FUND_THRESHOLD = 30000000