PyCryptoBot / 项目研究站

PyCryptoBot:一个没有 PyPI 包、主线停在 2024 年的加密货币交易机器人

PyCryptoBot 是一个用 Python 写的加密货币自动交易机器人,Apache-2.0 许可,仓库有 2056 Star、719 Fork。它的定位不是「帮你赚钱」,而是把你自己定好的交易规则,变成一台能 7×24 小时、按周期、按信号反复执行的程序——回测、模拟、实盘三种模式共用同一套策略代码。

但上手之前有三件事必须先说清楚,因为它们会直接改变你的操作步骤:① 它没有 PyPI 包,pip install 这条路不存在,只能 git clone 或跑容器;② 默认分支 main 的最后一个提交是 2024-03-04,最新发行版 8.2.4 也是同一天;③ beta 分支上有一条 2025-05-26 的修复,至今没有合并进 main

本站用仓库源码、配置文件样本与公开接口做逐项核对,把「你现在拿到的是哪一版、装不装得上、信号到底怎么定、回测能信到什么程度」讲清楚。所有结论文末都标了验证环境,不做任何收益声明

Apache-2.0 许可2056 Star / 719 Fork主语言 Python验证日期 2026-09-21
本文验证环境
  • PyCryptoBot v8.2.4(main=1fa9aaef,2024-03-04)
  • Python 3.11(官方 Dockerfile 基线)
  • 交易所范围:Binance / Coinbase / KuCoin
  • 验证日期 2026-09-21
  • 本站未实机运行机器人

项目来源

whittlem/pycryptobot(GitHub 仓库首页截图)

whittlem/pycryptobot 的 GitHub 仓库页面截图 打开仓库 ↗
仓库首页截图,2026-09-21 采集。仅证明仓库页面与采集时点上可见的信息(仓库名、语言、许可标识、文件列表),不代表任何策略或收益结论。仓库内容会随时间变化,请以你打开时的页面为准。
版本现状

现在 clone 到的是哪一年的代码?

README 给的升级方式是「git checkout main 然后 git pull」。所以问题变成:main 上到底停在哪一天。下面这张表把几个容易混淆的时间点分开列。

