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