阅读约 13 分钟· 发布于 2025年5月6日· 更新于 2026年5月14日

GitHub 交易机器人:创建您的开源机器人

GitHub 上充斥着可供 fork、研究和部署的交易机器人。然而,您仍然需要懂得区分一个认真的项目和一个被遗弃的仓库,尤其要知道如何在不暴露密钥也不盲目下注的情况下进行调整。本指南为您提供从公开仓库出发,最终得到一个您理解、测试并掌控的机器人的方法。

作者 Florent Poux
审校 Benjamin Sultan

GitHub 上充斥着可供 fork、研究和部署的交易机器人。然而,您仍然需要懂得区分一个认真的项目和一个被遗弃的仓库,尤其要知道如何在不暴露密钥也不盲目下注的情况下进行调整。本指南为您提供从公开仓库出发,最终得到一个您理解、测试并掌控的机器人的方法。

为什么 GitHub 是机器人的绝佳起点

托管在 GitHub 上的交易机器人基于开放代码:您可以看到每一行,跟踪修改历史,识别活跃的贡献者。这与按订阅出售的黑箱截然相反。这种透明性改变了信任的性质:它不再取决于卖方的营销,而取决于您亲自阅读的代码质量。

选择开源基础有三个具体好处:

  • 完全可见性:进场、出场和风险管理逻辑在任何部署之前都是可读的。
  • 可追溯的社区:issue、pull request 和提交频率表明项目是活跃的还是孤立的。
  • 可逆性:Git 保留每个版本。降低性能的修改可以用一条命令回滚。

一个拥有超过 100 位贡献者和月度发布的活跃仓库,在统计上比一个 18 个月没有提交的明星项目更可靠。

七个值得一看的仓库

与其列出详尽清单,不如介绍在认真工作流程中反复出现的项目。所有项目都是公开的、维护良好的,可用于教育或原型开发目的。

仓库 语言 专长 强项
freqtrade/freqtrade Python 加密多交易所 原生回测、hyperopt、Telegram 控制
ccxt/ccxt Python, JS, PHP 交易所库 100+ 统一交易所,每周维护
jesse-ai/jesse Python 加密、研究 清晰的 API,集成风险管理
hummingbot/hummingbot Python 做市 DEX + CEX,即用型策略
nautechsystems/nautilus_trader Python, Rust 专业研究、多资产 性能、事件驱动、机构级
QuantConnect/Lean C#, Python 云端回测、多资产 历史数据、集成平台
Robinhoodies/awesome-quant 资源列表 用于发现其他项目的主题索引

按三个标准筛选:过去 60 天内有提交、超过 50 个已关闭的 issue、不仅仅是 README 的文档。如果缺一不可,请绕道而行。

选择语言:真正重要的是什么

语言不是意识形态的选择,而是生态系统的选择。Python 在量化分析中占主导地位,因为 Pandas、NumPy 和 scikit-learn 都在这里。如果您的机器人需要与 Web 界面共存,JavaScript 就有理由。C++ 和 Rust 只有在延迟以微秒衡量时才有理由。

语言 选择时机... 避免时机...
Python 您测试策略、集成机器学习或入门 您追求纯粹的高频做市
JavaScript / TypeScript 您的机器人有 Web 仪表板,通过 web3.js 在 DEX 交易 您需要重型数值计算
Rust / C++ 您与经纪商同地部署,亚毫秒延迟 您是初学者或在做原型
Go 您编排微服务,并发执行 您需要丰富的数据生态

对于 90% 的场景 — 个人、业余量化交易者、首次自动化 — Python 仍然是最佳折中。

完整工作流程:从 fork 到部署

以下是经验丰富的开发者遵循的顺序。没有任何步骤是可选的。

1. Fork 和探索

将仓库 fork 到您的账户。在本地克隆。阅读 READMECHANGELOG 和至少两个示例策略文件。如果您在一小时内无法理解结构,那么该项目对您来说太晦涩了 — 选择另一个。

2. 隔离的环境

创建虚拟环境(venvpoetryconda)。从 requirements.txtpyproject.toml 安装依赖项。将您的配置版本化到 .env.example 文件中,并将 .env 放入 .gitignore。这种纪律可以避免 95% 的密钥泄露。

3. 策略配置

精确定义:

  • 资产:主要加密货币(BTC、ETH)、流动性外汇货币对、高成交量股票。
  • 时间周期:1m、5m、1h、4h、1d。时间周期越短,延迟和费用越重要。
  • 指标:RSI、MACD、EMA、ATR。限制为三个汇合信号以避免过度优化。
  • 每笔交易风险:资本的 0.5 至 2%,在配置中硬编码。

4. 诚实的回测

