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:
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user