From 50b5f09d84cd08df2f0e9721e8db882d26b3bf00 Mon Sep 17 00:00:00 2001 From: aszerW Date: Sat, 23 May 2026 22:21:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20ETF=E5=A7=8B=E7=BB=88=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E5=87=80=E5=80=BC=E5=92=8C=E6=BA=A2=E4=BB=B7=E7=8E=87=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=88=E4=B8=8Eadj=E6=97=A0=E5=85=B3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改原因: - 净值是客观数据,不存在复权概念 - 溢价率 = (原始价格 - 净值) / 净值,与用户请求的 adj 无关 - 用户请求 adj='hfq' 时也需要查看溢价率数据 变更内容: - 移除 'adj == raw' 限制条件 - 所有 ETF 请求都附加净值和溢价率数据 - 更新 API 文档说明 - 溢价率始终基于原始价格计算 --- datasource/flask_server.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/datasource/flask_server.py b/datasource/flask_server.py index abcd70c..3c194ee 100644 --- a/datasource/flask_server.py +++ b/datasource/flask_server.py @@ -610,6 +610,11 @@ def get_ohlcv(): - 15m: 15分钟线 - 1m: 分钟线 nocache: 是否跳过缓存 (optional, 默认false) + + 特殊说明: + - 中国ETF (china_etf) 始终返回净值和溢价率数据 + - 净值和溢价率为客观数据,与 adj 参数无关 + - 溢价率始终基于原始价格计算,不受复权影响 """ code = request.args.get('code', '').strip() start = request.args.get('start', '').strip() @@ -708,11 +713,12 @@ def get_ohlcv(): result['asset_type'] = final_type.value # 使用最终类型 result['adj'] = adj # 返回使用的 adj 参数 - # 如果是中国 ETF 且 adj=raw,自动附加净值和溢价率数据 - if final_type == AssetType.CHINA_ETF and adj == 'raw': + # 如果是中国 ETF,始终附加净值和溢价率数据(与 adj 无关) + if final_type == AssetType.CHINA_ETF: try: f = get_fetcher() with f: + # 注意:始终使用原始价格计算溢价率(净值无复权概念) price_df, nav_df, premium_series = f.fetch_etf_with_nav(code, start, end) # 添加净值数据