feat(framework_v2): 实现 StrategyBase 抽象基类和简单轮动策略
StrategyBase ABC: - 定义标准回测流程:get_data → compute_factors → generate_signals → manage_positions → execute - 实现通用数据获取(使用 FlaskAPIFetcher.fetch_indices) - 提供 run() 方法执行完整回测流程 SimpleRotationStrategy: - 实现 4 个抽象方法:get_codes, compute_factors, generate_signals, manage_positions - 支持动量因子计算(MomentumFactor) - 实现全局选股和等权仓位管理 - 修复 int64 → float 转换问题 框架定位: - 通用量化回测框架,支持轮动、CTA、趋势跟踪等多种策略 - 策略只需实现 4 个抽象方法即可接入框架
This commit is contained in:
92
framework_v2/strategies/rotation/config_simple.yaml
Normal file
92
framework_v2/strategies/rotation/config_simple.yaml
Normal file
@@ -0,0 +1,92 @@
|
||||
# 简单轮动策略配置
|
||||
#
|
||||
# 配置版本: 1.0.0
|
||||
# 最后更新: 2024-04-16
|
||||
# 策略名称: simple_rotation
|
||||
# 描述: 基于动量因子的简单 ETF 轮动策略
|
||||
|
||||
# ============================================================
|
||||
# 元数据
|
||||
# ============================================================
|
||||
metadata:
|
||||
version: "1.0.0"
|
||||
strategy: "simple_rotation"
|
||||
description: "简单轮动策略 - 等权分配 + Top-N 选择"
|
||||
last_updated: "2024-04-16"
|
||||
|
||||
# ============================================================
|
||||
# 资产池配置(简化版:只选 3 个标的)
|
||||
# ============================================================
|
||||
asset_pools:
|
||||
equity:
|
||||
"399006.SZ":
|
||||
name: "创业板指"
|
||||
etf: "159915.SZ"
|
||||
market: "CN_EQUITY"
|
||||
description: "创业板指数"
|
||||
|
||||
"NDX":
|
||||
name: "纳指100"
|
||||
etf: "513100.SH"
|
||||
market: "US_EQUITY"
|
||||
description: "纳斯达克100指数"
|
||||
|
||||
commodity: {}
|
||||
fixed_income: {}
|
||||
|
||||
# ============================================================
|
||||
# 基准配置
|
||||
# ============================================================
|
||||
benchmark:
|
||||
code: "000300.SH"
|
||||
name: "沪深300"
|
||||
|
||||
# ============================================================
|
||||
# 回测配置
|
||||
# ============================================================
|
||||
backtest:
|
||||
start_date: "2023-01-01"
|
||||
end_date: "2024-12-31"
|
||||
|
||||
# ============================================================
|
||||
# 因子配置
|
||||
# ============================================================
|
||||
factor:
|
||||
type: "weighted_momentum" # 加权动量
|
||||
n_days: 25 # 25 天窗口
|
||||
|
||||
# ============================================================
|
||||
# 轮动配置
|
||||
# ============================================================
|
||||
rotation:
|
||||
select_num: 2 # 选择 Top-2
|
||||
threshold:
|
||||
mode: "fixed"
|
||||
fixed_value: 0.0 # 无阈值过滤
|
||||
|
||||
# ============================================================
|
||||
# 调仓配置
|
||||
# ============================================================
|
||||
rebalance:
|
||||
min_hold_days: 1
|
||||
score_threshold: 0.0
|
||||
trade_cost: 0.001 # 0.1% 交易成本
|
||||
|
||||
# ============================================================
|
||||
# 溢价控制(禁用)
|
||||
# ============================================================
|
||||
premium_control:
|
||||
enabled: false
|
||||
|
||||
# ============================================================
|
||||
# 数据配置
|
||||
# ============================================================
|
||||
data:
|
||||
sources:
|
||||
- type: "flask_api"
|
||||
enabled: true
|
||||
url: "${FLASK_API_URL}"
|
||||
timeout: 120
|
||||
|
||||
use_cache: true
|
||||
cache_dir: "data_cache"
|
||||
Reference in New Issue
Block a user