观测项具体值依据注意点
main 分支最后提交1fa9aaef,2024-03-04GitHub Commits APIREADME 让你取的就是这一版,它是「你能拿到的官方主线代码」
最新发行版8.2.4,2024-03-04GitHub Releases / Tags APImain 同日,没有比它更新的发行版
CHANGELOG 最后一条[8.2.0] - 2023-04CHANGELOG.md8.2.1 到 8.2.4 有 Release,但 CHANGELOG 没补条目,别用它判断最新版本
beta 分支最后提交f5319e42,2025-05-26GitHub Commits APImain 新 14 个月,内容是「取回账户内全部钱包」的修复,未合并
全部分支数18 个(含 dependabot/pip/requests-2.33.0coinbase/advanced_trade_apihotfix/coinbaseGitHub Branches API说明依赖升级与 Coinbase 相关修复都处在未合并状态
仓库 pushed_at2026-03-26GitHub API该时间戳来自其它分支的活动,不代表 main 有更新——只看它会得出错误结论
PyPI 上的包pycryptobot / pycryptobot-api / pycryptobotlib / py-crypto-bot 四个候选名全部 404PyPI JSON API 探测结论限定为「这四个名字不存在」,不排除其它名字;但没有官方包就没有 pip install 路径
为什么把这张表放第一屏:加密货币机器人的教程最容易过时。你按一篇 2023 年的文章操作,遇到报错时很难判断是「自己配错了」还是「代码本来就停在那个年代」。先确认版本,后面的每一步才有参照。本站不评价这个时间线是否正常,只陈述可核对的事实。
main 冻结 2024-03-041fa9aaef,README 让你 pull 的就是它
beta 领先 2025-05-26f5319e42,一条修复至今未合并
Release 8.2.4与 main 同一天,之后没有新发行
无 PyPI 包只能 clone 或跑容器镜像
版本三轨道示意(依据 GitHub 分支、标签与 Release API 于 2026-09-21 采集)。
能力边界

它能做什么,以及它明确不做什么

避免误解的最好办法是把两栏并排看。左边是代码里真实存在的功能,右边是它没有承担的职责。

维度它能做什么它不做什么注意点
交易执行按配置好的周期轮询行情,命中信号时用市价单买入或卖出不预测市场,不提供「必胜策略」,也不保证盈利官方 DISCLAIMER.md 明确写明「crypto trading is a risky business」,并以 as-is 提供、不作任何担保
运行方式常驻进程,按 granularity 指定的周期反复评估不做跨市场套利、不做做空(现货逻辑为主)杠杆相关开关在 scanner 配置里(enableleverage),默认关闭
回测与模拟提供模拟运行与结果统计,可导出交易历史不提供独立的向量化回测引擎模拟结果不能当作未来收益预期,见回测与成本口径
市场范围Binance、Coinbase、KuCoin 三家现货(另有 dummy 假交易所用于测试)不支持 A 股、港股、美股,也不支持链上 DEX「支持」要分维度看,见交易所支持矩阵
配置方式一份 config.json 控制币对、周期、策略开关与风控阈值没有图形化安装向导,也没有官方云托管同一个文件里两处 granularity 写法不一致,是真实易踩点
通知与遥控Telegram 机器人可查状态、手动买卖、启停;另有 Web GUI 与 Web Portal不提供短信、邮件或原生 App 推送要自己申请 Bot Token 并绑定自己的 user_id
策略扩展可写自定义策略与自定义指标文件,升级时不被覆盖没有策略市场,也没有官方策略考核自定义文件的加载优先级是设计机制,详见策略信号
成本核算手续费率从交易所接口读取,卖出时可用对应费率仓库中没有滑点参数,也没有点差与最小下单量的显式配置项这是回测可信度最关键的一环,务必自己补成本假设

它解决的是「纪律」问题

人不睡觉,但人会犹豫。机器的价值在于把已经写清楚的规则不折不扣地重复执行,而不是替你想出更好的规则。规则本身好不好,仍然取决于你。

它把风险留给你

风控开关确实很多(止损、移动止损、防亏损、防卖飞等),但开关的阈值要你自己定。设成什么样,决定了回撤是 5% 还是 50%。

它需要你懂一点运维

没有托管服务,意味着进程守护、日志轮转、断线重连、密钥保管都得自己安排。这部分常被入门教程略过,本站单列了运维与安全

运行方式

四种落地方式怎么选?从本地脚本到 K8s

既然没有 pip install,那么「怎么跑起来」就变成了选型问题。下面四张卡先给出取舍,表格再逐项对照。

本地 clone

克隆仓库、建虚拟环境、按 requirements.txt 安装依赖,然后直接跑 pycryptobot.py。最灵活,但环境要自己收拾干净,且三个钉死的依赖在 Python 3.11 上没有预编译轮子。

Docker 镜像

官方提供容器镜像,Dockerfile 是 multi-stage 构建,编译阶段装 build-essential,运行阶段以非 root 用户(UID 1000)执行。把编译麻烦留给镜像,是省事的一条路。

docker-compose

仓库自带 docker-compose.yaml,把 config.json、日志与图表目录挂载进去,并设置 restart_policy: on-failure。适合一台机器跑单个币对。

Helm chart

仓库里带 chart/ 目录,含 deployment、secret、configmap、serviceaccount 模板。已经用 K8s 的团队可以直接套;否则没必要为此上集群。

对照项本地 cloneDocker / composeHelm chart
依赖编译要自己解决;三个钉死依赖在 Python 3.11 上无 cp311 轮子镜像内已完成编译同 Docker
Python 版本由你决定,但官方只以 3.11.4 为基线固定为镜像内的 3.11.4同 Docker
运行身份随你的登录用户,通常是 root 或管理员非 root,UID/GID 1000由 serviceaccount 决定
配置注入直接编辑工作目录下的 config.json挂载宿主机文件到容器内通过 configmap 与 secret
进程守护要自己写 systemd 或计划任务compose 的 restart_policy 兜底由 Deployment 保证
适用场景调试策略、改代码、看日志最直接长期跑单个或少数币对,最平衡已有集群、需要多实例编排
主要注意点环境容易脏,换机难复现要理解挂载路径与容器时区学习成本明显高于收益,除非已有集群
一个本机无法替你验证的边界:本站没有执行完整安装(依赖里包含 matplotlib、dash 等重包),因此上表的「依赖编译」一栏是依据 PyPI 轮子元数据推断的,不是实测结论。「没有 cp311 轮子」只意味着需要本地编译,不等于一定失败——Linux 上有编译器就能过,Windows 上没有构建工具则很可能卡住。完整的探测结果与命令见安装与运行方式
策略与配置

信号不是「四个指标」,而是一组方法加一套点数制

网上不少文章把 PyCryptoBot 的描述成「四个指标一起判断就买入」。看源码会得到更准确的画面:策略是一个有明确方法清单的类,另有一套独立的点数制自定义策略。

七个方法构成策略面

models/Strategy.py 对外的方法依次是 is_buy_signalis_sell_signalis_sell_triggeris_wait_triggercheck_trailing_buycheck_trailing_sellget_action。买与卖是分开判断的,超时等待与移动止损也各自有方法。

点数制自定义策略

Strategy_CS.py 用的是「点数制」:一组信号各自投票,累计到阈值才动作。它不等于官方标准策略,而是给愿意调参的人准备的另一套入口。

你的改动不会被升级覆盖

如果创建 models/Strategy_myCS.py,导入时会优先使用你的版本,只有导入失败才回落到官方文件。这是刻意设计的升级安全机制,值得好好用。

配置分组代表开关它管什么注意点
买入过滤(约 8 项)disablebullonlydisablebuynearhighdisablebuymacddisablebuyobvdisablebuyelderraydisablefailsafefibonaccilowdisableprofitbankreversal(进阶样本另有 disablebuyema控制买入前要过几道条件开关的语义是「禁用该条件」,注意是「disable」而不是「enable」
卖出与风控(约 11 项)sellatlosssellatresistancetrailingstoplosstrailingstoplosstriggernosellmaxpcntnosellminpcnt,进阶样本另有 dynamictsltsl*trailingsell*preventloss*selllowerpcnt决定什么时候认亏、什么时候锁定利润卖出侧维度比买入侧多——风控是这套机器人真正的主战场
仓位与规模(约 3 项)buymaxsizebuyminsize,进阶样本另有 buylastsellsizetrailingbuypcnt限制单笔投入的上限与下限与交易所的最小下单量、精度规则配合不当会直接下单失败
模式与输出livewebsocketautorestartgraphsstatsuse_sell_fee决定实盘还是模拟、是否开推送、是否出图与统计live 是 0/1 开关;把它当布尔值看,不要留空
时间周期granularity:固定 7 档(1m / 5m / 15m / 30m / 1h / 6h / 1d)决定机器人多久评估一次周期枚举是封闭集合,写别的字符串会报 Invalid Granularity
写法不一致的坑官方样本里 binance"1hour",而 coinbasecoinbasepro"3600"同一个字段两套写法照抄样本时若把两种写法混用,容易配出意料之外的周期
路线选择

按你的实际情况选路线,而不是按功能多少

下面三条路线的前置条件完全不同。先确认条件、再选工具,比先选工具再补条件省时间。

你的情况建议路线理由第一件该做的事
会 Python,也愿意管进程与日志本地 clone 或 compose 自建机器人本身不复杂,难点在长期维护而不是启动一次先读版本与分支现状,确认要取哪个分支
只想先看看它跑起来什么样Docker 路线,live 保持 0把编译与环境问题交给镜像,先用模拟模式观察行为准备一份最小 config.json,只配一个币对
目标是「拿到某个币的区间指标」先用技能路线把数据拿到手只为看一个指标而部署一台常驻机器人,成本明显不划算实盘运维与安全
想验证一套自己的规则是否可行clone 后用模拟模式反复跑模拟模式可以低成本暴露规则本身的漏洞把成本假设(手续费、滑点)先写下来
打算直接上实盘先不要仓库中没有滑点参数,回测与实盘之间的差距需要你自己量化实盘运维与安全的检查清单
需要跨市场编排多实例Helm chart仓库已提供 chart 目录;但只有已有集群时才值得确认 secret 注入方式与镜像拉取权限
完全不想碰服务器技能路线或其它托管产品本项目没有官方托管,长期运行必须有人看着明确「谁来负责半夜的三点挂掉」这件事

适合:想把纪律外包给机器的人

你的规则已经写得出来,缺的只是执行力。PyCryptoBot 的价值在于不知疲倦地重复,并且把每次动作记进日志与通知。你愿意花一两个小时把配置与运维补齐。

适合:能接受「先亏损也是结果」的人

模拟和实盘都会出现连续亏损与长时间空仓。如果这两件事会让你推翻规则,那么问题不在机器人,而在规则本身还没有被验证过。

不适合:想要收益承诺的人

它是执行工具,不是收益来源。官方免责声明明确写了加密交易有风险并以 as-is 提供;本站同样不做任何收益声明。任何把它的案例收益当作普遍结论的读法都是错的。

不适合:目标市场是 A 股的人

它只面向 Binance、Coinbase、KuCoin 的加密货币现货。A 股的行情、交易规则与结算方式都不同,这条路走不通,需要换别的工具组合。

技能路线演示

如果只想拿数据而不想部署机器人,交互是什么样

下面这张是本机 EasyClaw 的实际对话截图——一句话取比特币近 30 天日线并计算区间指标。它展示的是「技能路线」的操作形态:不用建项目、不用管进程、不用配密钥。

这张图能说明什么、不能说明什么:它能说明研究类任务(取数、算指标)用自然语言的成本极低;它不能说明技能路线可以替代机器人——那张表里没有一行是「按规则持续下单」。两条路线的分工在对比页里逐项列了。另外提醒:不要把任何交易所的真实 API Key 粘贴进对话或发给别人,截图里也不要出现密钥。
FAQ

关于 PyCryptoBot 的高频问题

以下回答基于 2026-09-21 的源码与公开接口核对;涉及代码行为的部分以官方仓库实现为准。本站未实机运行机器人,也不做收益声明。

PyCryptoBot 现在还能用吗?

能核对到的事实是:仓库未归档,许可为 Apache-2.0,main 分支与最新发行版 8.2.4 都停在 2024-03-04,beta 分支上有 2025-05-26 的提交尚未合并。这三条合起来说明「代码可用、但主线不再前进」。能不能用在你身上,取决于你的交易所是否仍在这三个之内、以及你能否接受一套 2024 年的依赖钉子。本站不替官方判断项目是否「还活跃」,也不写「已停止维护」这类结论。

为什么不能 pip install

因为 PyPI 上不存在对应的包:我们探测的 pycryptobotpycryptobot-apipycryptobotlibpy-crypto-bot 四个名字全部返回 404。仓库里也没有 setup.pypyproject.toml 这类打包元数据。所以安装只有两条路:git clone 仓库,或者使用官方提供的容器镜像。结论限定为「这四个名字不存在」,不排除其它名字,但在没有官方包的情况下,任何教程里的 pip install 都值得怀疑。

我该 clone 哪个分支?

README 给的是 main。如果你需要那个 2025 年的钱包修复,就得看 beta;但要注意它是 beta,未经发行验证。稳妥做法是:先按 README 取 main 跑通,确认问题确实出在那条修复上,再切到 beta。切之前先把 main 的 commit 记下来,方便回退。

Docker 和裸机,哪个更省事?

如果你只是想让它跑起来,Docker 更省事:官方镜像是 multi-stage 构建,编译阶段装了 build-essential,运行阶段以非 root 用户(UID 1000)执行,还设置了 matplotlib 的配置目录。而裸机安装要自己解决三个在 Python 3.11 上没有预编译轮子的钉死依赖(matplotlib==3.3.3pyyaml==5.3.1websockets==9.1)。反过来说,如果你要改代码、加自定义策略,裸机 clone 更方便,因为镜像里改完还要重新构建。

它支持哪些交易所?

交易所枚举里一共 5 个值:coinbasecoinbaseprobinancekucoin,以及测试用的 dummy但「支持」必须分维度说——行情取数、回测模拟、实盘下单在代码里由不同模块承担,不存在一个「全支持」的复选框。本站的矩阵页是按各交易所 api.py 的方法覆盖推导出来的,并已标明这是源码推导而非交易所官方口径。另外提醒:枚举名沿用 coinbasepro,但配置样本里它的 api_url 指向的是 api.exchange.coinbase.com

跑起来就能赚钱吗?

不能这样理解。它是一台执行器:把你写清楚的规则不折不扣地重复执行,并记录下来。规则本身能不能盈利,取决于市场与你对成本、仓位、风控的判断。另外有三处需要你自己补齐的东西——仓库里没有滑点参数,手续费率虽然可以从交易所接口读,但离线评估时拿不到,最小下单量与精度规则也要和交易规则配合。这些都会改变「看起来盈利」与「实际盈利」之间的距离。官方免责声明明确写明加密交易有风险,软件以 as-is 提供、不作任何担保。

我该用它,还是先用技能盘把数据看一遍?

看你的下一步要交付什么。如果近期目标只是「搞清楚某个币现在什么情况」,用技能路线取数与算指标更快,成本也低得多;如果近期目标是「让一套规则 7×24 自动执行」,那就必须走机器人路线,并且要准备好承担运维。两者不冲突,常见做法是先用技能路线做探索,确认值得投入后再把规则写进机器人配置。需要提醒的是:本机技能目录里没有任何加密货币交易机器人技能,所以技能路线在「持续下单」这件事上没有对应能力。

下一步:怎么先确认你拿到的是哪一版代码?

既然 README 让你从 main 分支开始,那么第一件事就是把这条主线的时间点弄清楚:它停在哪一天、beta 上有什么没合进来、以及为什么仓库的活动时间戳会误导你。