From c8b7be69c9f0b5126d2d9185e676a7ddae3d6586 Mon Sep 17 00:00:00 2001 From: claude_dev Date: Thu, 13 Aug 2026 22:59:03 +0800 Subject: [PATCH] =?UTF-8?q?fix(portfolio):=20=E5=9F=BA=E5=87=86=E6=9B=B2?= =?UTF-8?q?=E7=BA=BF=E6=81=92=E7=A9=BA=E6=A0=B9=E5=9B=A0=3Dbullet=5Ftrade?= =?UTF-8?q?=200.9.x=20BacktestEngine(benchmark=3D)=E6=9E=84=E9=80=A0?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=94=B6=E8=80=8C=E4=B8=8D=E7=94=A8,?= =?UTF-8?q?=E9=A1=BBset=5Fbenchmark()=E8=AE=BE=E5=85=A8=E5=B1=80settings(V?= =?UTF-8?q?PS=E5=86=92=E7=83=9F=E5=AE=9E=E6=B5=8Bbenchmark=5Fdata=E6=81=92?= =?UTF-8?q?None);run=E5=89=8D=E6=98=BE=E5=BC=8F=E8=AE=BE,=E5=B9=82?= =?UTF-8?q?=E7=AD=89=20[vps]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sanguo_portfolio/runner_backtest.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sanguo_portfolio/runner_backtest.py b/sanguo_portfolio/runner_backtest.py index 743438f..419f6ba 100644 --- a/sanguo_portfolio/runner_backtest.py +++ b/sanguo_portfolio/runner_backtest.py @@ -223,11 +223,18 @@ def run_backtest(args: argparse.Namespace) -> Dict[str, Any]: 我们把策略类包成 initialize 函数:initialize 闭包挂 run_daily 等。 """ from bullet_trade import BacktestEngine # type: ignore + from bullet_trade.core.settings import set_benchmark as bt_set_benchmark # type: ignore from bullet_trade.data.api import set_data_provider # type: ignore 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] = {}