配置文件: - rotation_global.yaml: 扁平化资产池配置示例,演示 group 策略分组 * 13 个标的覆盖 7 个策略分组(US_TECH, CN_GROWTH, JP_BROAD, EU_BROAD, HK_TECH, COMMODITY, FIXED_INCOME) * signal_source/trade_source 分离配置(跨市场场景) * 分散化选股配置示例(注释状态) * 默认使用 Flask API 数据源 测试用例: - test_flat_asset_pool.py: 7/7 测试通过 * 扁平配置加载验证 * 策略分组功能测试(by_group, groups, count) * 信号/交易标的获取(get_signal_codes, get_trade_codes) * 信号→交易映射(get_signal_to_trade_mapping) * 分散化配置验证 * 标的配置详情验证 - test_config.py: 配置加载器测试 - test_simple_rotation.py: 简单轮动策略端到端测试
269 lines
9.5 KiB
YAML
269 lines
9.5 KiB
YAML
# 跨市场轮动策略配置(扁平化设计)
|
||
#
|
||
# 配置版本: 2.0.0
|
||
# 最后更新: 2024-04-16
|
||
# 策略名称: rotation_global
|
||
# 描述: 全球资产大类轮动 - 扁平化资产池设计
|
||
|
||
# ============================================================
|
||
# 元数据
|
||
# ============================================================
|
||
metadata:
|
||
version: "2.0.0"
|
||
strategy: "rotation_global"
|
||
description: "全球资产大类轮动策略 V2 - 扁平化资产池"
|
||
last_updated: "2024-04-16"
|
||
|
||
# ============================================================
|
||
# 资产池配置(扁平化设计)
|
||
# ============================================================
|
||
asset_pools:
|
||
assets:
|
||
# ============================================================
|
||
# 美股指数(通过 A 股 ETF 交易)
|
||
# ============================================================
|
||
"NDX":
|
||
name: "纳指100"
|
||
group: "US_TECH"
|
||
signal_source: "NDX" # 纳指信号
|
||
trade_source: "513100.SH" # A股ETF交易
|
||
description: "纳斯达克100指数,科技股代表"
|
||
|
||
"SPX":
|
||
name: "标普500"
|
||
group: "US_TECH"
|
||
signal_source: "SPX"
|
||
trade_source: "513500.SH"
|
||
description: "标普500指数,美股大盘"
|
||
|
||
# ============================================================
|
||
# A股指数(直接交易 ETF)
|
||
# ============================================================
|
||
"399006.SZ":
|
||
name: "创业板指"
|
||
group: "CN_GROWTH"
|
||
signal_source: "399006.SZ"
|
||
trade_source: "159915.SZ"
|
||
description: "创业板指数,成长股代表"
|
||
|
||
"000300.SH":
|
||
name: "沪深300"
|
||
group: "CN_GROWTH"
|
||
signal_source: "000300.SH"
|
||
trade_source: "510300.SH"
|
||
description: "沪深300指数,大盘蓝筹"
|
||
|
||
"H30269.CSI":
|
||
name: "中证红利低波"
|
||
group: "CN_GROWTH"
|
||
signal_source: "H30269.CSI"
|
||
trade_source: "512890.SH"
|
||
description: "红利低波指数,价值股代表"
|
||
|
||
# ============================================================
|
||
# 日本股市(通过 A 股 ETF 交易)
|
||
# ============================================================
|
||
"N225":
|
||
name: "日经225"
|
||
group: "JP_BROAD"
|
||
signal_source: "N225"
|
||
trade_source: "513520.SH"
|
||
description: "日经225指数,日本股市"
|
||
|
||
# ============================================================
|
||
# 欧洲股市(通过 A 股 ETF 交易)
|
||
# ============================================================
|
||
"GDAXI":
|
||
name: "德国DAX"
|
||
group: "EU_BROAD"
|
||
signal_source: "GDAXI"
|
||
trade_source: "513030.SH"
|
||
description: "德国DAX指数,欧洲股市"
|
||
|
||
# ============================================================
|
||
# 港股(通过 A 股 ETF 交易)
|
||
# ============================================================
|
||
"HSI":
|
||
name: "恒生指数"
|
||
group: "HK_TECH"
|
||
signal_source: "HSI"
|
||
trade_source: "159920.SZ"
|
||
description: "恒生指数,香港股市"
|
||
|
||
"HSTECH.HK":
|
||
name: "恒生科技"
|
||
group: "HK_TECH"
|
||
signal_source: "HSTECH.HK"
|
||
trade_source: "513130.SH"
|
||
description: "恒生科技指数,港股科技"
|
||
|
||
# ============================================================
|
||
# 商品(国际期货信号 → A股ETF交易)
|
||
# ============================================================
|
||
"GC=F":
|
||
name: "黄金"
|
||
group: "COMMODITY"
|
||
signal_source: "GC=F" # COMEX黄金期货
|
||
trade_source: "518880.SH" # A股黄金ETF
|
||
description: "COMEX黄金期货,避险资产"
|
||
|
||
"CL=F":
|
||
name: "原油"
|
||
group: "COMMODITY"
|
||
signal_source: "CL=F" # WTI原油期货
|
||
trade_source: "160723.SZ" # A股原油基金
|
||
description: "WTI原油期货,能源商品"
|
||
|
||
"HG=F":
|
||
name: "有色金属"
|
||
group: "COMMODITY"
|
||
signal_source: "HG=F" # COMEX铜期货
|
||
trade_source: "159980.SZ" # A股有色ETF
|
||
description: "COMEX铜期货,工业金属"
|
||
|
||
# ============================================================
|
||
# 固定收益(直接交易指数)
|
||
# ============================================================
|
||
"931862.CSI":
|
||
name: "短债指数"
|
||
group: "FIXED_INCOME"
|
||
signal_source: "931862.CSI"
|
||
trade_source: "931862.CSI" # 直接交易指数(无ETF)
|
||
description: "中证0-9个月国债指数,久期<1年,防御配置"
|
||
|
||
# ============================================================
|
||
# 加密货币(未来扩展示例)
|
||
# ============================================================
|
||
# "BTC":
|
||
# name: "比特币"
|
||
# group: "CRYPTO"
|
||
# signal_source: "BTC"
|
||
# trade_source: "BTC"
|
||
# description: "比特币,数字黄金"
|
||
|
||
# ============================================================
|
||
# 外汇(未来扩展示例)
|
||
# ============================================================
|
||
# "EURUSD":
|
||
# name: "欧元/美元"
|
||
# group: "FOREX"
|
||
# signal_source: "EURUSD"
|
||
# trade_source: "EURUSD"
|
||
# description: "欧元/美元汇率"
|
||
|
||
# ============================================================
|
||
# 基准配置
|
||
# ============================================================
|
||
benchmark:
|
||
code: "000300.SH"
|
||
name: "沪深300"
|
||
|
||
# ============================================================
|
||
# 回测配置
|
||
# ============================================================
|
||
backtest:
|
||
start_date: "2020-01-01"
|
||
# end_date: null # null 表示至今
|
||
|
||
# ============================================================
|
||
# 因子配置
|
||
# ============================================================
|
||
factor:
|
||
type: "weighted_momentum" # 因子类型: momentum / slope_r2 / weighted_momentum
|
||
n_days: 25 # 动量窗口期(5-250天)
|
||
|
||
# 动态周期参数(可选)
|
||
auto_day: false # 是否启用动态周期
|
||
min_days: 20 # 最小周期
|
||
max_days: 60 # 最大周期
|
||
|
||
# ============================================================
|
||
# 轮动配置
|
||
# ============================================================
|
||
rotation:
|
||
# ============================================================
|
||
# 模式 1:全局选股(默认)
|
||
# ============================================================
|
||
select_num: 5 # 全局选 Top-5
|
||
diversified: false # 不分散化
|
||
|
||
# ============================================================
|
||
# 模式 2:分散化选股(取消注释启用)
|
||
# ============================================================
|
||
# diversified: true # 启用分散化
|
||
# diversification_groups: # 按市场分组选股
|
||
# - group: "US_TECH"
|
||
# select_num: 1 # 美股选 1 只
|
||
# - group: "CN_GROWTH"
|
||
# select_num: 1 # A股选 1 只
|
||
# - group: "JP_BROAD"
|
||
# select_num: 1 # 日本选 1 只
|
||
# - group: "EU_BROAD"
|
||
# select_num: 1 # 欧洲选 1 只
|
||
# - group: "HK_TECH"
|
||
# select_num: 1 # 港股选 1 只
|
||
# - group: "COMMODITY"
|
||
# select_num: 1 # 商品选 1 只
|
||
# - group: "FIXED_INCOME"
|
||
# select_num: 1 # 债券选 1 只
|
||
|
||
# 阈值配置(统一 V2/V3)
|
||
threshold:
|
||
mode: "dynamic" # 阈值模式: fixed / dynamic
|
||
fixed_value: 0.0 # 固定阈值(mode=fixed时使用)
|
||
|
||
# 动态阈值配置(mode=dynamic时使用)
|
||
dynamic:
|
||
reference: "931862.CSI" # 参考标的(短债指数)
|
||
ratio: 1.0 # 阈值 = 短债动量 × ratio
|
||
fallback_enabled: true # 参考不可用时是否回退
|
||
fallback_value: 0.0 # 回退值
|
||
|
||
# ============================================================
|
||
# 调仓配置
|
||
# ============================================================
|
||
rebalance:
|
||
min_hold_days: 1 # 最低持有天数(1-30)
|
||
score_threshold: 0.0 # 调仓得分阈值(0-0.5,表示%)
|
||
trade_cost: 0.001 # 单次换仓成本(0-0.01,即 0.1%)
|
||
|
||
# ============================================================
|
||
# 溢价控制配置
|
||
# ============================================================
|
||
premium_control:
|
||
enabled: true # 是否启用溢价控制
|
||
default_threshold: 0.10 # 默认溢价阈值(10%)
|
||
mode: "filter" # 控制模式: filter(排除)/ penalize(降权)
|
||
penalty_factor: 0.5 # 降权惩罚系数
|
||
|
||
# 按市场覆盖配置
|
||
market_overrides:
|
||
CN_EQUITY: # A股 ETF
|
||
enabled: false # 不启用(溢价通常 < 0.5%)
|
||
HK_EQUITY: # 港股 ETF
|
||
enabled: true
|
||
threshold: 0.10 # 阈值 10%
|
||
US_EQUITY: # 美股 ETF
|
||
enabled: true
|
||
threshold: 0.10 # 阈值 10%
|
||
JP_EQUITY: # 日本 ETF
|
||
enabled: true
|
||
threshold: 0.10 # 阈值 10%
|
||
EU_EQUITY: # 欧洲 ETF
|
||
enabled: true
|
||
threshold: 0.10 # 阈值 10%
|
||
COMMODITY: # 商品 ETF
|
||
enabled: false # 不启用
|
||
|
||
# ============================================================
|
||
# 数据配置
|
||
# ============================================================
|
||
data:
|
||
# 数据源列表(按优先级排序)
|
||
sources:
|
||
# 主数据源:Flask API
|
||
- type: "flask_api"
|
||
enabled: true
|
||
url: "${FLASK_API_URL}" # 从环境变量读取
|
||
timeout: 120
|