fix(portfolio): 基准曲线恒空根因=bullet_trade 0.9.x BacktestEngine(benchmark=)构造参数收而不用,须set_benchmark()设全局settings(VPS冒烟实测benchmark_data恒None);run前显式设,幂等 [vps]
CI/CD / test (push) Successful in 14s
CI/CD / nas-deploy (push) Successful in 30s
CI/CD / nas-verify (push) Successful in 8s

This commit is contained in:
2026-08-13 22:59:03 +08:00
parent 95d621874f
commit c8b7be69c9
+7
View File
@@ -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] = {}