交互式问答

专家解答关于架构、指标、策略设计和项目路线图的问题。

常见问题

为什么用 C++23 构建 StratForge 而不用 Python?
Python 回测框架方便但速度慢且不确定。对于数百万根 K 线和参数扫描的研究,C++23 提供数量级更快的迭代速度和比特级精确的可复现性。
StratForge 适合谁?
量化研究员、系统化交易者和需要快速、可复现的大规模回测的工程师。特别适用于参数扫描、前推分析和大型指标库。
StratForge 如何在热路径上保持零分配?
指标状态、K 线缓冲区和交易日志均预分配。策略步骤函数使用 std::span 视图而非拷贝。std::pmr::monotonic_buffer_resource 为每次运行的临时数据提供内存池分配。
StratForge 使用了哪些 C++23 特性?
std::expected 用于错误路径,std::span 用于零拷贝视图,concepts 用于策略/指标接口,consteval 用于编译时参数特化,以及热循环中的 [[likely]] / [[unlikely]] 提示。
包含多少个指标?
138 个指标,涵盖趋势、动量、波动率、成交量和统计类别。全部纯头文件且可组合。
StratForge 可以用于生产环境吗?
StratForge 正在积极开发中。架构已稳定;v1.0 将与完整的基准测试、文档和回归测试套件一同发布。
我可以加入自己的指标吗?
可以。指标是受 concept 约束的类型。任何满足 Indicator concept 的类都可以无需修改即可接入引擎。
StratForge 与 backtrader / vectorbt 相比如何?
backtrader 和 vectorbt 是优秀的 Python 工具。StratForge 针对相同的问题领域,但使用编译的 C++23,具有确定性数值和预分配状态,提供高频交易级别的性能。