核心概念

bagelquant-core 把量化研究逻辑拆成两部分:带研究域约束的数据对象,以及惰性执行的运算图。

Domain

Domain 定义研究所使用的交易日历和资产空间。它不负责下载交易日历或证券主数据;调用方需要从数据层传入有序日历,以及静态资产列表或动态成分布尔表。

Panel

Panel 是与 Domain 对齐的不可变二维数值数据,形状是时间乘资产。原始输入、图的叶子节点、执行后的输出,以及执行过程中的缓存值都可以是 Panel

参见 Panel

Graph

Graph 表示惰性的研究逻辑链。Transformer 和 composer 不会立刻计算结果,而是返回新的图节点;只有调用 compute() 时才会物化输出面板。

参见 Graph

Transformer

Transformer 是一元运算:

Panel | Graph -> Graph

常见用途包括排序、标准化、滚动窗口、缺失值处理、极值处理,以及因子变换。

参见 Transformer

Composer

Composer 用多个 PanelGraph 输入生成一个新图,适合算术组合、分组截面运算、滚动关系、投影和加权聚合。

参见 Composer

Execution

执行过程会校验图结构,按拓扑顺序计算依赖,缓存中间结果,并重新应用动态成分约束,避免非活跃资产单元进入后续计算。

参见 Execution