源文件:research/quant_digests/2026-04-15_0823_oversold-confluence-scalp-shell.md
README.md + backend/agents/scalp_agent.py + backend/agents/signal_generator.py + backend/tests/test_scalp_agent.py + backend/agents/order_executor.py)+ Binance Spot BTCUSDT/ETHUSDT 1m 近 10d portability probeRSI(7) / BB(20,2) / VWAP(20) / StochRSI / MFI / OBV slope 同时指向“跌过头但还没彻底失控”时,未来 5~15m 更容易反弹;ADX 在这里主要是 regime gate,不是 alpha 本体先回答 base alpha:它的 base alpha 很清楚,不是“大模型帮你交易”,而是 1 分钟级过冲后的均值回归。 这个 repo 真正值得 intake 的,也不是前端或多 agent 架构,而是 ScalpAgent 里那条已经写成可下单壳的 long-only oversold scalp。
看的是 gl4500/coinbase-ai-trader。repo 表面是 Coinbase 多 agent 交易系统,但真正对当前 desk 有价值的,不是 AI 包装,而是 backend/agents/scalp_agent.py 里那条非常具体的短周期策略:
BTC-USD / ETH-USD,明确把标的限制在 tight-spread majors;60s 扫一次 entry,每 1s 检查 exit;RSI(7) < 25 给 +2,<35 给 +1price <= BB lower band 给 +2,<= BB mid 给 +1VWAP distance < -0.5 给 +2,<0 给 +1StochRSI K < 20 给 +1OBV slope > 0.15 给 +1MFI(7) < 25 给 +1ADX(10) 只拿来分市场状态:ADX > 25 视作 trend regime,最低入场分数 5ADX < 20 视作 range regime,但要求更高,最低分数 6TP = +0.30%SL = -0.25%ATR(7) * 1.5 trailing stop15m time exit20% 资金、最多 2 个并发仓位、单日回撤超 3% 直接停机0.006%/side,round-trip 0.012% = 1.2 bps,并据此写明最小可行 TP 大约 0.15%,实际用 0.30% 给 2.5x cushion。这就不是“指标拼盘 idea”,而是已经接近 production shell:entry / regime / exit / sizing / risk / cost floor 都在源码里。
BTCUSDT/ETHUSDT 1m 做近 10d portability probe,看未来 5m/15m 回报和简单 TP/SL/time-exit 壳是否还活着。5 分入场 比 7~8 分极端入场 更健康。 这点很值钱,因为它说明更深的 oversold 不一定更有 edge,很多时候只是接更掉落的刀。1m;15m;3m/5m 降噪迁移;我做了一个快速移植版:把 repo 的 confluence 打分、ADX gate、TP/SL/time-exit 迁到 Binance Spot BTCUSDT/ETHUSDT 1m 近 10d(各 14,400 根 bar)上;为保持速度,这里没复刻 Coinbase tick 级 live entry,也暂时没加 trailing stop,只保留最核心的 TP/SL/time 壳。
对所有触发 entry 的 bar:
BTCUSDT1,989(约 13.8% bar)5m 平均:+0.07 bps15m 平均:+1.17 bps15m 中位数:+1.60 bpsETHUSDT2,001(约 13.9% bar)5m 平均:+0.03 bps15m 平均:+0.94 bps15m 中位数:+2.85 bps这说明一件事:这条 alpha 更像 10~15m 的 bounce,不是 1~2 根 bar 内立刻完成的 ultra-instant scalp。
按 entry score 分桶后,未来 15m 表现是:
BTCUSDTscore=5:+3.17 bpsscore=6:-0.02 bpsscore=7:-0.10 bpsscore=8:+0.97 bpsETHUSDTscore=5:+3.14 bpsscore=6:+0.52 bpsscore=7:+0.00 bpsscore=8:-1.32 bps这比“又一个 BB/RSI 反转壳”更值钱的地方就在这:
> repo 里的 confluence score 不该被读成“越多指标同时极端越该冲”,反而更像“至少要够,但太极端就可能进入 knife-catching zone”。
也就是说,这套源码更值得 desk 拿走的 branch,不是“无脑追高分”,而是:
score >= 5 这条 oversold bounce 母线;5分、6分、7分+ 三个 pocket;用一个很朴素的 long-only 壳:entry bar 收盘进场,之后最多持有 15m,优先触发 +30 bps TP / -25 bps SL / TIME:
BTCUSDT441+1.00 bps51.25%TP / SL / TIME:15.2% / 18.1% / 66.7%ETHUSDT481+0.61 bps53.01%TP / SL / TIME:20.0% / 27.9% / 52.2%这不是“已经能上线”的意思,因为 gross 还不厚;但它至少说明:结构有迁移性,不是换个 venue 就瞬间翻负。
库里当然已经有不少 VWAP / BB / RSI 的 mean reversion 摘要;但这条 intake 仍然有新增量,原因是它补的不是单个指标,而是下面这四件事一起出现:
1m,而不是把 15m/1h 的 envelope 生硬下采样;ADX 不是方向信号,而是 market-state admission;score saturation:为什么 5分 常常比 7分+ 更好?所以这篇更像是在现有 mean reversion 素材池里补一块: “多指标 oversold confluence 不一定越极端越好,真正要做的是找到最能反弹、又没跌成事故现场的 pocket。”
5~15m 向均值回摆ADX 低于 20 的 range 可做,但要更高分;ADX > 25 的 trend 也可做,前提是 oversold 只是 pullback 而不是结构性崩塌score saturation、dead-zone ADX、tight-spread majors onlyTP/SL/time exit、ATR trailing、单仓 20%、最多 2 仓、日内 -3% halt、fee floor单币 1m oversold bounce 在 crypto majors 上确实存在,但最佳 pocket 不是“极端 oversold”,而是“够深、但还没烂掉”的中等强度 confluence。
在 1m bar 上计算:
RSI(7)BB(20,2)VWAP(20) 偏离StochRSI(14)MFI(7)OBV slope(10)ADX(10)然后按 repo 原逻辑打分,比较:
score = 5score = 6score >= 7三档在未来 5m / 10m / 15m 的回报与 hit-rate 差异。
score=5、6、7+ 分开跑;TREND vs RANGE 分开跑。3m / 5m / 10m / 15m;1.0 / 2.0 / 4.0 bps round-trip;score>=7 时,要求 1m realized vol 不爆、或 5m return 不能过大负斜率;3m/5m:1m 费后太薄,就把同一套 score 改成 3m 触发、15m 管理,测试是否更像 production 版本。1m OHLCV proxy,执行 realism 明显更弱。research/quant_digests/2026-04-15_0823_oversold-confluence-scalp-shell.mdreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/summary.csvreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/btcusdt_score_bucket_returns.csvreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/ethusdt_score_bucket_returns.csvreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/btcusdt_sim_trades.csvreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/ethusdt_sim_trades.csvreports/artifacts/quant_digests/coinbase_scalp_confluence_probe_20260415_0815/meta.jsonhttps://github.com/gl4500/coinbase-ai-traderhttps://github.com/gl4500/coinbase-ai-traderhttps://github.com/gl4500/coinbase-ai-trader/blob/main/README.mdhttps://github.com/gl4500/coinbase-ai-trader/blob/main/backend/agents/scalp_agent.pyhttps://github.com/gl4500/coinbase-ai-trader/blob/main/backend/agents/signal_generator.pyhttps://github.com/gl4500/coinbase-ai-trader/blob/main/backend/tests/test_scalp_agent.pyhttps://github.com/gl4500/coinbase-ai-trader/blob/main/backend/agents/order_executor.py