Backtrader 为 Python 开发者提供回测框架。Stingray 让交易者从自然语言想法走到规则、历史测试和实时监控。
简短答案
如果你想使用 Python 框架,而且团队能够自行构建策略、数据源、测试、任务和运行环境,选择 Backtrader。
如果你希望用自然语言描述交易想法、检查生成的规则、在支持的历史数据上测试规则,并实时监控相同条件,选择 Stingray。Stingray 不会执行交易。
Backtrader 让开发者直接控制代码。Stingray 减少验证一个市场观点所需的代码和数据工作。
快速对比
| 问题 | Backtrader | Stingray | | ------------ | -------------------------------------- | -------------------------------------- | | 产品类型 | 开源 Python 框架 | 托管式交易策略构建工具 | | 如何定义策略 | Python 类、指标和订单逻辑 | 把自然语言想法转换为可检查规则 | | 数据准备 | 由你加载并维护数据源 | 支持的历史和实时数据源已接入流程 | | 历史测试 | 带经纪商模拟和分析器的 Python 引擎 | 触发记录、后续收益、数据覆盖和规则细节 | | 实时运行 | 由你运行进程并连接支持的数据源或经纪商 | Stingray 监控经过测试的条件 | | 下单 | 框架支持模拟订单和基于适配器的实时订单 | Stingray 不会执行交易 | | 更适合 | 希望完全控制 Python 技术栈的开发者 | 不想先搭建整套系统的交易者和研究团队 |
Backtrader 提供什么
Backtrader 是用于回测和实时交易系统的 Python 库。开发者创建 Strategy,添加指标与订单逻辑,把数据载入 Cerebro 引擎,然后运行测试。
该框架支持多个数据源、多个时间周期、自定义指标、佣金规则、经纪商模拟、分析器、绘图和实时适配器。源代码使用 GPL-3.0 许可证公开。
当代码本身就是产品的一部分时,Backtrader 很合适。团队可以选择数据模型、编写自定义计算、控制运行环境,并把结果接入其他系统。
可查看官方入门文档、策略文档和 GitHub 代码库。
框架之外的工作
这个库提供回测引擎。团队还需要完成:
- 历史数据和清洗规则。
- 品种、交易场所和时间戳映射。
- 策略代码和测试。
- 费用、佣金、滑点和成交假设。
- 定时任务和进程监控。
- 结果存储和检查工具。
- 需要时接入实时数据和经纪商适配器。
对于希望完全掌控系统的开发者,这些工作很合理。对于只想先判断一个想法是否有价值的交易者,起步成本会很高。
Stingray 提供什么
Stingray 从交易观点开始:
测试一个做空信号:价格跌破前一个日低点,未平仓量至少上升 5%,资金费率保持为正。使用 6 小时冷却时间。显示每次触发,以及之后 4 小时和 24 小时的收益。
Stingray 在运行测试前先把请求转换成类型化规则。结果包含触发清单、观察窗口、数据源和已知限制。历史测试后,可以用同一条件实时监控。
对于已支持的数据,这个流程省去许多准备工作。交易者可以把实际规则作为审查对象。
控制代码还是更快获得证据
Backtrader 让开发者控制每个 Python 函数和数据对象。它适合自有计算、自定义组合引擎,或必须在现有基础设施中运行的系统。
Stingray 更快给出可检查的结果。团队可以先测试观点,再决定是否投入工程时间完成完整实现。
有些团队可以同时使用两者。先测试想法和数据要求。如果规则值得投入更多时间和资源,再在需要代码所有权或自定义执行时用 Backtrader 重建。
比较输出结果
Backtrader 的结果由你的代码决定。内置分析器和经纪商模拟提供基础功能,开发者也可以加入自己的报告。
Stingray 使用一致的检查结构:类型化条件、触发记录、后续收益、数据覆盖和实时监控路径。当交易者和工程师需要检查同一份证据时,这种结构更方便。
两种方式都取决于数据和假设的质量。佣金、滑点、资金费率、缺失 K 线和前视错误都会改变结果。不要在检查这些输入前相信表现数字。
实时监控和订单
Backtrader 的文档包含支持服务的实时数据和实时交易适配器。团队负责运行进程、维护连接并控制订单行为。
Stingray 会继续监控经过测试的条件,并把信号交给交易者决定。Stingray 不会执行交易。
如果目标是在构建执行系统前观察历史规律是否能在实时数据中继续出现,这条边界很有用。
应该选择哪一个?
适合选择 Backtrader 的情况:
- 团队使用 Python。
- 你需要自定义指标、分析器或经纪商行为。
- 你希望自己管理数据和运行环境。
- 策略将成为更大代码库的一部分。
适合选择 Stingray 的情况:
- 交易观点从自然语言开始。
- 你希望先看到证据,再安排工程时间。
- 你需要固定格式的规则和触发记录。
- 你希望实时监控经过测试的条件。
- 最终决定应由交易者作出。