阅读时间 … 分钟

在 TradingHost 上运行 Backtrader

在全天候运行的 TradingHost 运行环境中,运行来自 GitHub 的开源 Backtrader 策略。

Backtrader 是一个 Python 回测库,内置 122 种技术指标,支持多数据源,并集成了 Interactive Brokers、Oanda 和 Visual Chart 实盘经纪商。TradingHost 为这些策略提供生产级运行环境。

由 TradingHost 工程团队撰写
  • GitHub 原生部署
  • 内置 122 种技术指标
  • 多数据源、多时间框架
  • 单步或完整回测执行
  • 实盘经纪商:IBKR、Oanda、Visual Chart
  • 全天候运行环境
  • 加密凭据管理
  • 运行地区选择
  • 支持 MCP

介绍

刚接触 Backtrader?

Backtrader 是最著名的 Python 回测库之一。它是一个完整的事件驱动引擎:你只需定义一个 Strategy 类,每个 K 线周期(bar)会自动调用一次 next(),即可直接使用 122 种内置指标,接入一个或多个数据源,并运行单步或完整的历史回测。

除了回测,Backtrader 还支持对接 Interactive Brokers(通过 IbPy)、Oanda v20 REST 和 Visual Chart 进行实盘交易。因此,对于需要在研究和实盘阶段共用同一套代码的股票、期货和 FX 策略,它依然是一个热门选择。

维护现状:原版的 mementum/backtrader 仓库自 2023 年起已停止更新。社区分支 backtrader2/backtrader 目前仍在进行日常的 Bug 修复维护。Backtrader 采用 GPL-3.0 开源协议,原版和社区分支均可免费使用。TradingHost 会运行你在代码中指定的任意版本。

TradingHost 是 Backtrader 策略的生产级运行环境。无需将策略留在个人电脑或通用 VPS 上,你只需将 Backtrader 仓库部署到 TradingHost 云端运行环境,即可实现全天候在线运行、通过加密密钥管理经纪商凭据,并实时接收运行日志。

章节 01 · 概览

概览

什么是 Backtrader
带有实盘交易接口的开源 Python 回测库,采用 GPL-3.0 协议
维护者
GitHub 上的 mementum/backtrader(社区分支:backtrader2/backtrader)
维护状态
原版仓库自 2023 年起已无更新;backtrader2 社区分支持续进行 Bug 修复维护
编程语言
Python,支持 PyPy
技术指标
内置 122 种技术指标
数据源
CSV、pandas DataFrame、Yahoo、IBKR、Oanda、Visual Chart 及自定义数据源
实盘经纪商
Interactive Brokers (IbPy)、Oanda v20 REST、Visual Chart
交易市场
股票、期货、期权、FX、加密货币(通过自定义数据源)
特色功能
多数据源、多时间框架、数据重采样与回放、单步或完整执行、参数优化
部署来源
GitHub
TradingHost 角色
提供运行环境、部署管理、日志查看、密钥管理及运行地区选择
关联关系
TradingHost 保持独立,与 Backtrader 项目无任何官方关联

章节 02 · 适用场景

Backtrader 在交易系统中的定位

Backtrader 首先是一个研究引擎,其次才是实盘交易工具。它在两种模式下使用相同的事件驱动循环,因此为回测开发的 Strategy 类通常只需修改配置即可直接部署到实盘,无需重写代码。

您可以在 TradingHost 上以两种方式使用 Backtrader:

  • 路径 01

    仅限研究

    运行回测、优化参数并可视化结果。支持使用任何数据源,包括提交到 GitHub 仓库的 CSV 文件、进程内构建的 pandas DataFrame,或从经纪商接口获取的数据。无需实盘凭据。

  • 路径 02

    先回测后实盘

    在实盘经纪商中复用同一个 Strategy 类。Backtrader 内置了对 Interactive Brokers(通过 IbPy)、Oanda v20 REST 和 Visual Chart 的集成。运行环境保持在线,确保实盘循环持续交易。

无论选择哪种路径,在 TradingHost 上的运行方式都完全相同。您提供 Backtrader GitHub 仓库,我们负责运行。

