稳定 API 从 bagelquant_bt 导出。
入口函数
from bagelquant_bt import run_backtest, run_factor_evaluation, run_weight_backtest
run_backtest(signal, prices, *, kind, config=None):根据kind分发。run_weight_backtest(weights, prices, *, config):评估组合权重。run_factor_evaluation(factor, prices, *, config):评估因子分数。summary_report(result, *, output_path=None, missing_price_keys_output_path=None, title=None, annualization=252): 为BacktestResult或FactorEvaluationResult生成静态 HTML 报告。
配置
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_capital必须为正。ic_method仍可传入以保持兼容;因子评估会同时输出 Spearman 和 Pearson IC。quantiles控制因子分桶数量。top_n控制 top-N 因子组合。
结果对象
BacktestResult 暴露:
weightsasset_returnsgross_returnsnet_returnsgross_cumulative_returnsnet_cumulative_returnsgross_valuenet_valueturnovertransaction_costssummaryperformancecoverage:按价格日期给出原始weight_asset_count、universe_asset_count和coverage_ratio。missing_price_keys
FactorEvaluationResult 暴露:
factorforward_returnsicic_summaryic_meanic_stdicirquantile_returnsquantile_cumulative_returnsspread_returnstop_n_weightstop_n_backtestspread_weightsspread_backtestlag_analysislag_returnsic_decaycoverage:按价格日期给出原始factor_signal_asset_count、universe_asset_count和coverage_ratio。missing_price_keys
可视化
plot_coverage(result) 返回 Plotly 时间序列:以阴影面积展示原始因子信号或权重的
资产覆盖数,并展示价格宇宙总资产数。
异常
BagelQuantBacktestError:包级基础异常。BacktestConfigError:配置无效。InputValidationError:输入 frame 无效或不兼容。