讨论背景: - 159980.SZ(有色ETF)是商品型基金,跟踪上期所有色金属期货价格指数 - 应使用期货价格(CU.SHF沪铜)作为信号源,与黄金(AU.SHF)/原油(CL.NYM)保持一致 - 上证红利(000015.SH)与中证红利低波(H30269.CSI)高度相关,同属A股大类 在diversified模式下只能选1个,保留两个无实际意义 配置变更: - rotation.yaml: 新增CU.SHF→159980.SZ映射(market=COMMODITY) - rotation.yaml: 移除000015.SH上证红利(与红利低波冗余) - hybrid_source.py: FUTURES_CODE_MAP新增CU.SHF铜期货 - ab_test_iterations.py: 同步更新有色market为COMMODITY 实证结果 - CU.SHF加入前后对比(11只池,2019-2026): 无CU(11只): CAGR=47.37%, Sharpe=2.25, MaxDD=-17.86%, Calmar=2.65 含CU(12只): CAGR=46.16%, Sharpe=2.21, MaxDD=-17.86%, Calmar=2.58 影响: CAGR-1.2%, 商品大类内部竞争加剧(黄金/原油/有色三选一) 2020/2022铜价暴涨时有色贡献额外收益,整体影响很小 实证结果 - 移除上证红利后(11只,2019-2026): 含上证红利: CAGR=46.16%, Sharpe=2.21, MaxDD=-17.86%, Calmar=2.58 移除后: CAGR=46.42%, Sharpe=2.22, MaxDD=-17.33%, Calmar=2.68 所有指标均改善,消除冗余标的提升选择效率 实证结果 - diversified=true vs false(11只,select_num=3): true(跨类分散): CAGR=46.45%, Sharpe=2.22, MaxDD=-17.33%, Calmar=2.68 false(纯Top3): CAGR=44.19%, Sharpe=2.13, MaxDD=-18.12%, Calmar=2.44 关键差异在2022年(+17.63%): false模式选3只商品同时回调 结论: diversified=true全面优于false,保持当前配置 最终候选池(11只,7大类): A股: 创业板(399006.SZ), 红利低波(H30269.CSI) 美股: 纳指100(NDX) | 日本: 日经225(N225) | 欧洲: 德国DAX(GDAXI) 港股: 恒生指数(HSI), 恒生科技(HSTECH.HK) 商品: 黄金(AU.SHF), 原油(CL.NYM), 有色金属(CU.SHF) 固收: 30年国债(931862.CSI)
129 lines
3.6 KiB
YAML
129 lines
3.6 KiB
YAML
# 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"
|
||
|
||
# 商品 & 固收
|
||
"AU.SHF":
|
||
name: "黄金"
|
||
etf: "518880.SH"
|
||
market: "COMMODITY"
|
||
"CL.NYM":
|
||
name: "原油"
|
||
etf: "160723.SZ"
|
||
market: "COMMODITY"
|
||
"CU.SHF":
|
||
name: "有色金属"
|
||
etf: "159980.SZ"
|
||
market: "COMMODITY"
|
||
"931862.CSI":
|
||
name: "30年国债"
|
||
etf: "511090.SH"
|
||
market: "BOND"
|
||
|
||
# 主市场配置
|
||
primary_market:
|
||
source: "Tushare"
|
||
code: "000300.SH"
|
||
|
||
# 基准指数配置
|
||
benchmark:
|
||
code: "000300.SH"
|
||
name: "沪深300"
|
||
|
||
# ==================== 回测参数 ====================
|
||
start_date: "2019-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
|
||
|
||
# ==================== 调仓控制 ====================
|
||
# 最低调仓周期(交易日):持仓至少持有 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
|
||
|
||
# ==================== 数据源配置 ====================
|
||
# 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 代理端口
|