docs: 将英文文件名重命名为中文

重命名13个英文文档为中文:
- etf_pool_selection.md → ETF候选池筛选报告.md
- etf_tracking_error_calculation.md → ETF跟踪误差计算方法.md
- FLASK_SERVICE_SUMMARY.md → Flask服务总结.md
- flask_api_README.md → Flask_API接口说明.md
- cross_market_effectiveness_survey.md → 跨市场有效性调研.md
- etf_rotation_deep_analysis.md → ETF轮动深度分析.md
- etf_rotation_framework.md → ETF轮动框架.md
- momentum_rotation_survey.md → 动量轮动调研.md
- strategy_evolution_report.md → 策略演进报告.md
- universal_fetcher_*.md → 通用数据源*.md

同时更新文档内部的交叉引用链接
This commit is contained in:
2026-06-20 23:24:04 +08:00
parent a600a71aa3
commit b698857e49
13 changed files with 6 additions and 6 deletions

View File

@@ -0,0 +1,413 @@
# 轮动策略 ETF 候选池筛选报告
**文档版本**: v1.0
**创建日期**: 2026-06-20
**数据来源**: `rotation/results/etf_basic_full.csv`Tushare etf_basic + enrich_etf_data 增强)
---
## 一、筛选目标
`config_simple.yaml` 中每个指数/商品标的,从全市场 A 股场内 ETF 中筛选出跟踪同一底层资产、市值最大的 Top4 ETF 作为候选交易标的池。
---
## 二、筛选方法
### 2.1 数据源
- **基础数据**: Tushare `etf_basic` 接口,共 1601 只场内基金ETF + LOF
- **增强字段**: 通过 `enrich_etf_data.py` 补充基金规模亿份×NAV、日均成交额、最新净值等
- **净值数据**: Tushare `fund_nav` 接口,取 `unit_nav`(单位净值)计算收益率
### 2.2 匹配规则
由于 Tushare 的 `index_code` 字段包含交易所后缀(如 `GDAXI.GY``HSI.HI`),不可直接精确匹配。采用以下策略:
1. **先反查**: 用当前 `trade_source` ETF 反查其在 CSV 中的真实 `index_code``index_name`
2. **精确匹配**: 对 `index_code` 有值的 ETF`index_code` 精确匹配
3. **关键词匹配**: 对 `index_code` 为 NaN 的(如原油 LOF`index_name` 关键词模糊匹配
4. **人工校验**: 排除增强策略型、沪港通型等底层资产不同的 ETF
### 2.3 排序规则
`fund_scale_yi`(基金规模,亿元)降序排列,取 Top4。不足 4 只则按实际数量。
### 2.4 异常排除
| 异常 ETF | 原因 | 替换为 |
|---------|------|--------|
| 159977.SZ 天弘创业板ETF | 增强策略型,与其他纯跟踪 ETF 相关性仅 0.83 | 159957.SZ 华夏创业板ETF |
| 513660.SH 华夏沪港通恒生ETF | 沪港通机制,净值计算方式不同,与其他恒生 ETF 相关性仅 0.27 | 513210.SH 易方达恒生ETF |
---
## 三、各指数筛选过程与原始数据
### 3.1 创业板指 (399006.SZ)
**匹配规则**: `index_code = 399006.SZ`
**候选总数**: 17 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 159915.SZ ★ | 易方达创业板ETF | 448.9 | 567,036 | 0.15% |
| 2 | 159952.SZ | 广发创业板ETF | 87.7 | 59,444 | 0.15% |
| 3 | 159957.SZ | 华夏创业板ETF | 21.5 | 20,636 | 0.15% |
| 4 | 159948.SZ | 南方创业板ETF | 47.6 | 11,196 | 0.15% |
> 注: 原始 Top3 为 159977.SZ天弘创业板ETF因增强策略型排除替换为 159957.SZ
**相关性矩阵** (1568 共同交易日):
| | 159915 | 159952 | 159957 | 159948 |
|---|---|---|---|---|
| **159915** | 1.0000 | 1.0000 | 0.9999 | 1.0000 |
| **159952** | 1.0000 | 1.0000 | 0.9999 | 1.0000 |
| **159957** | 0.9999 | 0.9999 | 1.0000 | 0.9999 |
| **159948** | 1.0000 | 1.0000 | 0.9999 | 1.0000 |
- 平均相关性: **0.9999**
- 最低相关性: 0.9999(广发 vs 华夏)
---
### 3.2 红利低波 (H30269.CSI)
**匹配规则**: `index_code = H30269.CSI`
**候选总数**: 6 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 512890.SH ★ | 华泰柏瑞中证红利低波动ETF | 324.1 | 84,666 | 0.50% |
| 2 | 563020.SH | 易方达中证红利低波动ETF | 111.8 | 29,589 | 0.15% |
| 3 | 159547.SZ | 华夏中证红利低波动ETF | 14.0 | 14,909 | 0.15% |
| 4 | 560150.SH | 红利TK | 7.3 | 1,079 | 0.40% |
**相关性矩阵** (539 共同交易日):
| | 512890 | 563020 | 159547 | 560150 |
|---|---|---|---|---|
| **512890** | 1.0000 | 0.9893 | 0.9965 | 0.9932 |
| **563020** | 0.9893 | 1.0000 | 0.9863 | 0.9838 |
| **159547** | 0.9965 | 0.9863 | 1.0000 | 0.9908 |
| **560150** | 0.9932 | 0.9838 | 0.9908 | 1.0000 |
- 平均相关性: **0.9900**
- 最低相关性: 0.9838(易方达 vs 红利TK
---
### 3.3 黄金 (Au99.99.SGE / SHAU.SGE)
**匹配规则**: `index_code IN (Au99.99.SGE, SHAU.SGE)`
**候选总数**: 14 只Au99.99 基准 7 只 + SHAU 基准 7 只)
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 | 基准 |
|------|------|------|---------|------------|------|------|
| 1 | 518880.SH ★ | 华安黄金ETF | 965.5 | 322,467 | 0.50% | Au99.99 |
| 2 | 159937.SZ | 博时黄金ETF | 433.6 | 74,446 | 0.50% | Au99.99 |
| 3 | 159934.SZ | 易方达黄金ETF | 367.9 | 89,130 | 0.50% | Au99.99 |
| 4 | 518800.SH | 国泰黄金ETF | 353.6 | 55,747 | 0.50% | Au99.99 |
**相关性矩阵** (1568 共同交易日):
| | 518880 | 159937 | 159934 | 518800 |
|---|---|---|---|---|
| **518880** | 1.0000 | 0.9999 | 0.9920 | 0.9899 |
| **159937** | 0.9999 | 1.0000 | 0.9920 | 0.9899 |
| **159934** | 0.9920 | 0.9920 | 1.0000 | 0.9821 |
| **518800** | 0.9899 | 0.9899 | 0.9821 | 1.0000 |
- 平均相关性: **0.9910**
- 最低相关性: 0.9821(易方达 vs 国泰)
---
### 3.4 德国DAX (GDAXI.GY)
**匹配规则**: `index_code = GDAXI.GY`
**候选总数**: 2 只(全市场仅此 2 只跟踪 DAX
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 159561.SZ | 嘉实德国DAXETF(QDII) | 20.9 | 12,446 | 0.50% |
| 2 | 513030.SH ★ | 华安德国(DAX)ETF | 18.3 | 8,875 | 0.80% |
**相关性矩阵** (522 共同交易日):
| | 159561 | 513030 |
|---|---|---|
| **159561** | 1.0000 | 0.9947 |
| **513030** | 0.9947 | 1.0000 |
- 平均相关性: **0.9947**
---
### 3.5 有色金属 (IMCI.SHF)
**匹配规则**: `index_code = IMCI.SHF`
**候选总数**: 1 只(全市场仅此 1 只跟踪有色金属期货价格指数)
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 159980.SZ ★ | 大成有色金属期货ETF | 61.0 | 46,989 | 0.60% |
> 注: 其余有色金属 ETF 跟踪的是股票指数(如中证有色金属矿业/工业主题),底层资产不同,不纳入候选。
---
### 3.6 恒生指数 (HSI.HI)
**匹配规则**: `index_code = HSI.HI`
**候选总数**: 5 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 159920.SZ ★ | 华夏恒生ETF | 93.3 | 33,200 | 0.60% |
| 2 | 513600.SH | 南方恒生指数ETF | 17.1 | 10,292 | 0.50% |
| 3 | 159271.SZ | 鹏华恒生ETF | 2.3 | 520 | 0.50% |
| 4 | 513210.SH | 易方达恒生ETF(QDII) | 0.6 | 732 | 0.50% |
> 注: 原始 Top2 为 513660.SH华夏沪港通恒生ETF因沪港通机制排除替换为 513210.SH
**相关性矩阵** (209 共同交易日):
| | 159920 | 513600 | 159271 | 513210 |
|---|---|---|---|---|
| **159920** | 1.0000 | 0.9988 | 0.9941 | 1.0000 |
| **513600** | 0.9988 | 1.0000 | 0.9952 | 0.9989 |
| **159271** | 0.9941 | 0.9952 | 1.0000 | 0.9942 |
| **513210** | 1.0000 | 0.9989 | 0.9942 | 1.0000 |
- 平均相关性: **0.9969**
- 最低相关性: 0.9941(华夏 vs 鹏华)
---
### 3.7 恒生科技 (HSTECH.HI)
**匹配规则**: `index_code = HSTECH.HI`
**候选总数**: 13 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 513180.SH | 华夏恒生科技ETF(QDII) | 444.0 | 341,088 | 0.50% |
| 2 | 513130.SH ★ | 华泰柏瑞恒生科技ETF(QDII) | 392.9 | 384,592 | 0.20% |
| 3 | 513010.SH | 易方达恒生科技ETF(QDII) | 282.9 | 128,761 | 0.20% |
| 4 | 159740.SZ | 大成恒生科技ETF(QDII) | 171.9 | 134,470 | 0.50% |
**相关性矩阵** (1231 共同交易日):
| | 513180 | 513130 | 513010 | 159740 |
|---|---|---|---|---|
| **513180** | 1.0000 | 0.9953 | 0.9999 | 0.9998 |
| **513130** | 0.9953 | 1.0000 | 0.9953 | 0.9953 |
| **513010** | 0.9999 | 0.9953 | 1.0000 | 0.9998 |
| **159740** | 0.9998 | 0.9953 | 0.9998 | 1.0000 |
- 平均相关性: **0.9976**
- 最低相关性: 0.9953(华泰柏瑞 vs 易方达/大成)
---
### 3.8 日经225 (N225.JT)
**匹配规则**: `index_code = N225.JT`
**候选总数**: 4 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 513880.SH | 华安日经225ETF | 27.9 | 47,208 | 0.20% |
| 2 | 513520.SH ★ | 华夏野村日经225ETF | 24.7 | 55,341 | 0.20% |
| 3 | 513000.SH | 易方达奥明日经225ETF(QDII) | 23.1 | 29,234 | 0.20% |
| 4 | 159866.SZ | 日经ETF工银 | 13.5 | 33,442 | 0.20% |
**相关性矩阵** (1268 共同交易日):
| | 513880 | 513520 | 513000 | 159866 |
|---|---|---|---|---|
| **513880** | 1.0000 | 0.9336 | 0.9850 | 0.9915 |
| **513520** | 0.9336 | 1.0000 | 0.9442 | 0.9384 |
| **513000** | 0.9850 | 0.9442 | 1.0000 | 0.9873 |
| **159866** | 0.9915 | 0.9384 | 0.9873 | 1.0000 |
- 平均相关性: **0.9634**
- 最低相关性: 0.9336(华安 vs 华夏)
- 说明: 华安日经225使用野村指数版本华夏使用野村另一版本两者在净值披露时点上略有差异
---
### 3.9 纳指100 (NDX.NASDAQ)
**匹配规则**: `index_code = NDX.NASDAQ`
**候选总数**: 12 只
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 |
|------|------|------|---------|------------|------|
| 1 | 159941.SZ | 广发纳指100ETF | 339.8 | 251,747 | 0.80% |
| 2 | 513100.SH ★ | 国泰纳斯达克100(QDII-ETF) | 190.9 | 116,472 | 0.60% |
| 3 | 513300.SH | 华夏纳斯达克100ETF(QDII) | 129.6 | 88,050 | 0.60% |
| 4 | 159501.SZ | 嘉实纳斯达克100ETF(QDII) | 120.1 | 25,504 | 0.50% |
**相关性矩阵** (736 共同交易日):
| | 159941 | 513100 | 513300 | 159501 |
|---|---|---|---|---|
| **159941** | 1.0000 | 0.9996 | 0.9891 | 0.9976 |
| **513100** | 0.9996 | 1.0000 | 0.9889 | 0.9975 |
| **513300** | 0.9891 | 0.9889 | 1.0000 | 0.9870 |
| **159501** | 0.9976 | 0.9975 | 0.9870 | 1.0000 |
- 平均相关性: **0.9933**
- 最低相关性: 0.9870(华夏 vs 嘉实)
---
### 3.10 原油 (CL=F → WTI 原油价格)
**匹配规则**: `index_name` 包含 `WTI原油价格` / `BRENT原油` / `标普高盛原油商品` / `原油价格收益率`
**候选总数**: 3 只(全市场仅 3 只跟踪原油商品价格的 LOF
**Top4 选取**:
| 排名 | 代码 | 名称 | 规模(亿) | 日均成交(万) | 费率 | 跟踪基准 |
|------|------|------|---------|------------|------|---------|
| 1 | 160723.SZ ★ | 嘉实原油(QDII-LOF-FOF) | 14.8 | 70,634 | 1.00% | WTI×100% |
| 2 | 161129.SZ | 易方达原油(QDII-LOF-FOF) | 7.18 | 58,148 | 1.00% | 标普高盛原油×100% |
| 3 | 501018.SH | 南方原油(QDII-LOF-FOF) | 13.36 | 70,781 | 1.00% | WTI×60%+BRENT×40% |
> 注: 其余 17 只石油天然气 ETF 跟踪的是石油公司股票指数(非商品价格),不纳入候选。
**相关性矩阵** (1567 共同交易日):
| | 160723 | 161129 | 501018 |
|---|---|---|---|
| **160723** | 1.0000 | 0.9572 | 0.9581 |
| **161129** | 0.9572 | 1.0000 | 0.9802 |
| **501018** | 0.9581 | 0.9802 | 1.0000 |
- 平均相关性: **0.9651**
- 最低相关性: 0.9572(嘉实 vs 易方达)
- 三者的年化 TE两两之间: 6.67%~9.64%,全区间累计收益差约 20%
**石油天然气股票型 ETF 排除分析**
全市场另有 17 只石油天然气相关 ETF/LOF但它们跟踪的是石油天然气**公司股票指数**(非商品价格),与 WTI 原油价格的相关性远低于商品价格型 LOF。
以 160723.SZ嘉实原油/WTI净值为基准与 17 只石油股票型 ETF 计算相关性:
| 排名 | 代码 | 名称 | 相关系数 | R² | 累计收益 |
|------|------|------|---------|-----|----------|
| 1 | 160416.SZ | 华安标普全球石油LOF | 0.6321 | 0.400 | +89.5% |
| 2 | 162719.SZ | 广发道琼斯美国石油LOF | 0.5579 | 0.311 | +165.0% |
| 3 | 159518.SZ | 嘉实标普石油天然气QDII | 0.5550 | 0.308 | +5.1% |
| 4 | 513350.SH | 富国标普石油天然气QDII | 0.5527 | 0.306 | +10.3% |
| 5 | 162411.SZ | 华宝标普石油天然气上游LOF | 0.5430 | 0.295 | +99.7% |
| 6 | 159588.SZ | 景顺石油天然气ETF | 0.3971 | 0.158 | +21.4% |
| 7-13 | 其余 7 只 | 国证石油天然气系列ETF | 0.20~0.38 | 0.04~0.14 | -14%~+29% |
**对照:商品价格型 LOF**
| 代码 | 名称 | 相关系数 | R² | 累计收益 |
|------|------|---------|-----|----------|
| 161129.SZ | 易方达原油 | **0.9572** | **0.916** | +28.3% |
| 501018.SH | 南方原油 | **0.9581** | **0.918** | +35.1% |
**排除决策依据**
1. **相关性断崖式下降**:商品价格型 R²=0.92,股票型最高仅 R²=0.40,差距 2.3 倍
2. **累计收益严重偏离**WTI 累计 +48%,石油股票型从 -14% 到 +165% 不等,完全不可互换
3. **底层资产本质不同**:石油股票受公司基本面、分红、管理层等因素影响,与原油价格的联动远不如期货合约直接
**结论**:当前 3 只商品价格型 LOF160723/161129/501018已是原油方向的最优选择无需补充石油股票型 ETF。
---
## 四、汇总
### 4.1 各指数组内相关性总览
| 指数 | ETF数 | 共同天数 | 平均相关 | 最低相关 | 最高相关 | 状态 |
|------|-------|---------|---------|---------|---------|------|
| 创业板指 | 4 | 1568 | 0.9999 | 0.9999 | 1.0000 | ✓ |
| 红利低波 | 4 | 539 | 0.9900 | 0.9838 | 0.9965 | ✓ |
| 黄金 | 4 | 1568 | 0.9910 | 0.9821 | 0.9999 | ✓ |
| 德国DAX | 2 | 522 | 0.9947 | 0.9947 | 0.9947 | ✓ |
| 有色金属 | 1 | — | — | — | — | 仅1只 |
| 恒生指数 | 4 | 209 | 0.9969 | 0.9941 | 1.0000 | ✓ |
| 恒生科技 | 4 | 1231 | 0.9976 | 0.9953 | 0.9999 | ✓ |
| 日经225 | 4 | 1268 | 0.9634 | 0.9336 | 0.9915 | ⚠ |
| 纳指100 | 4 | 736 | 0.9933 | 0.9870 | 0.9996 | ✓ |
| 原油 | 3 | 1567 | 0.9651 | 0.9572 | 0.9802 | ✓ |
### 4.2 最终候选池
| 指数 | 当前ETF | 候选池 |
|------|---------|--------|
| 创业板指 | 159915.SZ | 159915.SZ, 159952.SZ, 159957.SZ, 159948.SZ |
| 红利低波 | 512890.SH | 512890.SH, 563020.SH, 159547.SZ, 560150.SH |
| 黄金 | 518880.SH | 518880.SH, 159937.SZ, 159934.SZ, 518800.SH |
| 德国DAX | 513030.SH | 159561.SZ, 513030.SH |
| 有色金属 | 159980.SZ | 159980.SZ |
| 恒生指数 | 159920.SZ | 159920.SZ, 513600.SH, 159271.SZ, 513210.SH |
| 恒生科技 | 513130.SH | 513180.SH, 513130.SH, 513010.SH, 159740.SZ |
| 日经225 | 513520.SH | 513880.SH, 513520.SH, 513000.SH, 159866.SZ |
| 纳指100 | 513100.SH | 159941.SZ, 513100.SH, 513300.SH, 159501.SZ |
| 原油 | 160723.SZ | 160723.SZ, 161129.SZ, 501018.SH |
---
## 五、关键决策记录
### 5.1 原油只选商品价格型,不选石油股票型
全市场有 20+ 只石油天然气相关 ETF/LOF但底层资产完全不同
- **商品价格型**3 只): 直接投资 WTI/BRENT 原油期货合约
- **石油股票型**17 只): 投资石油天然气上市公司股票
配置中 `CL=F` 对应 WTI 原油期货价格,因此只纳入商品价格型的 3 只。
### 5.2 有色金属只有 1 只候选
全市场跟踪有色金属期货价格指数IMCI.SHF的 ETF 仅 `159980.SZ` 一只。其余 23 只跟踪的是有色金属股票指数(如中证有色金属矿业/工业/细分主题),底层资产是股票而非期货,不纳入。
### 5.3 德国DAX 只有 2 只候选
全市场跟踪 DAX 指数的 ETF 仅 2 只,无其他欧洲宽基可替代(法国 CAC40 是不同指数)。
### 5.4 排除增强策略型 ETF
159977.SZ天弘创业板ETF是增强策略型与其他纯被动跟踪 ETF 的相关性仅 0.83,替换为 159957.SZ华夏创业板ETF纯被动型
### 5.5 排除沪港通型 ETF
513660.SH华夏沪港通恒生ETF通过沪港通机制投资净值计算方式与直接投资的恒生 ETF 完全不同,与其他恒生 ETF 相关性仅 0.27,替换为 513210.SH易方达恒生ETF
---
## 六、复现方法
```bash
# 数据源
rotation/results/etf_basic_full.csv
# 筛选脚本(交互式)
/Users/aszer/miniforge3/envs/qa/bin/python3
# 关键步骤:
# 1. 用 trade_source ETF 反查 index_code含交易所后缀
# 2. 按 index_code 精确匹配 + index_name 关键词匹配
# 3. 按 fund_scale_yi 降序取 Top4
# 4. 排除增强策略型、沪港通型等异常 ETF
# 5. 用 fund_nav 获取 unit_nav计算日收益率生成相关性矩阵
```