feat: ETF复权功能扩展至支持前复权qfq
核心变更:
- TushareSource: _fetch_etf_adj() 支持 qfq 和 hfq 双模式
* 后复权(hfq): close × adj_factor
* 前复权(qfq): close × adj_factor / latest_factor
- UniversalDataFetcher: VALID_ADJ_BY_TYPE 更新
* CHINA_ETF: ['raw', 'hfq'] → ['raw', 'qfq', 'hfq']
复权公式验证:
- 纳指ETF(513100.SH): HFQ / QFQ = latest_factor (5.0020) ✅
- 5/5 个交易日全部通过验证
技术实现:
- fetch_etf_adj(): 公共接口支持 adj='qfq' 或 'hfq'
- _fetch_etf_adj(): 内部实现根据 adj 参数分支计算
- 前复权使用全量最新复权因子确保准确性
This commit is contained in:
@@ -171,7 +171,7 @@ class UniversalDataFetcher:
|
||||
# 各资产类型支持的 adj 参数
|
||||
VALID_ADJ_BY_TYPE = {
|
||||
AssetType.CHINA_INDEX: ['raw'], # 指数无复权
|
||||
AssetType.CHINA_ETF: ['raw', 'hfq'], # ETF 仅支持后复权
|
||||
AssetType.CHINA_ETF: ['raw', 'qfq', 'hfq'], # ETF 支持前复权/后复权
|
||||
AssetType.CHINA_STOCK: ['raw', 'qfq', 'hfq'],
|
||||
AssetType.US_INDEX: ['raw'], # 指数无复权
|
||||
AssetType.US_STOCK: ['raw', 'qfq', 'hfq'],
|
||||
|
||||
Reference in New Issue
Block a user