From aeb95a6f4cb73de9e36b4e9dac48617c8ecfdc15 Mon Sep 17 00:00:00 2001 From: aszerW Date: Tue, 12 May 2026 22:14:35 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=BF=81=E7=A7=BB=E5=88=B0=E7=AD=96=E7=95=A5=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=EF=BC=88=E6=A8=A1=E5=9D=97=E8=87=AA=E5=8C=85=E5=90=AB?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 迁移内容: - config/strategies/rotation.yaml → strategies/rotation/config.yaml 路径更新(核心文件): - strategies/rotation/strategy.py(注释示例) - scripts/generate_legacy_report.py(config_path) - run_rotation.py(注释和默认参数) - datasource/hybrid_source.py(from_yaml示例和fetch_rotation_data) 保留: - config/strategies/cci.yaml(无对应策略目录,暂保留) 设计原则:策略模块自包含,配置与实现同目录,方便移植和复制 验证:策略加载成功(候选池11只,回测区间2019-01-01 ~ 2026-05-12) --- datasource/hybrid_source.py | 4 ++-- run_rotation.py | 4 ++-- scripts/generate_legacy_report.py | 2 +- .../rotation.yaml => strategies/rotation/config.yaml | 0 strategies/rotation/strategy.py | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) rename config/strategies/rotation.yaml => strategies/rotation/config.yaml (100%) diff --git a/datasource/hybrid_source.py b/datasource/hybrid_source.py index ceab9d2..2fb4021 100644 --- a/datasource/hybrid_source.py +++ b/datasource/hybrid_source.py @@ -26,7 +26,7 @@ class HybridDataSource: 使用方式: from datasource import HybridDataSource - source = HybridDataSource.from_yaml('config/strategies/rotation.yaml') + source = HybridDataSource.from_yaml('strategies/rotation/config.yaml') result = source.fetch_all() """ @@ -259,7 +259,7 @@ class HybridDataSource: # 简化接口 -def fetch_rotation_data(config_path: str = "config/strategies/rotation.yaml") -> dict: +def fetch_rotation_data(config_path: str = "strategies/rotation/config.yaml") -> dict: """ 获取轮动策略数据(简化接口) diff --git a/run_rotation.py b/run_rotation.py index 6d47948..8d362b2 100644 --- a/run_rotation.py +++ b/run_rotation.py @@ -4,7 +4,7 @@ ETF轮动策略回测入口 用法: python run_rotation.py - python run_rotation.py --config config/strategies/rotation.yaml + python run_rotation.py --config strategies/rotation/config.yaml python run_rotation.py --save-path results/my_rotation """ @@ -20,7 +20,7 @@ def main(): parser.add_argument( "--config", type=str, - default="config/strategies/rotation.yaml", + default="strategies/rotation/config.yaml", help="配置文件路径", ) parser.add_argument( diff --git a/scripts/generate_legacy_report.py b/scripts/generate_legacy_report.py index 1a5ace8..f377c4d 100644 --- a/scripts/generate_legacy_report.py +++ b/scripts/generate_legacy_report.py @@ -34,7 +34,7 @@ def run_with_legacy_report(): """运行新框架回测并生成原引擎格式报告""" # 加载配置 - config_path = 'config/strategies/rotation.yaml' + config_path = 'strategies/rotation/config.yaml' with open(config_path, 'r', encoding='utf-8') as f: config = yaml.safe_load(f) diff --git a/config/strategies/rotation.yaml b/strategies/rotation/config.yaml similarity index 100% rename from config/strategies/rotation.yaml rename to strategies/rotation/config.yaml diff --git a/strategies/rotation/strategy.py b/strategies/rotation/strategy.py index 632d7cc..d50255e 100644 --- a/strategies/rotation/strategy.py +++ b/strategies/rotation/strategy.py @@ -32,7 +32,7 @@ class RotationStrategy(StrategyBase): 使用方式: from strategies.rotation.strategy import RotationStrategy - strategy = RotationStrategy.from_yaml('config/strategies/rotation.yaml') + strategy = RotationStrategy.from_yaml('strategies/rotation/config.yaml') result = strategy.run_backtest() """