Files
etf/docs/轮动策略核心逻辑.md
aszerW 4df3ac4e31 chore(docs): reorganize documentation files into docs/ folder
Moved markdown documentation from root to docs/ directory to improve project structure.
2026-04-30 01:06:25 +08:00

161 lines
5.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ETF轮动策略核心逻辑总结
## 📊 策略概览
基于**多因子动量**的跨市场ETF轮动策略通过量化评分自动选择表现最优的ETF组合进行投资。
---
## 🎯 候选池配置
### 覆盖市场
- **A股**17个指数
- 宽基沪深300(000300.SH)、中证500(000905.SH)、中证1000(000852.SH)、创业板指(399006.SZ)、上证红利(000015.SH)
- 金融:中证银行(399986.SZ)
- 消费:中证白酒(399997.SZ)
- 医药:中证医疗(399989.SZ)
- 科技:中证信息(000935.SH)
- 新能源:新能源车(399976.SZ)
- 周期资源:国证有色(399395.SZ)、中证煤炭(399998.SZ)、细分化工(399813.SZ)、中证能源(000937.SH)
- 其他:中证军工(399967.SZ)、中证农业(000949.SH)、国债指数(399702.SZ)
- **港股**1个恒生科技(HSTECH.HK)
- **美股**1个纳指100(NDX)
- **商品**1个黄金(AU.SHF)
- **加密货币**2个BTC、ETH
### 指数-ETF映射
每个指数对应一个可交易的ETF或直接交易例如
- `000300.SH`沪深300指数`510300.SH`华泰柏瑞沪深300ETF
- `NDX`纳指100`159501.SZ`嘉实纳指100ETF
- `BTC`(比特币) → 无ETF直接交易
**总计22个候选标的**
---
## ⏱️ 回看周期与调仓周期
### 回看周期
- **窗口长度**25个交易日
- **因子类型**`slope_r2`斜率×R²趋势得分
- 对过去25日价格进行线性回归
- 得分 = 斜率 ×× 10000
- 同时考虑趋势强度和稳定性
### 调仓周期
- **最低持有期**1天`rebalance_days = 1`
- **调仓阈值**0%`rebalance_threshold = 0.0`
- 新组合总得分 > 当前组合总得分时即触发调仓
- **交易成本**0.1%(双边,含佣金+滑点)
**实际运行**:每个交易日评估是否调仓,无强制锁定期
---
## 🧮 得分计算逻辑
### 核心公式
```
得分 = 斜率(slope) ×× 10000
```
### 计算步骤
1. **数据获取**获取每个标的过去25+日的收盘价
2. **价格归一化**:将价格序列除以起始价格(消除绝对价格影响)
3. **线性回归**:对归一化价格进行一元线性回归
- `x = [1, 2, 3, ..., 25]`
- `y = 归一化价格序列`
4. **提取指标**
- `slope`:回归斜率(代表趋势方向与强度)
- `R²`:拟合优度(代表趋势稳定性)
5. **计算得分**`score = 10000 × slope × R²`
### 得分含义
- **正值**:上升趋势,值越大趋势越强且越稳定
- **负值**:下降趋势
- **接近0**:无明显趋势或趋势不稳定
### 跨市场数据对齐
- **基准日历**以A股交易日为准
- **非A股标的**数据前向填充ffill到A股交易日
- **T+1规则**T日收盘计算信号仅使用T日及之前数据
---
## 📦 持仓数量与仓位配置
### 持仓数量
- **选中数量**5个ETF`select_num = 5`
- 每日从22个候选标的中选出得分最高的5个
### 仓位配置
- **等权分配**每个选中标的占总仓位的20%1/5
- **日收益率计算**`组合日收益 = mean(5个标的的日收益率)`
### 换仓逻辑
1. 每日计算所有标的的最新得分
2. 选出Top 5构成"目标组合"
3. 对比"目标组合"与"当前持仓组合"的总得分
4.`目标总得分 > 当前总得分`,则触发调仓
5. 调仓时卖出旧标的,等权买入新标的
---
## 🛡️ 溢价率控制跨境ETF
### 控制机制
- **A股ETF**:不启用(溢价通常 < 0.5%
- **港股ETF**阈值3%超过则排除
- **美股ETF**阈值2%超过则排除
- **商品ETF**不启用
### 处理模式
- **filter模式**溢价超阈值的标的直接从候选池排除
- **penalty模式**可选对高溢价标的得分乘以惩罚系数0.5
---
## 📅 运行时间安排
### 信号生成时间
- **运行时间**T+1日上午9:00北京时间
- **数据基准**基于T日前一交易日收盘数据
- **原因**美股和加密货币数据在T+1日凌晨才可用
### 数据源
- **A股**Tushare
- **港股/美股/商品**YFinance
- **加密货币**CCXT/OKX通过SSH隧道访问
---
## 📈 策略特点总结
| 维度 | 配置 |
|------|------|
| **策略类型** | 动量轮动趋势跟踪 |
| **候选池** | 22个标的A股/港股/美股/商品/加密货币 |
| **回看周期** | 25个交易日 |
| **因子类型** | 斜率×R²(趋势强度×稳定性 |
| **持仓数量** | 5个ETF |
| **仓位配置** | 等权各20% |
| **调仓频率** | 每日评估无锁定期 |
| **调仓条件** | 新组合得分 > 旧组合得分 |
| **交易成本** | 0.1%(双边) |
| **溢价控制** | 港股3%、美股2%阈值过滤 |
| **基准指数** | 沪深300000300.SH |
---
## 💡 核心优势
1. **跨市场分散**:覆盖股票、商品、加密货币,降低单一市场风险
2. **趋势+稳定性**slope_r2因子同时捕捉趋势方向和可靠性
3. **自动轮动**:量化评分,避免主观判断
4. **溢价保护**防止高价买入跨境ETF
5. **灵活配置**所有参数可通过YAML配置文件调整
---
*文档生成时间2026-04-16*