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] = {}