您
您的 Strategy 类决定交易规则。
Backtrader
运行回测器、优化器、指标引擎以及经纪商集成。
经纪商
您的经纪商账户接收订单。
TradingHost
运行策略进程、管理敏感凭据、流式传输日志。

第 03 部分 · 为什么选择 TradingHost

为什么在 TradingHost 上部署 Backtrader

Backtrader 有两个在个人电脑上难以完美满足的生产需求。实盘策略需要一个能够保持在线并在网络波动后自动重新连接经纪商的运行环境;而研究工作则需要充足的计算资源,以便在不占用本地工作站的情况下,快速处理漫长的历史数据或庞大的参数优化网格。

TradingHost 为这两种场景提供了一个面向生产环境的运行环境,专为长期运行的交易和研究进程而设计。

您将获得

  • GitHub 原生部署
  • 适用于实盘策略的常备容器运行环境
  • 适合长时间回测和参数优化的计算友好型主机
  • 加密的经纪商凭据存储
  • 靠近您经纪商的区域选择
  • 流式日志与基础健康状况监控
  • 策略级别的启动、停止、重启与检查
  • 自由锁定至 mementum/backtrader 或 backtrader2/backtrader
  • 兼容 MCP 的 AI IDE 工作流

您保留的控制权

  • 对 Backtrader Strategy 代码和指标的完全控制
  • 对经纪商账户和凭据的直接所有权
  • 自由选择模式:研究、优化或实盘

第 04 部分 · 实盘经纪商与数据源

实盘经纪商与数据源

与加密货币优先的框架不同,Backtrader 以传统经纪商为主。同一个 Strategy 类可以运行在三个实盘经纪商集成以及更广泛的历史数据源上。

  • Backtrader
  • 您的经纪商或数据源
  • TradingHost 运行环境

Backtrader 还支持多种用于回测和研究的数据源:

  • 提交到您仓库的 CSV 文件
  • 进程内构建的 pandas DataFrame
  • Yahoo Finance 数据源
  • 您自己编写的自定义 Python 数据源
  • 实盘经纪商数据源(IBKR、Oanda、Visual Chart)
浏览经纪商目录

章节 05 · 部署流程

Backtrader 部署工作原理

在 TradingHost 上部署 Backtrader 策略与任何基于 GitHub 的项目遵循相同的部署模式,只是多了一个选择运行哪个 Backtrader 版本的步骤。

  1. 步骤 01

    连接或创建仓库

    使用 GitHub 登录并连接现有的 Backtrader 仓库(包含您的 Strategy 类、指标和数据源),或者从 TradingHost 的 Backtrader 模板创建一个新仓库。

  2. 步骤 02

    锁定 Backtrader 源码版本

    在原版 mementum/backtrader 包与社区维护的 backtrader2/backtrader 分支之间进行选择。两者均采用 GPL-3.0 许可,且完全可以在 TradingHost 上运行。

  3. 步骤 03

    添加加密的经纪商凭据

    对于实盘交易,请将 IBKR、Oanda 或 Visual Chart 的凭据添加为 TradingHost 凭据密钥(secrets)。这些凭据会被加密,并在启动时注入到运行环境中,绝不会写入您的代码仓库。

    /platform/secrets/
  4. 步骤 04

    选择区域

    选择靠近您经纪商服务器端点的区域。例如,进行 IBKR 美国交易选择 US-East,进行 Oanda 欧洲交易选择 EU,以此类推。

    /platform/regions/
  5. 步骤 05

    部署

    TradingHost 会在托管容器中启动您的 Backtrader 进程。无论是长时间的回测、参数优化运行,还是实盘循环,都以相同的形式运行。日志会实时流式传输回控制面板。

    /platform/observability/

章节 06 · 维护现状

原版 Backtrader 与社区分支

Backtrader 是一个优秀的库,但我们也需要坦诚地面对它的现状。mementum/backtrader 的原版仓库自 2023 年以来一直没有更新。为此,社区推出了 backtrader2 分支,旨在维持该项目的运转。

