API
run_backtest
run_backtest(signal, prices, *, kind, config=None)
Dispatches to the correct evaluation path.
kind="weights"callsrun_weight_backtestkind="factor"callsrun_factor_evaluation
config is required because transaction-cost minimum fees require
initial_capital.
run_weight_backtest
run_weight_backtest(weights, prices, *, config)
Evaluates a DataFrame as portfolio weights.
Returns BacktestResult.
Important fields:
weightsasset_returnsgross_returnsnet_returnsgross_cumulative_returnsnet_cumulative_returnsgross_valuenet_valueturnovertransaction_costssummary
run_factor_evaluation
run_factor_evaluation(factor, prices, *, config)
Evaluates a DataFrame as factor scores.
Returns FactorEvaluationResult.
Important fields:
factorforward_returnsicic_meanic_stdicirquantile_returnsquantile_cumulative_returnstop_minus_bottomtop_n_weightstop_n_backtest
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_capital must be positive.
ic_method may be "spearman" or "pearson".
DataFrame Boundary
The first argument must be a numeric pandas.DataFrame.
Rows are dates, columns are assets, and values are weights or factor scores.