Files
etf/config/strategies/rotation.yaml
aszerW e6898a851c feat(config): 优化ETF轮动策略配置
- 将候选池指数列表升级为包含名称、对应ETF代码及市场的详细映射结构
- 支持多市场ETF映射,包括A股、港股、美股、商品及加密货币市场
- 新增主市场配置及跨境ETF溢价控制机制,防止高溢价买入
- 溢价控制支持启用开关、不同市场阈值及降权模式
- 明确交易成本、缓存使用及交易日历设置,增强策略灵活性和稳定性
2026-03-25 22:01:22 +08:00

176 lines
5.2 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股指数 (使用 Tushare) - 主市场,交易日基准
# 宽基指数
"000300.SH":
name: "沪深300"
etf: "510300.SH" # 华泰柏瑞沪深300ETF
market: "A"
"000905.SH":
name: "中证500"
etf: "510500.SH" # 南方中证500ETF
market: "A"
"000852.SH":
name: "中证1000"
etf: "512100.SH" # 南方中证1000ETF
market: "A"
"399006.SZ":
name: "创业板指"
etf: "159915.SZ" # 易方达创业板ETF
market: "A"
"000015.SH":
name: "上证红利"
etf: "510880.SH" # 华泰柏瑞红利ETF
market: "A"
# 金融
"399986.SZ":
name: "中证银行"
etf: "512800.SH" # 华宝银行ETF
market: "A"
# 消费
"399997.SZ":
name: "中证白酒"
etf: "512690.SH" # 鹏华酒ETF
market: "A"
# 医药健康
"399989.SZ":
name: "中证医疗"
etf: "512170.SH" # 华宝医疗ETF
market: "A"
# 科技信息
"000935.SH":
name: "中证信息"
etf: "512330.SH" # 南方信息ETF
market: "A"
# 新能源
"399976.SZ":
name: "新能源车"
etf: "515030.SH" # 华夏新能源ETF
market: "A"
# 周期资源
"399395.SZ":
name: "国证有色"
etf: "159880.SZ" # 有色ETF
market: "A"
"399998.SZ":
name: "中证煤炭"
etf: "515220.SH" # 煤炭ETF
market: "A"
"399813.SZ":
name: "细分化工"
etf: "516120.SH" # 化工ETF
market: "A"
"000937.SH":
name: "中证能源"
etf: "159930.SZ" # 能源ETF
market: "A"
# 其他行业
"399967.SZ":
name: "中证军工"
etf: "512660.SH" # 军工ETF
market: "A"
"000949.SH":
name: "中证农业"
etf: "159825.SZ" # 农业ETF
market: "A"
"399702.SZ":
name: "国债指数"
etf: "511010.SH" # 国债ETF
market: "A"
# 全球市场指数 (使用 YFinance) - 非主市场数据会前向填充到A股交易日
"HSTECH":
name: "恒生科技"
etf: "513180.SH" # 华夏恒生科技ETF
market: "HK"
"NDX":
name: "纳指100"
etf: "159501.SZ" # 嘉实纳指100ETF流动性好
market: "US"
"GC=F":
name: "黄金"
etf: "518880.SH" # 华安黄金ETF
market: "COMMODITY"
# 加密货币 (使用 CCXT/OKX 现货) - 通过 SSH->HTTP 代理访问
"BTC":
name: "比特币"
etf: null # 无ETF直接交易
market: "CRYPTO"
"ETH":
name: "以太坊"
etf: null # 无ETF直接交易
market: "CRYPTO"
# 主市场配置(用于确定交易日历)
primary_market:
source: "Tushare" # 以A股交易日为基准
code: "000300.SH" # 基准指数
# 基准指数配置
benchmark:
code: "000300.SH" # 中国A股指数使用 Tushare 格式
name: "沪深300指数"
# ==================== 回测参数 ====================
start_date: "2020-01-01"
# end_date: "2025-03-17"
# ==================== 因子参数 ====================
# 动量/趋势窗口期(天数)
n_days: 25
# 因子类型:'momentum'N日涨幅或 'slope_r2'斜率×
factor_type: "slope_r2"
# ==================== 轮动参数 ====================
# 每次轮动选中的ETF数量1=全仓单一品种)
select_num: 5
# ==================== 调仓控制 ====================
# 最低调仓周期(交易日):持仓至少持有 N 天后才允许换仓
rebalance_days: 1
# 调仓得分阈值:新组合总得分需超过当前组合 X% 才触发调仓
rebalance_threshold: 0.0
# 单次换仓成本(双边,含佣金+滑点)
trade_cost: 0.001
# ==================== 溢价控制配置 ====================
# 跨境ETF溢价过滤机制防止高溢价买入
premium_control:
enabled: true
default_threshold: 0.02 # 默认溢价阈值 2%
mode: "filter" # "filter"(完全排除) 或 "penalize"(降权)
penalty_factor: 0.5 # 降权模式下的惩罚系数
# 按市场类型覆盖配置
market_overrides:
A: # A股 ETF
enabled: false # 不启用(溢价通常 < 0.5%
HK: # 港股 ETF
enabled: true
threshold: 0.03 # 阈值 3%
US: # 美股 ETF
enabled: true
threshold: 0.02 # 阈值 2%
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 代理端口