From 6728872d72ca8aa5578c351bf74fa750f66bbb66 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Thu, 13 Aug 2026 23:09:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(portfolio):=20=E5=9F=BA=E5=87=86=E8=A3=85?= =?UTF-8?q?=E8=BD=BD=E6=97=B6=E5=BA=8F=E4=BF=AE=E6=AD=A3:load=5Fstrategy()?= =?UTF-8?q?=E4=BC=9Areset=5Fsettings()=E6=B8=85=E6=8E=89=E9=A2=84=E8=AE=BE?= =?UTF-8?q?,=E9=A1=BB=E5=9C=A8initialize=E9=97=AD=E5=8C=85=E5=86=85set=5Fb?= =?UTF-8?q?enchmark(=E8=81=9A=E5=AE=BD=E5=90=8C=E6=AC=BE=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?);=E6=9E=84=E9=80=A0=E5=8F=82=E6=95=B0=E4=B8=8E=E9=A2=84run?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8F=8C=E5=A4=B1=E6=95=88=20[vps]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sanguo_portfolio/runner_backtest.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sanguo_portfolio/runner_backtest.py b/sanguo_portfolio/runner_backtest.py index 419f6ba..54b8af9 100644 --- a/sanguo_portfolio/runner_backtest.py +++ b/sanguo_portfolio/runner_backtest.py @@ -229,12 +229,6 @@ def run_backtest(args: argparse.Namespace) -> Dict[str, Any]: provider = build_provider(args.provider, args.provider_config) set_data_provider(provider) - # bullet_trade 0.9.x: BacktestEngine(benchmark=) 构造参数不生效(构造器收而不用), - # 引擎只认 set_benchmark() 设的全局 settings → 必须显式设,否则 benchmark_data - # 恒 None(VPS 冒烟实测:基准曲线空)。每次 run 都设,幂等。 - if getattr(args, "benchmark", ""): - bt_set_benchmark(args.benchmark) - # 占位策略:initialize 里把 self(strategy)挂到聚宽风格定时器 holder: Dict[str, Any] = {} @@ -242,6 +236,12 @@ def run_backtest(args: argparse.Namespace) -> Dict[str, Any]: strategy = _build_strategy(args, provider) holder["strategy"] = strategy + # benchmark 必须在 initialize 内设:engine.load_strategy() 会 reset_settings() + # 清掉一切预设(且 BacktestEngine(benchmark=) 构造参数 0.9.x 收而不用), + # initialize 之后引擎才读 settings.benchmark 装载基准数据(否则恒 None) + if getattr(args, "benchmark", ""): + bt_set_benchmark(args.benchmark) + # 注册定时任务(按策略类型分发) _register_schedule(strategy)