Files
etf/轮动策略核心逻辑.md
aszerW 4a500ca5bf feat(notify): 支持钉钉多群推送 & 添加轮动策略核心逻辑文档
- settings.py: 新增 get_all_dingtalk_configs() 自动扫描所有钉钉群配置
- notify.py: 新增 send_to_all_groups() 多群推送函数
- daily_scheduler.py: 报告和错误通知改用多群推送
- .env: 添加第二个钉钉群配置 (DINGTALK_WEBHOOK_2/SECRET_2)
- 轮动策略核心逻辑.md: 策略核心逻辑总结文档
2026-04-23 22:58:16 +08:00

5.1 KiB
Raw Blame History

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纳指100159501.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:回归斜率(代表趋势方向与强度)
    • :拟合优度(代表趋势稳定性)
  5. 计算得分score = 10000 × slope ×

得分含义

  • 正值:上升趋势,值越大趋势越强且越稳定
  • 负值:下降趋势
  • 接近0:无明显趋势或趋势不稳定

跨市场数据对齐

  • 基准日历以A股交易日为准
  • 非A股标的数据前向填充ffill到A股交易日
  • T+1规则T日收盘计算信号仅使用T日及之前数据

📦 持仓数量与仓位配置

持仓数量

  • 选中数量5个ETFselect_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个交易日
因子类型 斜率×趋势强度×稳定性
持仓数量 5个ETF
仓位配置 等权各20%
调仓频率 每日评估,无锁定期
调仓条件 新组合得分 > 旧组合得分
交易成本 0.1%(双边)
溢价控制 港股3%、美股2%阈值过滤
基准指数 沪深300000300.SH

💡 核心优势

  1. 跨市场分散:覆盖股票、商品、加密货币,降低单一市场风险
  2. 趋势+稳定性slope_r2因子同时捕捉趋势方向和可靠性
  3. 自动轮动:量化评分,避免主观判断
  4. 溢价保护防止高价买入跨境ETF
  5. 灵活配置所有参数可通过YAML配置文件调整

文档生成时间2026-04-16