PyCryptoBot实战:四个信号同时确认才出手,两年只产生一笔交易

一个要求四个信号同时确认才出手的交易机器人

PyCryptoBot 是一个加密货币交易机器人框架,但它的策略引擎并不限于加密——用在股票上同样适用。它和之前写过的所有策略框架最大的区别在于信号确认的严格程度:不是只看一个指标,而是要求 Golden Cross、EMA 趋势、MACD 金叉、布林带上轨突破四个信号全部确认后才出手。

结果就是——两年只产生了一笔交易。这和上一篇 Blankly 的 Golden Cross 策略在同一个区间、同一只股票上触发了一模一样的买入日期(2025 年 9 月 22 日),但 PyCryptoBot 多了一层逻辑:不仅要 SMA50 上穿 SMA200,还要 EMA12 在 EMA26 之上、MACD 在 Signal 之上、价格突破布林带上轨——四个条件同时满足才算有效信号。最终收益 +31.30%,夏普 1.17,回撤 -13.82%。

起步

EasyClaw 官网下载安装。不需要手动装 PyCryptoBot、不需要配交易所接口。

打开后左侧找「Skill」→「Skill Creator」。灰显的话去「设置 → 通用」打开「开发者模式」重启。

创建 Skill

在 Skill Creator 里告诉 EasyClaw:

帮我把 GitHub 上的 PyCryptoBot(https://github.com/whittlem/pycryptobot)做成一个回测 Skill。我希望输入股票代码和起止日期,自动拉数据,用 Golden Cross + EMA 趋势 + MACD + 布林带四个条件复合确认的信号逻辑跑回测,输出 TradingGraphs 六面板图表和完整交易统计。

Skill 创建好后:

用 PyCryptoBot 回测 AAPL,从 2024 年中到现在,Bull Only 模式,四信号复合确认策略

image

image

PYCROBOT_AAPL_tearsheet

回测结果:四个条件筛到最后只剩一笔交易

指标vs Blankly(单一 Golden Cross)
总收益率 +31.30% +31.56%(几乎一样)
CAGR 14.49% 14.61%
夏普比率 1.172 0.968
索提诺 1.673 1.381
最大回撤 -13.82% -13.82%(完全一致)
交易次数 1 2(一买一卖)
胜率 100% 100%
数据量 469 条日线 ~500 条

的交易

#买入日买入价卖出日卖出价收益
1 2025-09-22 $256.08 2026-07-27 $336.91 +31.56%

和 Blankly 的 Golden Cross 在同一个日期触发买入——2025 年 9 月 22 日,SMA50 从下方穿过 SMA200。区别在于,PyCryptoBot 还额外检查了三个条件:EMA12 必须高于 EMA26(短期趋势确认)、MACD 必须高于 Signal(动量确认)、价格必须突破布林带上轨(波动率确认)。四个条件在这一天同时满足——在两年 469 个交易日中,这种情况只出现了一次。

多条件复合确认的代价和收益

PyCryptoBot 和 Blankly 在同一个股票、同一个区间、同一笔交易上拿到了几乎一样的收益(31.30% vs 31.56%)。但 PyCryptoBot 的夏普比率更高(1.17 vs 0.97),索提诺比率也更高(1.67 vs 1.38)。

差异的来源不是交易执行,而是空仓期更多。Blankly 虽然也只有一买一卖,但它的信号逻辑更简单——Golden Cross 触发了就买入,回测结束时卖出。PyCryptoBot 在买入之前还有 14 个月的空仓等待——这段空仓期的日收益率为零,不贡献波动,所以拉高了夏普和索提诺。

多条件复合确认的本质是用交易频率换信号质量。每多一个确认条件,就多一层过滤——假信号被滤掉了,但真信号也可能被滤掉。在 2024-2026 的苹果上,额外的三个条件既没有错过真信号(因为的 Golden Cross 恰好在同一天也满足了其他三个条件),也没有产生新的假信号(因为根本没再出现四个条件同时满足的其他日子)。

但换个区间换个标的,结论可能完全不同。如果苹果在 2026 年出现了另一个 Golden Cross 但 MACD 没有金叉——Blankly 会买入而 PyCryptoBot 会空仓。多一层过滤就是多一层踏空的风险。

六面板 TradingGraphs——一张图看懂策略全貌

PyCryptoBot 的原生可视化模块叫 TradingGraphs,一张图上六个面板:

面板内容作用
价格 + EMA12/EMA26 + 买卖信号标注 最核心——价格走势和信号触发点
布林带(20,2)灰色通道 波动率区间——买入时价格是否突破上轨
SMA20/50/200 + MACD 子图 均线排列 + MACD 交叉确认
RSI(14) + OBV 能量潮 超买超卖 + 资金流向
Elder Ray 多空柱 多空力量对比
组合净值 vs 标的走势 策略是否跑赢买入持有

六个面板从上到下排列,买入点在每个面板上都可以交叉验证——在面板①看到价格上穿 EMA,在面板②看到布林带上轨突破,在面板③看到 MACD 金叉——一眼确认四个条件是否同时成立

常见报错

错误原因解决方法
回测无任何交易 四个条件从未同时满足 减少确认条件数量,或放宽参数
TradingGraphs 中某面板空白 该指标数据量不足 延长回测区间

下一步

  • 去掉布林带条件,保留其他三个,看是否产生新的交易信号
  • 把策略移植到加密市场——PyCryptoBot 的原生战场——看多条件确认在 BTC 上的效果

资源链接:

你做策略的时候习惯用几个条件做信号确认?有没有因为多加了一个条件而错过一波大行情的经历?欢迎聊聊。

posted @ 2026-07-28 10:43  PC修复电脑医生  阅读(0)  评论(0)    收藏  举报