源文件:research/quant_digests/2026-03-20_0742_pullback-two-sided-window-verdict.md
这次主看 GitHub 仓库 ilahuerta-IA/backtrader-pullback-window-xauusd(2025-10 创建,2026-03 仍在更新,37★)。这份 repo 最值得偷的不是它的 EMA(1/14/18/24) 参数,而是一个很适合我们当前三条收口线的旁支想法:把“raw trigger”降级成 scan,真正的 entry 交给 pullback → two-sided breakout window 来做 success / failure / timeout 判决。
armed → pullback confirmed → window open → success/failure/timeout。175 笔交易、55.43% 胜率、1.64 Profit Factor、5.81% Max DD、总回报 +44.75%。Window Breakout (Normal) 有 162 笔、胜率 56.2%,而 Quick Entry (Fast Market) 只有 13 笔、胜率 46.2%。这基本就是在提醒我们:同一个方向 bias,晚一点、等 verdict,再进,可能比 trigger 当场冲更值钱。SCANNING:只负责发现 EMA crossover + 方向 candle + 可选 angle/ATR filter;ARMED:不立刻进场,先等 1~3 根逆向 pullback candle;WINDOW_OPEN:用最后一根 pullback candle 的 high/low 构造双边窗口,并允许 time offset;SUCCESS / FAILURE / TIMEOUT:顺向破边才 entry;反向破边视为 instability;超时则 setup 作废。这轮不是另开新宇宙,反而是直接给当前三条收口线补一个共同缺口:trigger 之后,到底什么才算“值得进”的 follow-up。
V3 final-verdict / breakout-short follow-up:breakdown 本身只负责把 setup 变成 armed_short;随后若出现 1~2 根反抽绿转红/红转绿(按方向定义),再开一个很短的下破窗口。向下 success 才叫 follow-up,向上 failure 就该直接否决。Fibonacci confirmation / retest_hold:Fib zone 触位后,不要把“摸到就算 hold”。更诚实的写法是:先确认 pullback 成立,再要求价格在 W 根内重新突破 pullback extremum;没突破是 timeout,跌穿 opposite edge 是 failure。EMA / PSAR raw alpha focus:这套东西本质上没有改 EMA/PSAR 的本体,只是把 raw alpha 从 entry key 降成 scan key。这正适合当前阶段——先测“post-trigger verdict layer”能不能救 raw alpha,而不是继续炼更复杂指标堆叠。repo 的窗口不是“只看顺向破位”,而是同时定义 success boundary 和 failure boundary。这点非常适合我们当前的 final-verdict 语境:
pullback low - offset 才算 success;上穿 pullback high + offset 就是 failure;scan,真正进场要等窗口给 verdict。repo 明确把 window_expiry_bar 写进状态机。对 15m 很关键:
late entry veto 更干净,因为 timeout 是 setup 自带标签,不是补丁;late retest / stale follow-up 问题是同一个洞。repo 在 failure / timeout 后不是一律回 SCANNING,而是很多情形回到 ARMED_*,允许同方向 setup 重新找新的 pullback。这个细节很适合 breakout-short follow-up:失败不等于 bias 死亡,更可能只是这一次 re-break 质量不够。
XAUUSD 5m,不是 crypto perp;它的时段性、跳动值、交易时段、spread 结构都不同。验证:把 raw trigger 改成 scan-only,再加一个短窗口 success/failure/timeout verdict,是否能优于当场入场。
15m,执行补充看 5m;标的先 BTC/ETH/SOL perp。V3 final-verdict 触发条件;zone touch / reclaim 候选;armed_dir=±1,不立刻下单。1~3 根逆向 candle,或 pullback_depth <= d(可并行测 candle-count 与 depth 两种口径)。high/low 建双边窗口;先测:offset = 0, 0.25, 0.5 × pullback_rangewindow = 2, 4, 6 barssuccess:顺向破 success edge;failure:反向破 failure edge;timeout:到 window_expiry_bar 仍未 success。scan = 原始 breakdown candidatepullback = 1~2 根反抽success = low 跌破 pullback low - offsetfailure = high 上穿 pullback high + offsetscan = 触到目标 Fib 区且仍保有方向 biaspullback = 进入区间后的停顿 / 逆向小回撤success = close/ high 重破 pullback extremumfailure = 反向穿越 zone invalidation linescan = raw EMA cross / raw PSAR flippullback = trigger 后 1~3 根 counter barssuccess = 重新突破 pullback edgefailure = 反向失守 opposite edge成本后 expectancysuccess rate / failure rate / timeout ratetrigger→entry 平均延迟false-follow rate(入场后 N 根内即回到 opposite edge)missed-fast-move cost(因为等 verdict 而错过的趋势)如果这层东西成立,它最可能带来的不是“信号数暴增”,而是三件更现实的好处:
我的倾向是:这条值得进研究池,而且优先级不低,因为它不是又一个零散过滤层,而是一个能同时作用于三条收口线的post-trigger execution skeleton。
ilahuerta-IA(未见论文式作者署名)