将数据分为三组:训练(60%)、验证(20%)、样本外测试(20%)。永远不要在样本外测试上优化。监控四个指标:

  • CAGR:年复合增长率
  • 最大回撤:从高点的最大损失
  • 夏普比率:风险调整后的回报(目标 > 1)
  • 盈利因子:总收益 / 总亏损(目标 > 1.5)

回测中的夏普 3 是可疑的。要么策略很好,要么过拟合了 — 而且几乎总是第二种假设。

5. 模拟交易

将机器人连接到测试网环境(Binance Testnet、Kraken Demo)或 dry-run 模式。运行至少两周。您将在那里发现回测无法显示的内容:真实延迟、被拒订单、WebSocket 断开。

6. 渐进式部署

从预期资本的 5 至 10% 开始。如果指标保持在预期范围内,每 30 天加倍一次。托管在靠近您交易所区域的 VPS 上(Binance 用东京,Bitstamp 用法兰克福)。

保护 API 密钥:不可妥协的规则

公开仓库被持续扫描,寻找看起来像 API 密钥的字符串的机器人。一个密钥暴露 30 秒就可能足以掏空一个账户。三条要刻在心里的规则:

  1. 代码中绝不出现明文密钥。 使用 python-dotenv、AWS Secrets Manager 或 HashiCorp Vault。
  2. 最小权限。 在交易所级别启用「交易」,但禁用「提现」。
  3. IP 限制。 在 Binance、Kraken 或 Coinbase 的 API 设置中,将您的 VPS IP 加入白名单。

如果您不慎提交了密钥,立即在交易所撤销 — 即使您从提交中删除,Git 历史也会保留它。

代价高昂的错误

  • 克隆后直接上线运行。 为另一个市场或另一个时间周期配置的仓库永远不会收敛。
  • 在单一市场周期上回测。 在 2020 年牛市中有效的策略可能在 2022 年震荡市中崩溃。覆盖至少 5 年的数据。
  • 忽略滑点和费用。 没有费用的回测通常会高估业绩 30 至 50%。
  • 止损缺失或过宽。 没有严格的止损,单一黑天鹅事件就足以抹去两年的收益。
  • 没有监控。 凌晨 3 点崩溃且直到第二天早晨才被注意到的机器人可能默默累积损失。

长期演进开源机器人

机器人不是成品,而是一个活生生的系统。三个持续改进的杠杆:

  • 按标签版本化。 每次生产部署都获得 Git 标签(v1.2.0)。回滚变得轻而易举。
  • 记录一切。 每个下单的订单、每个生成的信号、每个 API 错误都必须进入文件或 Loki / Datadog 这样的服务。
  • 每季度校准。 每 3 个月在近期数据上重新训练参数,以跟随市场状态。

为什么在 GitHub 之后转向 Obside

如果您已经掌握了 GitHub,那么您知道一个自动化策略的价值 — 但也知道它在维护、基础设施和调试上消耗的所有时间。创建免费 Obside 账户让您能够用自然语言将想法转化为可运行的策略,在几秒钟内回测,并连接到您的经纪商而无需管理服务器。您保留 DIY 精神而无需承担运营成本。

仅限教育内容。不构成投资建议。交易涉及风险,包括可能的资本损失。

常见问题

使用 GitHub 机器人需要懂编程吗?

至少需要一点。您必须知道如何克隆仓库、阅读配置文件、执行脚本和理解错误消息。如果您想修改策略或修复 bug,需要中级水平的 Python 或 JavaScript。没有这些,像 Obside 这样的无代码平台更合适。

开源机器人的主要风险是什么?

头号风险是 API 密钥泄露,其次是部署未经测试的策略。由于代码是公开的,任何人都可以分析逻辑的缺陷。这也是这些项目快速改进的原因:bug 比专有软件更快被识别和修复。

GitHub 机器人真的免费吗?

许可证免费,但执行不免费。VPS 每月 5 至 30 欧元,加上交易所交易费用(每笔交易 0.05 至 0.10%),可能还有市场数据订阅。在资本有限的情况下,这些成本会侵蚀业绩。

起步用什么策略?

BTC/USDT 在 4 小时周期上的指数移动平均线交叉(EMA 20 / EMA 50)。简单、回测稳健,而且大多数仓库中都有代码。只有当简单版本盈利时才增加复杂度。

需要多少资本才值得?

低于 2,000 欧元,费用和滑点主导业绩。介于 2,000 和 10,000 欧元之间,您可以验证策略是否站得住脚。再往上,您开始测量真正的收益曲线。

如果仓库被遗弃了怎么办?

Fork 它,自己维护,或者选择一个活跃的项目。一个一年没有提交的仓库会累积技术债务:变更的交易所 API、弃用的库、未修复的漏洞。隐藏成本太高。

相关文章

相关文章

在你的投资组合上试用 Obside

连接你的券商,一句话构建你的投资组合。

开始