源文件:research/quant_digests/2026-03-18_2024_block-mitigation-retest-score.md
看了 saintmexas (2025/2026) 的 GitHub 仓库 trading-scripts,重点是其中两个 Pine 脚本:Block of Candle 与 Range Breakout Candles with Pullback Detection。它不是再加一个更花的指标,而是把“盘整块 → 突破 → 回踩”的对象链条,写成了可直接拆解的程序规则。
blockCandleCount、blockRange、avgBlockVol、mitigation zone。Block of Candle 代码里,bullish block 只有在 current_body_min > ref_high 才算真正向上脱离;bearish 是 current_body_max < ref_low。这比 wick 穿线更诚实,更贴合我们当前的 breakout-short / retest_hold 收口口径。indicator_high ~ indicator_low 存成 mitigation zone,并给 zone 打上 candles 数量标签;作者还提供了 minCandlesInBlock=3、minBlockRangePercent=0.1、volumeSpikeMultiplier=1.5 这类很便宜的质量过滤器。这轮值得做,因为它直接服务于两条收口线:
V3 breakout-short follow-up:先筛掉那种只脱离了两三根小噪音块的假 continuation,优先保留“长 block 后破位再回抽失败”的 short。Fibonacci confirmation / retest_hold:Fib 不是单线,回踩也不是单线;BoC mitigation zone 可以给 Fib 回踩一个“结构厚度”背景。它也能给 EMA / PSAR raw alpha focus 提供一个便宜的结构 veto:EMA/PSAR 方向对,但如果只是薄盘整后的小突破,先别急着把它当 continuation。
研究假设:15m crypto 里,来自“更长、更有质量”的 consolidation block 的 breakout/retest,后续 6~12 bars continuation 更稳;而噪音短 block 更容易变成假突破或回踩失守。
一个可计算定义(最小版):
L = blockCandleCount、R = blockRangePct、V = avgBlockVol / SMA20(volume)。[indicator_low, indicator_high];向下镜像处理。zoneHigh,记为 retest_hold_pass。zoneLow 下方,记为 breakout_short_follow_pass。L < 4、4 <= L < 8、L >= 8;再看是否需要叠 V > 1.2 或 R > 0.15%。最小回测切口:
先看 3 个指标:
target-hit within 12 barsfailure-before-target(先失守 zone 另一侧)trade-count retention(防止只靠极端砍单“变好看”)首轮 A/B:
L 分层V / R 质量过滤先别把整个 repo 搬进来。第一步只加一个最小结构层:给现有 breakout-short / Fib retest 事件打上 block length 和 zone retest depth 两个字段。如果 L >= 8 组在保留足够 trade count 的前提下,明显压低 failure-before-target,这条线就值得升成 shared retest quality score;否则就留在研究池,不再占用主线预算。