diff --git a/README.md b/README.md index 7714123..526b1a2 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,7 @@ from quant_engine.alpha_factors import alpha_001, alpha_005, ALPHA158_REGISTRY from quant_engine.execution import ( ExecutionConfig, simulate_with_daily_data, compute_realized_pnl, ) +from quant_engine.backtest import run_weight_backtest from quant_engine.indicators import macd, bollinger, kdj from quant_engine.data_adapter import ( long_to_wide, wide_to_long, rename_tushare_columns, @@ -72,6 +73,16 @@ from quant_engine.data_adapter import ( df = load_qtdb_daily(["000001.SZ"], "2024-01-01", with_adj=True) prices, volumes = prepare_execution_inputs(df) result = simulate_with_daily_data(prices, initial_cash=1_000_000.0) + +# 权重回测 → 稳定结果对象 → 绩效/基准分析 +backtest = run_weight_backtest( + weights=rebalance_weights, + stock_returns=daily_returns, + initial_capital=1_000_000.0, + benchmark_nav=benchmark_nav, +) +print(backtest.stats()) +print(backtest.benchmark_report()) ``` ## 与 research_results 的关系 diff --git a/src/quant_engine/backtest.py b/src/quant_engine/backtest.py index f7c5e11..a705c4a 100644 --- a/src/quant_engine/backtest.py +++ b/src/quant_engine/backtest.py @@ -13,22 +13,21 @@ ```python from quant_engine.backtest import ( - compute_nav_from_weights, # 调仓表 → 净值 - rebalance_table, # 周期性再平衡 - compare_to_benchmark, # 策略 vs 基准 + rebalance_periodic, # 周期性再平衡 + run_weight_backtest, # 权重 → 统一结果对象 weights_to_long_short, # 多空组合 ) -# 1. 调仓表 → 净值 -nav = compute_nav_from_weights( +# 调仓表 → 净值、收益、绩效与基准报告 +rebalance_table = rebalance_periodic(target_weights, rebalance_dates, returns.index) +result = run_weight_backtest( weights=rebalance_table, # 每周/每月调仓 stock_returns=returns, # 个股日收益 initial_capital=1.0, + benchmark_nav=benchmark_nav, ) - -# 2. 跟基准比 -result = compare_to_benchmark(nav, benchmark_nav) -print(result.summary()) +print(result.stats()) +print(result.benchmark_report()) ``` """