numeraire.core.engine.backtest_panel#

numeraire.core.engine.backtest_panel(estimator: Estimator, view: CrossSectionView, splitter: Any, *, method: str, config: dict[str, Any] | None = None, data_vintage: str = 'unknown', run_id: str | None = None, n_jobs: int = 1) PanelWeightsOutput[source]#

Walk-forward OOS backtest of a cross-sectional to_weights estimator over a ragged panel.

Mirrors backtest_weights() but for CrossSectionView: the fitted model returns long (date, asset) weights, realized forward returns are aligned by key (so an entering/exiting universe is handled), and any name whose horizon is unrealized in-view (or that delists first) is dropped before scoring. The time-series engine is left untouched. n_jobs fans the folds over a thread pool (-1 = all cores); order-preserving, so identical output.