fix(tushare): 修复ETF复权qfq支持和溢价率获取

- 移除fetch()方法中ETF复权路由的qfq硬编码限制
- 修改ETF复权调用从fetch_etf_adj改为fetch_etf
- 确保qfq/hfq模式也能获取净值和溢价率数据
- 溢价率始终基于原始价格计算,不受复权影响

修复前:
- qfq返回404错误
- hfq无溢价率数据

修复后:
- raw/qfq/hfq三种模式均正常
- 所有模式都返回溢价率数据
- 本地测试全部通过
This commit is contained in:
2026-05-25 20:25:29 +08:00
parent c0195c5bca
commit c79cde5d7f

View File

@@ -300,12 +300,9 @@ class TushareSource:
# A股股票复权 # A股股票复权
if self.is_china_stock(code): if self.is_china_stock(code):
return self.fetch_stock_adj(code, start_date, end_date, adj) return self.fetch_stock_adj(code, start_date, end_date, adj)
# A股 ETF 支持 hfq # A股 ETF 支持 qfq 和 hfq使用 fetch_etf 包含净值和溢价率)
elif self._is_etf_code(code): elif self._is_etf_code(code):
if adj == 'hfq': return self.fetch_etf(code, start_date, end_date, adj)
return self.fetch_etf_adj(code, start_date, end_date)
else:
raise ValueError(f"ETF 仅支持 adj='hfq'(后复权),当前: {adj}")
else: else:
# 指数/期货不支持复权 # 指数/期货不支持复权
raise ValueError(f"指数/期货不支持复权adj='{adj}' 仅适用于股票/ETF") raise ValueError(f"指数/期货不支持复权adj='{adj}' 仅适用于股票/ETF")