quantlab.backtest.config.CrossSectionBacktestConfig#

class quantlab.backtest.config.CrossSectionBacktestConfig(*, price_dataset, start_date, end_date, rebalance_periods, output_dir, model=None, model_mode=None, checkpoint=None, cv_project_dir=None, fees=0.0005, slippage=0.0005, init_cash=1000000.0, sizing_basis='fill', benchmark_dataset=None, risk_model=None, tracker=<factory>, name=None, constructor)[source]#

Bases: BacktestConfig

Config of a cross-sectional backtest: a predictor’s scores turned into weights.

On every rebalance bar constructor, a portfolio construction rule, turns the predictions of that bar into the weights to hold after it.

Examples

>>> cfg = CrossSectionBacktestConfig(
...     price_dataset=price_dataset,
...     model=model,
...     model_mode="load",
...     checkpoint="/data/models/xgb/best.joblib",
...     start_date="2023-01-01",
...     end_date="2023-12-31",
...     output_dir="/data/backtests",
...     rebalance_periods=5,
...     constructor=TopNConstructor(TopNConfig(direction="long_short", top_n=20)),
... )
>>> cfg.constructor
TopNConstructor(direction='long_short', top_n=20, score_label=None)
constructor#

The portfolio construction rule (a PortfolioConstructor, such as quantlab.portfolio.predefined.top_n.TopNConstructor) that turns each rebalance bar’s predictions into target weights.