性能基准测试

实测结果,而非营销话术。详细基准测试将随 v1.0 版本一同发布。

StratForge vs Python 回测器

核心回测操作的逐项对比。

指标PythonStratForge提升
单指标(每根 K 线)待定待定待定
策略步骤待定待定待定
完整回测(100万根 K 线)待定待定待定
吞吐量待定待定待定
内存占用待定待定待定

优化历程

StratForge 如何在回测管线中叠加优化。

阶段 1:列式 K 线存储待定

K 线存储在缓存友好的列式缓冲区中。指标计算流经连续内存,而非追逐指针。

阶段 2:增量指标待定

每个指标维护内部状态,每根 K 线以 O(1) 更新。无滑动窗口重新计算。

阶段 3:无分支决策路径待定

策略入场/出场逻辑尽可能重写为无分支算术,避免价格条件代码上的流水线停顿。

阶段 4:编译时特化待定

编译时已知的指标参数成为 consteval。特化模板消除运行时分派。

零分配证明

在热路径上运行一次回测。

操作Python 回测器StratForge
堆分配大量(每根 K 线的 Python 对象)0
K 线存储pandas DataFrame 拷贝std::span 列式缓冲区视图
指标状态每次调用的数组分配预分配的滚动状态
内存占用动态,GC 驱动静态,预分配
确定性跨运行的浮点漂移比特级精确可复现

技术对比

叠加为确定性、低延迟回测的设计决策。

技术Python 回测器StratForge
内存布局行式(DataFrame)列式(缓存友好)
指标更新每次调用重新计算窗口增量 O(1) 每根 K 线
循环分派解释执行的 Python 循环内联的 C++ 模板循环
数值确定性依赖 NumPy / pandas 版本跨运行比特级精确
策略组合类继承 + 动态分派Concepts + 静态多态
错误处理异常std::expected(无抛出)

架构影响

StratForge 设计过程中研究的行业领先库和框架。

我们学到了什么我们构建了什么成果
TA-Lib标准指标定义和边界情况处理C++23 纯头文件指标库138 个指标
vectorbt向量化回测 API 和参数扫描编译时模板化参数扩展待定
backtrader策略生命周期和事件钩子Concept 驱动的策略接口类型安全的生命周期
QuantLib模块化定价和分析架构可插拔的分析模块待定
Eigen表达式模板实现零开销数学惰性指标组合无临时缓冲区
Arrow列式内存布局标准原生列式 K 线存储缓存行友好
Folly无锁原语和 small_vector预分配交易日志待定
Highway可移植 SIMD 抽象SIMD 友好的指标内层循环待定
fmt编译时格式化字符串零开销报告格式化待定
Boost.PMR单调缓冲区用于内存池分配std::pmr::monotonic_buffer_resource 内存池零堆分配
Catch2BDD 风格的指标单元测试比特级精确回归测试套件可复现的 CI

准备好试用 StratForge 了吗?

三条命令即可克隆并开始回测。

git clone https://github.com/StratCraftsAI/StratForge.git cd StratForge ./start.sh build