Public API
The stable public API is exported from bagelquant_bt.
Entry Points
from bagelquant_bt import run_backtest, run_factor_evaluation, run_weight_backtest
run_backtest(signal, prices, *, kind, config=None): dispatch bykind.run_weight_backtest(weights, prices, *, config): evaluate portfolio weights.run_factor_evaluation(factor, prices, *, config): evaluate factor scores.
Configuration
from bagelquant_bt import BacktestConfig, TransactionCostConfig
config = BacktestConfig(
initial_capital=1_000_000,
transaction_cost=TransactionCostConfig(rate=0.00015, min_fee=5.0),
annualization=252,
ic_method="spearman",
quantiles=5,
top_n=50,
)
initial_capitalmust be positive.ic_methodmay be"spearman"or"pearson".quantilescontrols factor bucket count.top_ncontrols the top-N factor portfolio.
Results
BacktestResult exposes:
weightsasset_returnsgross_returnsnet_returnsgross_cumulative_returnsnet_cumulative_returnsgross_valuenet_valueturnovertransaction_costssummary
FactorEvaluationResult exposes:
factorforward_returnsicic_meanic_stdicirquantile_returnsquantile_cumulative_returnstop_minus_bottomtop_n_weightstop_n_backtest
Exceptions
BagelQuantBacktestError: base package error.BacktestConfigError: invalid configuration.InputValidationError: invalid or incompatible input frames.