概念
职责边界
bagelquant-bt 只负责用日频价格评估研究输出。
它不导入 bagelquant-core 或 bagelquant-data:
bagelquant-core负责信号构建和研究逻辑。bagelquant-data负责数据访问和存储。bagelquant-bt负责评估、交易成本、汇总结果和图表。
因此,只要工作流能产出日期乘资产的 DataFrame,就可以使用这个回测包。
DataFrame 形状
价格、权重和因子分数都使用同一种形状:
index: 日频日期
columns: 资产
values: 数值型价格、权重或因子分数
价格会被解释为收盘价。权重回测中,输入值是组合权重,可以为负。因子评估中,输入值是截面分数,分数越高表示越好。
时间约定
包内采用无前视约定:
t 日的权重或因子 -> 获得 t 到 t+1 的收盘到收盘收益
因此最后一个价格日期没有可实现的前向收益,会从收益计算中删除。
对齐
bagelquant-bt 会按日期和资产交集对齐价格与信号值。
它会拒绝重复日期、重复资产、非数值输入、空日期交集、空资产交集,以及非 DataFrame 的信号输入。