feat: 新增slope_r2因子并切换为默认因子(年化19.84%, 夏普1.14)
- simple_rotation.py: 新增3种score函数(vol_adjusted_momentum, slope_r2, momentum) - config_loader.py: FactorType枚举新增VOL_ADJUSTED_MOMENTUM - config_simple.yaml: factor.type 切换为 slope_r2 - experiments/factor_comparison.py: 4种因子对比实验脚本 - experiments/output: 实验结果(slope_r2全面胜出)
This commit is contained in:
@@ -1,186 +1,118 @@
|
||||
# ETF轮动策略配置(V2 框架)
|
||||
#
|
||||
# 配置版本: 2.0.0
|
||||
# 最后更新: 2024-04-16
|
||||
# 策略名称: rotation
|
||||
# 描述: 全球资产大类轮动策略 - 复现 V1 结果
|
||||
|
||||
# ============================================================
|
||||
# 元数据
|
||||
# ============================================================
|
||||
metadata:
|
||||
version: "2.0.0"
|
||||
strategy: "rotation"
|
||||
description: "全球资产大类轮动策略 V2 - 复现 V1 结果"
|
||||
last_updated: "2024-04-16"
|
||||
|
||||
# ============================================================
|
||||
# 资产池配置(扁平化设计:严格对齐 V1 config.yaml)
|
||||
# ============================================================
|
||||
asset_pools:
|
||||
assets:
|
||||
# 中国A股指数
|
||||
"399006.SZ":
|
||||
name: "创业板指"
|
||||
group: "A"
|
||||
signal_source: "399006.SZ"
|
||||
trade_source: "159915.SZ"
|
||||
description: "创业板指数"
|
||||
|
||||
"H30269.CSI":
|
||||
name: "中证红利低波"
|
||||
group: "A"
|
||||
signal_source: "H30269.CSI"
|
||||
trade_source: "512890.SH"
|
||||
description: "红利低波指数"
|
||||
|
||||
# 全球市场
|
||||
"NDX":
|
||||
name: "纳指100"
|
||||
group: "US"
|
||||
signal_source: "NDX"
|
||||
trade_source: "513100.SH"
|
||||
description: "纳斯达克100指数"
|
||||
|
||||
"N225":
|
||||
name: "日经225"
|
||||
group: "JP"
|
||||
signal_source: "N225"
|
||||
trade_source: "513520.SH"
|
||||
description: "日经225指数"
|
||||
|
||||
"GDAXI":
|
||||
name: "德国DAX"
|
||||
group: "EU"
|
||||
signal_source: "GDAXI"
|
||||
trade_source: "513030.SH"
|
||||
description: "德国DAX指数"
|
||||
|
||||
"HSI":
|
||||
name: "恒生指数"
|
||||
group: "HK"
|
||||
signal_source: "HSI"
|
||||
trade_source: "159920.SZ"
|
||||
description: "恒生指数"
|
||||
|
||||
"HSTECH.HK":
|
||||
name: "恒生科技"
|
||||
group: "HK"
|
||||
signal_source: "HSTECH.HK"
|
||||
trade_source: "513130.SH"
|
||||
description: "恒生科技指数"
|
||||
|
||||
# 商品(使用 COMEX/WTI 期货替代上期所主力合约,数据更长)
|
||||
"GC=F":
|
||||
name: "黄金"
|
||||
group: "COMMODITY"
|
||||
signal_source: "GC=F"
|
||||
trade_source: "518880.SH"
|
||||
description: "COMEX黄金期货(2000年至今)"
|
||||
|
||||
"CL=F":
|
||||
name: "原油"
|
||||
group: "COMMODITY"
|
||||
signal_source: "CL=F"
|
||||
trade_source: "160723.SZ"
|
||||
description: "WTI原油期货(2000年至今)"
|
||||
|
||||
"HG=F":
|
||||
name: "有色金属"
|
||||
group: "COMMODITY"
|
||||
signal_source: "HG=F"
|
||||
trade_source: "159980.SZ"
|
||||
description: "COMEX铜期货(2000年至今)"
|
||||
|
||||
# 防御类资产:短债指数
|
||||
# 931862.CSI = 中证0-9个月国债指数(短债指数)
|
||||
# 数据范围:2007-12-31开始,约19年数据
|
||||
# 久期:极短(<1年),波动极小,熊市防御效果最佳
|
||||
# 收益归因:标的收益约17%,决策收益约83%
|
||||
# 注意:无对应ETF可交易,直接使用指数数据计算动量和收益
|
||||
"931862.CSI":
|
||||
name: "短债指数"
|
||||
group: "BOND"
|
||||
signal_source: "931862.CSI"
|
||||
trade_source: "931862.CSI"
|
||||
description: "中证0-9个月国债指数,久期<1年,防御配置"
|
||||
|
||||
# ============================================================
|
||||
# 基准配置
|
||||
# ============================================================
|
||||
benchmark:
|
||||
code: "000300.SH"
|
||||
name: "沪深300"
|
||||
|
||||
# ============================================================
|
||||
# 回测配置
|
||||
# ============================================================
|
||||
399006.SZ:
|
||||
description: 创业板指数
|
||||
group: A
|
||||
name: 创业板指
|
||||
signal_source: 399006.SZ
|
||||
trade_source: 159915.SZ
|
||||
931862.CSI:
|
||||
description: 中证0-9个月国债指数,久期<1年,防御配置
|
||||
group: BOND
|
||||
name: 短债指数
|
||||
signal_source: 931862.CSI
|
||||
trade_source: 931862.CSI
|
||||
CL=F:
|
||||
description: WTI原油期货(2000年至今)
|
||||
group: COMMODITY
|
||||
name: 原油
|
||||
signal_source: CL=F
|
||||
trade_source: 160723.SZ
|
||||
GC=F:
|
||||
description: COMEX黄金期货(2000年至今)
|
||||
group: COMMODITY
|
||||
name: 黄金
|
||||
signal_source: GC=F
|
||||
trade_source: 518880.SH
|
||||
GDAXI:
|
||||
description: 德国DAX指数
|
||||
group: EU
|
||||
name: 德国DAX
|
||||
signal_source: GDAXI
|
||||
trade_source: 513030.SH
|
||||
H30269.CSI:
|
||||
description: 红利低波指数
|
||||
group: A
|
||||
name: 中证红利低波
|
||||
signal_source: H30269.CSI
|
||||
trade_source: 512890.SH
|
||||
HG=F:
|
||||
description: COMEX铜期货(2000年至今)
|
||||
group: COMMODITY
|
||||
name: 有色金属
|
||||
signal_source: HG=F
|
||||
trade_source: 159980.SZ
|
||||
HSI:
|
||||
description: 恒生指数
|
||||
group: HK
|
||||
name: 恒生指数
|
||||
signal_source: HSI
|
||||
trade_source: 159920.SZ
|
||||
HSTECH.HK:
|
||||
description: 恒生科技指数
|
||||
group: HK
|
||||
name: 恒生科技
|
||||
signal_source: HSTECH.HK
|
||||
trade_source: 513130.SH
|
||||
N225:
|
||||
description: 日经225指数
|
||||
group: JP
|
||||
name: 日经225
|
||||
signal_source: N225
|
||||
trade_source: 513520.SH
|
||||
NDX:
|
||||
description: 纳斯达克100指数
|
||||
group: US
|
||||
name: 纳指100
|
||||
signal_source: NDX
|
||||
trade_source: 513100.SH
|
||||
backtest:
|
||||
start_date: "2020-01-10" # 与 V1 保持一致(第一个完整交易日)
|
||||
# end_date: "2026-05-22" # 与 V1 保持一致
|
||||
|
||||
# ============================================================
|
||||
# 因子配置
|
||||
# ============================================================
|
||||
start_date: '2020-01-10'
|
||||
benchmark:
|
||||
code: 000300.SH
|
||||
name: 沪深300
|
||||
data:
|
||||
sources:
|
||||
- enabled: true
|
||||
timeout: 120
|
||||
type: flask_api
|
||||
url: ${FLASK_API_URL}
|
||||
factor:
|
||||
type: "weighted_momentum" # 加权动量
|
||||
n_days: 25 # 25 天窗口
|
||||
|
||||
# ============================================================
|
||||
# 轮动配置
|
||||
# ============================================================
|
||||
rotation:
|
||||
select_num: 3 # 选择 Top-3
|
||||
diversified: true # 强制分散化:每个大类只选 Top 1
|
||||
|
||||
# 阈值配置(V3 动态阈值)
|
||||
threshold:
|
||||
mode: "dynamic" # 动态阈值模式
|
||||
fixed_value: 0.0 # 固定阈值(mode=fixed时使用)
|
||||
|
||||
# 动态阈值配置(使用短债动量作为阈值)
|
||||
dynamic:
|
||||
reference: "931862.CSI" # 阈值参考标的(短债指数)
|
||||
ratio: 1.0 # 阈值 = 短债动量 × ratio
|
||||
fallback_enabled: true # 参考不可用时是否回退
|
||||
fallback_value: 0.0 # 回退值
|
||||
|
||||
# ============================================================
|
||||
# 调仓配置
|
||||
# ============================================================
|
||||
n_days: 25
|
||||
type: slope_r2
|
||||
metadata:
|
||||
description: 全球资产大类轮动策略 V2 - 复现 V1 结果
|
||||
last_updated: '2024-04-16'
|
||||
strategy: rotation
|
||||
version: 2.0.0
|
||||
premium_control:
|
||||
default_threshold: 0.1
|
||||
enabled: false
|
||||
market_overrides:
|
||||
A:
|
||||
enabled: false
|
||||
COMMODITY:
|
||||
enabled: false
|
||||
HK:
|
||||
enabled: true
|
||||
threshold: 0.1
|
||||
US:
|
||||
enabled: true
|
||||
threshold: 0.1
|
||||
mode: filter
|
||||
penalty_factor: 0.5
|
||||
rebalance:
|
||||
min_hold_days: 1
|
||||
score_threshold: 0.0
|
||||
trade_cost: 0.001 # 万1 交易成本(场内ETF万0.5免5)
|
||||
|
||||
# ============================================================
|
||||
# 溢价控制配置
|
||||
# ============================================================
|
||||
premium_control:
|
||||
enabled: false # 启用溢价控制
|
||||
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 # 不启用
|
||||
|
||||
# ============================================================
|
||||
# 数据配置
|
||||
# ============================================================
|
||||
data:
|
||||
sources:
|
||||
- type: "flask_api"
|
||||
enabled: true
|
||||
url: "${FLASK_API_URL}"
|
||||
timeout: 120
|
||||
trade_cost: 0.001
|
||||
rotation:
|
||||
diversified: true
|
||||
select_num: 3
|
||||
threshold:
|
||||
dynamic:
|
||||
fallback_enabled: true
|
||||
fallback_value: 0.0
|
||||
ratio: 1.0
|
||||
reference: 931862.CSI
|
||||
fixed_value: 0.0
|
||||
mode: dynamic
|
||||
|
||||
Reference in New Issue
Block a user