diff --git a/README.md b/README.md index 526b1a2..9fec119 100644 --- a/README.md +++ b/README.md @@ -23,6 +23,7 @@ - `indicators` — 50+ 技术指标(MACD / KDJ / 布林 / ATR / ADX / 等) - `data_adapter` — 桥接 qtdb_pro 长表与新模块(rename / long-wide / 复权 / vwap 代理) - `backtest` — weight-based 多日仿真(rebalance_table / compute_nav / compare_to_benchmark) +- `portfolio_construction` — 多期因子分数 → Top-K → 等权目标权重表 - `metrics` — 绩效(年化收益 / 波动率 / Sharpe / 最大回撤 / Calmar) - `factor_library` — 通用方法(turnover / winsorize / IC / OLS / jb_test) - `portfolio_decomp` — 组合分解(risk_parity / mean_variance / 因子归因) @@ -61,6 +62,7 @@ from quant_engine.execution import ( ExecutionConfig, simulate_with_daily_data, compute_realized_pnl, ) from quant_engine.backtest import run_weight_backtest +from quant_engine.portfolio_construction import scores_to_weight_table from quant_engine.indicators import macd, bollinger, kdj from quant_engine.data_adapter import ( long_to_wide, wide_to_long, rename_tushare_columns, @@ -74,7 +76,12 @@ 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) -# 权重回测 → 稳定结果对象 → 绩效/基准分析 +# 多期因子分数 → Top-K 等权组合 → 稳定回测结果 +rebalance_weights = scores_to_weight_table( + factor_scores, + top_k=20, + gross_exposure=1.0, +) backtest = run_weight_backtest( weights=rebalance_weights, stock_returns=daily_returns,