源文件:research/quant_digests/2026-04-23_2036_ema20-pullback-swingbreak-continuation-alpha.md
EMA20,随后重新突破最近 3 根摆点高/低,做 continuation这次主看 2025 GitHub 仓库 Aleks942/smart_money_bot。repo 表面上是“聪明钱衍生品信号 bot”,但真正适合我们 desk 单独拎出来的,不是 funding / liquidations 这些泛监控,而是源码 continuation_engine.py 里一条很清楚的 raw alpha:EMA20>EMA50>EMA200 的顺势结构成立后,若最近 8 根出现一次回踩 EMA20,且当前收盘重新突破最近 3 根局部高点,就追随这次恢复;空头反向同理。
15m/5m 直接复刻。next bar open 入场、1ATR 止损、1.5ATR 止盈、EMA20 失守提前走、8 bars 超时、round-trip 8bps 成本),broad basket 并不成立。1500 根 15m 数据里,SOLUSDT 是唯一费后还保正的 pocket,78 笔、平均净收益约 +0.23bps/笔;同口径全池 8 个 liquid majors 合计 578 笔、平均净收益约 -7.44bps/笔。5m 更吵:全池 573 笔、平均净收益约 -7.95bps/笔;说明这条 repo 里的 continuation 骨架更像 alt-specific 15m pocket,不是可直接全市场开机的母策略。这条线和当前 momentum 主线很贴,因为它把“趋势方向过滤 / 回踩确认 / 再突破触发”三层拆得非常清楚:
EMA20 回踩后再突破 本身就是 raw alpha;compression_detector.py 可作为前置压缩过滤,不必和 alpha 本体绑死;market_context.py 用 BTC 大盘方向给同向信号加分,天然适合改写成我们自己的 regime / sizing gate。EMA20 pullback -> local swing break continuationEMA20 > EMA50 > EMA200(或空头反向)8 根必须真实回踩过 EMA20;可选再加 range compression / BTC 同向 contextnext-bar open 入场,1ATR 止损,1.5ATR 止盈,EMA20 失守提前离场,8 bars time stop,单笔固定风险或 ATR target vol sizingcontinuation_engine.py;只把 exit 补完整,不改 entry 语义。SOL/ETH/BTC/BNB/XRP/DOGE/ADA/LINK,先跑 15m,样本先用最近 1500 根;5m 只当 portability stress test。SOL + 1~2 个 alt 上同向为正;EMA20 失守提前离场,和单纯 fixed-hold / bracket-only 相比,是否真能减少假恢复。SOL 15m,非常容易受单币弹性、单阶段趋势和费用假设影响。compression 或 BTC context 加进去后,只是靠砍掉大量交易把均值抬起来,就要小心它退化成“好看但不厚”的弱 filter。continuation_engine.py: <https://raw.githubusercontent.com/Aleks942/smart_money_bot/main/continuation_engine.py>compression_detector.py: <https://raw.githubusercontent.com/Aleks942/smart_money_bot/main/compression_detector.py>market_context.py: <https://raw.githubusercontent.com/Aleks942/smart_money_bot/main/market_context.py>/root/clawd/jerry/momentum/reports/artifacts/literature/smart_money_bot_continuation_probe_2026-04-23.json