对于部署而言,这只在一个地方有影响:您的仓库安装哪个版本。TradingHost 对您运行哪个版本保持中立,我们只需要知道您的选择。

mementum/backtrader
原版仓库。master 分支上最后一次有实质意义的提交是在 2023 年。就其现有功能而言是稳定的,但不会再有新功能或新的经纪商集成。
backtrader2/backtrader
旨在维持项目生命力的社区分支。目前的初始范围仅限 Bug 修复和持续维护。新经纪商驱动暂不在计划内,但该分支确保了现有的 IBKR、Oanda 和 Visual Chart 集成在新版 Python 下仍能正常工作。
TradingHost 的立场
无论您的仓库锁定哪个版本、选择哪个 Python 版本,我们都会照常运行。如果您的策略已经稳定,可以继续使用 mementum/backtrader;如果您需要一个有人维护的工具链,请指向 backtrader2。

章节 07 · 我们的服务边界

TradingHost 不提供哪些服务

  • TradingHost 不充当您的经纪商。
  • TradingHost 不提供交易策略、指标或财务建议。
  • TradingHost 不会修改您的 Backtrader Strategy 类或数据源。
  • TradingHost 除了在运行环境中进行加密注入外,不会托管您的经纪商凭据。
  • TradingHost 本身不维护 Backtrader;我们只运行您仓库中锁定的版本。

章节 08 · 常见问题

常见问题

没有。TradingHost 是独立的。Backtrader 是开源、采用 GPL-3.0 许可的软件,最初由 GitHub 上的 mementum 项目维护。

原版的 mementum/backtrader 仓库自 2023 年以来一直没有更新。backtrader2/backtrader 这一社区分支仍在进行 Bug 修复和维护。TradingHost 会运行您仓库锁定的任何版本。

如果您的策略已经在 mementum/backtrader 上顺畅运行,则没有紧迫的迁移必要。如果您是刚开始使用、需要兼容较新版本的 Python,或者希望获取持续的修复更新,请将您的仓库指向 backtrader2/backtrader。

支持 Interactive Brokers(通过 IbPy)、Oanda v20 REST 和 Visual Chart。通过在启动时切换经纪商存储(broker store),相同的 Strategy 类无需修改代码即可在其中任何一个平台上运行。

可以,但需要使用自定义数据源和经纪商。Backtrader 没有内置的原生加密货币交易所连接器,因此您需要将自定义数据源指向 CCXT,或者将 Backtrader 的研究与独立的实盘框架结合使用。关于专注于加密货币的替代方案,请参阅 /frameworks/ccxt/ 和 /frameworks/freqtrade/。

您可以将它们作为加密密钥(secrets)添加到 TradingHost 中。它们会在启动时注入到 Backtrader 运行环境中,绝不会写入您的代码仓库。

可以。Backtrader 的网格优化属于计算密集型任务,可以在根据搜索空间大小配置的 TradingHost 运行环境中顺畅运行。该运行环境稍后可重新配置用于实盘交易。

不。Backtrader 通过您的经纪商凭据下单交易。TradingHost 运行 Backtrader 进程并流式传输日志。

Backtrader 是事件驱动型的,支持实盘交易,非常适合需要逐 K 线(bar-by-bar)决策和实盘执行的策略。vectorbt 是向量化的,在参数扫描时速度更快,但其开源版本不包含实盘交易功能。许多团队会同时使用两者:用 vectorbt 进行筛选,用 Backtrader 进行实盘。

NautilusTrader 是一个较新的、以 Rust 为核心的事件驱动型引擎,专为低延迟多资产部署和完全一致的回测与实盘行为而设计,目前处于活跃开发状态。Backtrader 较旧,仅支持 Python,在交易场所覆盖上较为有限,但非常容易上手。对比详情请参阅 /frameworks/nautilustrader/。

运行您的首个 Backtrader 策略

连接 GitHub,选择 Backtrader 模板或您自己的策略仓库,锁定 mementum/backtrader 或 backtrader2 版本,添加您的经纪商凭据,选择区域,即可在 TradingHost 运行时中启动。