Files
etf/config/strategies/rotation.yaml
aszerW 9ea84f0e57 feat(rotation): 支持混合数据源并优化因子计算和策略逻辑
- 删除旧的Tushare Token环境变量函数,简化配置
- 在配置文件中新增全市场指数及SSH隧道配置支持YFinance数据访问
- 更新compute_factors函数,支持长格式混合数据源,兼容旧宽格式数据
- 修改RotationStrategy使用HybridDataSource,支持Tushare与YFinance数据源混合
- 添加SSH隧道支持,实现安全访问非主市场数据
- 优化因子计算逻辑,提升缺失值处理和因子合并的鲁棒性
- 修正基准净值计算,兼容长宽格式基准数据处理
- 增强信号生成逻辑,处理因子得分中的NaN情况防止异常
2026-03-19 20:38:13 +08:00

84 lines
2.8 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轮动策略配置
# ==================== 候选池配置 ====================
# A股全行业指数配置Tushare格式XXXXXX.SH / XXXXXX.SZ
# 格式: {代码: 名称}
code_list:
# 中国A股指数 (使用 Tushare) - 主市场,交易日基准
# 宽基指数
"000300.SH": "沪深300"
"000905.SH": "中证500"
"000852.SH": "中证1000"
"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": "国债指数"
# 全球市场指数 (使用 YFinance) - 非主市场数据会前向填充到A股交易日
"HSTECH": "恒生科技" # 港股
"NDX": "纳斯达克100" # 美股
"BTC": "比特币" # 加密货币
"ETH": "以太坊" # 加密货币
# 主市场配置(用于确定交易日历)
primary_market:
source: "Tushare" # 以A股交易日为基准
code: "000300.SH" # 基准指数
# 基准指数配置
benchmark:
code: "000300.SH" # 中国A股指数使用 Tushare 格式
name: "沪深300指数"
# ==================== 回测参数 ====================
start_date: "2018-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
# ==================== 数据缓存 ====================
# 是否使用本地缓存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: "/Users/aszer/Documents/vscode/etf/hk_ecs.pem" # SSH 私钥路径
local_port: 1080 # 本地 SOCKS5 代理端口