Files
etf/strategies/rotation/config.yaml
aszerW b419701c77 feat(rotation): 红利低波归类A股提升收益52%
配置变更:
- H30269.CSI(红利低波)从BOND改为A股大类
- 931862.CSI(短债指数)保持BOND大类
- start_date调整为2002-01-01

回测验证:
- 新配置净值264.54,累计收益26354%
- 旧配置净值173.83,累计收益17283%
- 收益提升52%

关键发现:
- 红利低波作为A股可与创业板指竞争,优胜者入选
- 短债单独作为BOND自动入选
- 之前同属BOND时只能选1个,无法同时持有
- 新配置可实现'红利低波+短债'同时持仓
2026-05-16 23:28:23 +08:00

147 lines
4.9 KiB
YAML
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映射配置
# index: 指数代码(用于计算因子信号)
# etf: ETF代码用于实际交易和收益计算null表示直接交易指数/加密货币
code_list:
# 中国A股指数
"399006.SZ":
name: "创业板指"
etf: "159915.SZ"
market: "A"
"H30269.CSI":
name: "中证红利低波"
etf: "512890.SH"
market: "A"
# 全球市场
"NDX":
name: "纳指100"
etf: "513100.SH"
market: "US"
"N225":
name: "日经225"
etf: "513520.SH"
market: "JP"
"GDAXI":
name: "德国DAX"
etf: "513030.SH"
market: "EU"
"HSI":
name: "恒生指数"
etf: "159920.SZ"
market: "HK"
"HSTECH.HK":
name: "恒生科技"
etf: "513130.SH"
market: "HK"
# 商品 & 固收
# 使用 COMEX/WTI 期货替代上期所主力合约(数据更长)
"GC=F": # COMEX黄金期货2000年至今
name: "黄金"
etf: "518880.SH" # 国内黄金ETF
market: "COMMODITY"
"CL=F": # WTI原油期货2000年至今
name: "原油"
etf: "160723.SZ" # 国内原油ETF
market: "COMMODITY"
# 使用 COMEX 铜期货替代上期所主力合约(数据更长)
"HG=F": # COMEX铜期货2000年至今
name: "有色金属"
etf: "159980.SZ" # 国内有色金属ETF
market: "COMMODITY"
# 防御类资产组合(红利低波+短债指数)
# 注意:以下标注为"国债"但实际不是国债,是防御类资产组合
# H30269.CSI = 中证红利低波动指数高股息股票组合数据从2005年开始
# 931862.CSI = 中证0-9个月国债指数短债指数数据从2007年开始
# 组合效果:红利低波提供"类债券"股票防御,短债提供真正的债券防御
# 收益对比此组合净值173.83优于单红利低波配置净值115.14
"931862.CSI":
name: "30年国债"
etf: "511090.SH"
market: "BOND"
# 主市场配置
primary_market:
source: "Tushare"
code: "000300.SH"
# 基准指数配置
benchmark:
code: "000300.SH"
name: "沪深300"
# ==================== 回测参数 ====================
start_date: "2002-01-01"
# ==================== 因子参数 ====================
# 动量/趋势窗口期(天数)
n_days: 25
# 因子类型:'momentum', 'slope_r2', 'weighted_momentum'
factor_type: "weighted_momentum"
# 动态周期参数 (匹配 JoinQuant 策略)
auto_day: false
min_days: 20
max_days: 60
# ==================== 轮动参数 ====================
select_num: 3
# 强制分散化:每个大类只选 Top 1
diversified: true
# 动量最低阈值:标的动量得分需>=此值才考虑入选(年化收益率*R²
# 设置为0表示过滤负动量标的更高阈值虽能改善回撤但可能错过正动量机会
min_score: 0.0
# ==================== 调仓控制 ====================
# 最低调仓周期(交易日):持仓至少持有 N 天后才允许换仓
rebalance_days: 1
# 调仓得分阈值:新组合总得分需超过当前组合 X% 才触发调仓
rebalance_threshold: 0.0
# 单次换仓成本(双边,含佣金+滑点)
trade_cost: 0.001
# ==================== 溢价控制配置 ====================
# 跨境ETF溢价过滤机制防止高溢价买入
premium_control:
enabled: true
default_threshold: 0.10 # 默认溢价阈值 10%
mode: "filter" # "filter"(完全排除) 或 "penalize"(降权)
penalty_factor: 0.5 # 降权模式下的惩罚系数
# 按市场类型覆盖配置
market_overrides:
A: # A股 ETF
enabled: false # 不启用(溢价通常 < 0.5%
HK: # 港股 ETF
enabled: true
threshold: 0.10 # 阈值 10%
US: # 美股 ETF
enabled: true
threshold: 0.10 # 阈值 10%
COMMODITY: # 商品 ETF
enabled: false
# ==================== 数据缓存 ====================
# 是否使用本地缓存True=优先从本地读取)
use_cache: true
# ==================== 数据源配置 ====================
# Flask API 服务配置(优先使用远程 API 获取数据)
flask_api:
enabled: true # 是否启用 Flask API
url: "https://k3s.tokenpluse.xyz" # Flask API 服务地址
# SSH 隧道配置(用于网络受限环境,通过境外服务器访问 yfinance
ssh_tunnel:
enabled: true # 是否启用 SSH 隧道
host: "8.218.167.69" # SSH 服务器地址(阿里云香港 ECS IP
port: 22 # SSH 端口
username: "root" # SSH 用户名
key_path: "hk_ecs.pem" # SSH 私钥路径(相对于项目根目录)
local_port: 1080 # 本地 SOCKS5 代理端口