源文件:research/quant_digests/2026-04-13_2044_watchlist-topscore-rotation-shell.md
README.md + ARCHITECTURE.md + simple_multi_bot.py + multi_pair_portfolio_trader_v5.py)+ Binance USDⓈ-M 15m/5m public-data portability probeper-asset pullback-resumption alpha × cross-asset top-score rotation。> base alpha = oversold pullback inside short-term uptrend, then rotate into the strongest watchlist names.
不是“多开几个币就更稳”。 也不是“机器人并发扫描=alpha”。 更不是把 portfolio bot 这层工程壳误读成策略本体。
repo 里真正能被 desk 拆出来的,是一条两层结构:
RSI(14) 超卖 + EMA9 > EMA21 + volume spike,赌的是上升结构内的回踩恢复;翻成人话:
所以这轮我把它归到 raw alpha 壳,但不是完整策略: > alpha 本体是单币 resumption;rotation 只是放大候选覆盖面。
EveraldtahMulti-pair cryptocurrency trading bot for KuCoinHermes Bot | Mon Apr 13 11:56:24 2026 +0000 | Initial commit: multi-pair crypto trading bot systemREADME.mdARCHITECTURE.mdsimple_multi_bot.pymulti_pair_portfolio_trader_v5.pyreports/artifacts/quant_digests/2026-04-13_multi_pair_watchlist_rotation_probe.pyreports/artifacts/quant_digests/multi_pair_watchlist_rotation_probe_summary_2026-04-13.jsonreports/artifacts/quant_digests/multi_pair_watchlist_rotation_probe_detail_2026-04-13.csv> 这份 repo 真正有用的不是“多币同时跑”这层工程感,而是 oversold-in-uptrend resumption 这条单币 raw alpha + watchlist top-score rotation 这层组合壳;但我把它迁到 Binance majors perp 后,15m 和 5m 都明显不过成本线。
> 证明不靠 README 自述,而靠源码阈值本身:simple_multi_bot.py 里 entry score 是 0.5 + RSI<30 ? +0.2 : 0 + EMA9>EMA21 ? ±0.15 + volume_ratio>1.5 ? +0.1 : 0,score>=0.7 才买;我按 repo 默认 TP=+3% / SL=-1.5% / max_positions sweep / next-bar-open entry 把它迁到 Binance USDⓈ-M 八个 majors 的 15m/5m 数据上,结果 15m 主口径 207 笔、单笔平均净收益 -22.9 bps,5m 主口径 252 笔、单笔平均净收益 -28.1 bps,而且几乎全靠止盈/止损出场,说明 alpha 本体还不够硬。
因为它补的是池子里相对少的一种原型:
RSI + EMA + volume 是可以独立下单的;所以它虽然没过线,但仍值得进研究池: > 不是为了立刻实盘,而是为了把“单币信号 × 跨币路由”这类架构拆开看清楚。
simple_multi_bot.py:核心不是并发,而是一个很朴素的 3 因子打分器源码里最关键的不是 asyncio,而是下面这组规则:
0.5RSI < 30:+0.2RSI > 70:-0.2EMA9 > EMA21:+0.15,反之 -0.15volume_ratio > 1.5:+0.1score >= 0.7:BUYscore <= 0.3:SELL注意这里的设计语言:
这已经是一条清楚的 raw alpha 壳,不只是机器人工程。
README.md / ARCHITECTURE.md:repo 想表达的是“单币会无聊,所以要 watchlist 轮动”repo 的叙事很明确:
翻成人话: > 它不是先发明了更好的 alpha,而是先发明了更大的候选池。
这点对 desk 很重要,因为很多 bot 的问题根本不是 entry rule 不会写,而是:
multi_pair_portfolio_trader_v5.py:v5 增加了很多壳,但 alpha 核心没变强多少v5 加了:
但从 desk 视角,最需要先拆开的不是这些“大而全”组件,而是:
如果这三件事先答不清,后面的相关性过滤、Kelly、再平衡都只是精装修。
/fapi/v1/klines15m 与 5m2026-03-01 00:00 UTC 到 2026-04-13 20:00 UTCBTCUSDT / ETHUSDT / SOLUSDT / LINKUSDT / AVAXUSDT / DOTUSDT / ADAUSDT / DOGEUSDTscore >= 0.7 在下一根开盘做多;+3% take profit、-1.5% stop loss 或 score <= 0.3;4 bps fee + 2 bps slippage;max_positions = 3,再做容量 sweep:1 / 2 / 3 / 5。这不是在复刻 KuCoin live bot 的全部实现; 而是在问一个更 desk 的问题: > 把这条 alpha 壳搬到 Binance 短周期 perp 上,它到底有没有 first verdict 的生存性?
15m 主口径不过线15m, max_positions=3:
20730.9%-22.9 bps-4734 bps41.0 bars(约 10.3h)这不是“略差一点”,而是: > repo 这套信号直接迁过来,在 15m 上明显不够覆盖成本。
5m 更差,不是更快就更好5m, max_positions=3:
25229.8%-28.1 bps-7074 bps125.3 bars(约 10.4h)注意这个持有时间很关键:
5m 上触发;容量 sweep:
#### 15m
max_pos=1:83 笔,单笔 -37.3 bpsmax_pos=2:145 笔,单笔 -31.7 bpsmax_pos=3:207 笔,单笔 -22.9 bpsmax_pos=5:319 笔,单笔 -18.1 bps#### 5m
max_pos=1:91 笔,单笔 -28.5 bpsmax_pos=2:171 笔,单笔 -30.4 bpsmax_pos=3:252 笔,单笔 -28.1 bpsmax_pos=5:394 笔,单笔 -22.7 bps结论不是“开更多仓就更好”,而是: > rotation 能分散一点单币噪音,但救不了本体信号太弱。
主口径里:
15m sell_frac = 0.05m sell_frac = 0.0也就是说,绝大多数仓位不是靠“信号翻空”退出, 而是靠:
TPSL这很说明问题: > 当前 score 更像 entry gate,不像闭环状态机。
15m 主口径里还有正 pocketDOGEUSDT:29 笔,均值 +39.7 bpsETHUSDT:31 笔,均值 +12.2 bpsBTCUSDT:20 笔,均值 +18.0 bpsSOLUSDT:39 笔,均值 -69.7 bpsAVAXUSDT:18 笔,均值 -87.0 bpsDOTUSDT:31 笔,均值 -45.9 bps5m 也只有局部正 pocketAVAXUSDT:25 笔,均值 +18.0 bpsETHUSDT:37 笔,均值 +8.3 bps但:
ADA / SOL / LINK / DOT 全都比较差。这说明最合理的读法不是“这策略废了”,而是: > 它更像少数标的 pocket 才成立,不能拿广谱 watchlist 直接平推。
因为它已经回答了:
oversold + trend intact + volume confirmswatchlist 里 score 更高的币TP / SL / sell signal但它还没回答清楚:
所以最稳妥的分类是: > 可独立复现的 raw alpha 壳;但还不是能直接实盘的完整策略。
这个 repo 最容易被误读的地方就是:
真正决定成败的还是:
RSI<30 在 crypto perp 上是不是太死;EMA9>EMA21 对短周期来说是不是太松;volume>1.5x 是否真的能识别恢复而非脉冲尾声。如果真要继续,最合理的迁移不是照抄,而是:
也就是: > 把它当“机会路由器模板”,不要当“信号已验证模板”。
1m/3m/5m/15m 研发的直接价值5m 不是天然更强,只是更吵按优先级,我会建议这样推进:
只保留近样本成本后为正的 pocket:
15m 先看 BTC / ETH / DOGE5m 先看 ETH / AVAX再重跑:
4/6/8/10 bps 单边)可替换为:
zscore pullback in intact trendEMA band overshoot + recoveryshort-term drawdown percentile + trend filter因为当前 RSI<30 在 perpetual 上太像“接 falling knife 的弱版”。
当前 exit 几乎只靠 TP/SL,说明 score<=0.3 不够工作。
优先测试:
8h / 12h)EMA9<EMA21)也就是:
> 这份 repo 值得收下的不是“多币 bot”这个外壳,而是“单币 resumption alpha 可以通过 watchlist top-score routing 提高候选覆盖”这个研究框架;但当前这套 RSI<30 + EMA9>EMA21 + volume spike 直译到 Binance short-cycle perp,结论很明确:还不够硬。