源文件:research/quant_digests/2026-03-19_0055_adx-er-price-only-trend-readiness-gate.md
4h,不是直接在 15m crypto 上给过 OOS 证明)这次看的是 pupedator (2026), _Binance Futures AI Trading Bot_。表面上它是个 Claude 驱动的合约 bot,但对当前 desk 真正值钱的,不是 AI 那层,而是它在最前面先放了一个很朴素的 price-only regime gate:ADX < 20 直接不做,Efficiency Ratio < 0.20 也直接不做。
翻成人话:先别急着问方向,先问这段价格是不是“真的在走”。 如果只是上下抖、来回磨,breakout-short follow-up、Fib retest_hold、EMA/PSAR raw continuation 都容易被拖进假延续和来回止损。
ADX < 20、ER < 0.20 写成 hard gate,还额外把 ER > 0.40 当成 conviction 加分,足够直接转成最小实验。12 分,>= 8 才放行;其中 ADX 和 ER 不是普通加分项,而是先做 一票否决。ER 的定义非常适合 desk:ER_20 = abs(close_t - close_t-20) / sum(abs(diff(close)), 20)。越接近 1,说明这 20 根更像单向推进;越接近 0,说明只是来回抖。这题没有偏离主线,反而正好补主线的一个空缺:最近几轮 digest 已经给三条线补了很多 volume / flow / structure / external-data 型 overlay,但还缺一个足够便宜、足够朴素、能先回答“当前是不是趋势口袋”的 shared spine。
V3 final-verdict / breakout-short follow-up:它回答的是“这次 break 后到底有没有 follow-through 质量”,避免在横盘边缘硬追最后一脚。Fibonacci confirmation / retest_hold:它能把“看起来像守住、其实只是区间内回弹”的回踩单独筛掉。EMA / PSAR raw alpha focus:它特别适合做 raw lane 的第一层 allow/deny gate,因为只用价格路径,不需要额外数据接入成本。如果要回答“为什么它比继续帮三条线堆新 filter 更值得”,答案是:因为我们现在更缺一个 shared 的 先看环境是否可顺势 骨架,而不是第 8 个各自不同的小 veto。
当 15m 主信号出现时,若同时满足 ADX14 >= 20 且 ER20 >= 0.20,则后续 4~8 根的 continuation 质量、成本后期望值和 false-break 生存率会优于未过滤样本;若再要求 DI 方向一致,提升可能更明显。
先冻结现有 trigger,不改 entry 形状,只测 gate:
trend_ready_long = (adx14 >= 20) & (er20 >= 0.20) & (plus_di > minus_di)trend_ready_short = (adx14 >= 20) & (er20 >= 0.20) & (minus_di > plus_di)er20 >= 0.40 视为 high-conviction bucket,而不是先直接 hard veto其中:
adx14 用 Wilder 口径er20 = abs(close - close.shift(20)) / rolling_sum(abs(diff(close)), 20)DI 用来做方向一致性确认,不和主 trigger 抢角色BTC / ETH / SOL perpetual15m180~365dnext-bar open,no-overlapADX >= 20 onlyER >= 0.20 onlyADX + ERADX + ER + DI alignmentpost_cost_expectancyforward_4bar / 8bar median returnfalse_break_ratio(入场后 2~4 根内反向失守的比例)trade_retention(过滤后交易数还剩多少)TIMEFRAME = 4h,所以我们只能偷它的 gate 逻辑,不能把整套参数直接照搬到 15m。ADX 和 ER 都是慢指标;如果阈值卡太死,可能会把 breakout-short 最早的 expansion 段错杀掉。所以第一轮最好先做 bucket / 分层,别一上来就只测 hard cutoff。ER 很适合识别“价格有没有真推进”,但不负责告诉你方向;方向还是应由 breakout / retest / EMA-PSAR 主信号自己决定。最直接的一步:别把它当 standalone 新策略,先把它接成三条线的 shared pre-filter。
具体顺序建议:
EMA / PSAR raw lane,看 flip-to-fail 是否先明显下降;breakout-short follow-up;Fib retest_hold,看它能不能减少“看似守住、实则横盘震荡”的坏单。如果 ADX + ER 这层已经能明显改善 trade survival,后面的 VWAP / OI / liquidation / volume gate 就更适合改成 二层 refinement,而不是继续承担“判断市场有没有在走”的一层职责。
ADX > 20、ER > 0.20、ER > 0.40 conviction bonus、signal score >= 8/12signals/generator.py: https://raw.githubusercontent.com/pupedator/binance-futures-ai-bot/master/signals/generator.pyfeatures/indicators.py: https://raw.githubusercontent.com/pupedator/binance-futures-ai-bot/master/features/indicators.pyfeatures/feature_engineer.py: https://raw.githubusercontent.com/pupedator/binance-futures-ai-bot/master/features/feature_engineer.py