← 返回 Quant Digests · 站点首页

别把这份 2026 Coinbase squeeze repo 只读成“TTM Squeeze 教程”:对 short-cycle desk,更该先测的是「quality-weighted squeeze release × ATR-defined R shell」这条完整 raw alpha

更新时间:2026-04-06 09:52 UTC 研究时间:2026-04-06 09:40 UTC 类型:2026 GitHub repo source audit(GitHub API metadata + `README.md` + `run_backtest.py` + `strategy/technical.py` + `strategy/signal_generator.py` + `core/backtester.py` + `results/params_library.csv`) 主题标签:raw-alpha/trend/momentum/breakout/squeeze-release/bollinger-band/keltner-channel/volume-confirmation/quality-weighted-sizing/atr-stop/trailing-stop/continuation/coinbase/perpetual/1m/3m/5m/15m/repo/public-data/cost/risk 证据类型:仓库源码直读(规则、执行、成本、仓位、风控都已落到代码)

源文件:research/quant_digests/2026-04-06_0940_quality-weighted-squeeze-release-alpha.md

1. 这次看了什么

这轮主看 jicheolha (2026) 的 GitHub repo keltrader。它不是那种只给几张 equity curve、却不肯把规则写清楚的仓库;相反,源码里已经把下面几层都写出来了:

  1. setup 定义BB inside KC 压缩结束;
  2. 方向判断:突破 band,或者至少 momentum 与释放方向一致;
  3. 确认层volume_ratioRSI veto;
  4. 仓位层squeeze duration × volume × momentum 组合成 signal quality,再映射到仓位;
  5. 执行层:next-bar open 入场,显式计入手续费与 slippage;
  6. 风险层ATR stop / ATR target / 1R 后 trailing stop / 连亏后降仓

README 给的 headline 回测也足够具体:

我不会直接信这个收益,但它至少说明:这不是“只会画图的 squeeze 指标仓库”,而是一个已经把完整策略骨架写出来的 repo。

2. 先回答:这篇东西的 base alpha 是什么?

一句话翻成人话: > 市场先收窄、再放大时,第一段放大量并不一定立刻结束;如果这次 release 伴随更长压缩、更高成交量、更强方向动量,那么顺着 release 方向跟一小段,往往比把所有 squeeze 都一视同仁更有交易价值。

这里最关键的是: repo 真正值钱的不是“TTM Squeeze 有效”这句老话,而是它把“哪种 squeeze 值得做大、哪种只配轻仓”写成了一个可执行评分器。

3. 为什么这轮值得进研究池

这轮仍然值得写,原因不是“我们又发现了一个 breakout 形态”,而是它补了一个当前素材池里还不够扎实的空位:

  1. 它是完整策略壳,不只是 shape。
  2. 最近我们已经收过不少 raw alpha,但很多还停在“信号像不像有用”。这份 repo 往前多走了一步:把 admission、sizing、risk、execution 都写成代码了。

  1. 它和 3 月底那篇“bottom-quartile BB compression breakout”不是同一件事。
  2. 那篇更像在问:压缩突破本体有没有 alpha? 这份 repo 更像在问:同样是压缩释放,哪些应该重仓,哪些应该轻仓甚至跳过?

  1. 它对 1m / 3m / 5m / 15m 非常友好。
  2. 因为所需输入只有公开 OHLCV,不依赖 funding、L2、链上或私有特征;最小实验可以非常快地在 Binance / Hyperliquid / Coinbase 公共 bar 数据上重做。

4. 源码里真正写了什么

4.1 setup:压缩结束,不是压缩期间乱开仓

strategy/technical.py 里,压缩的定义非常标准:

真正触发 setup 的条件不是“正在 squeeze”,而是:

默认 min_squeeze_bars = 3。这点很重要,因为它明确避免了把“仍在压缩里的噪声震荡”误当成可交易 breakout。

4.2 方向:先看 band 突破,不够清楚再看 momentum

detect_breakout() 的顺序是:

其中:

也就是说,它不是纯粹“上轨外就是做多”,而是给了一个 band break > normalized momentum 的双层方向判定。

4.3 admission:volume 和 RSI 不是主信号,而是确认/否决

默认 admission 参数:

翻译一下:

这对 short-cycle 很实用,因为它把最常见的两个假突破来源——无量 release极端末端追价——先挡掉一层。

4.4 sizing:repo 最值得偷的地方是 quality-weighted position size

strategy/signal_generator.py 里最有意思的是这个 signal quality:

而且不是线性打分,而是 exponential diminishing returns

另外它还有一条很 desk-friendly 的规则:

这就把“压缩释放后容易连错几次”的现实,直接写进了仓位退火逻辑。

4.5 exit / cost:next-bar open + ATR R-multiple,比很多 repo 诚实

run_backtest.pycore/backtester.py 给了几条关键细节:

而 trailing 也不是胡乱追:

所以这不是“看到突破,凭感觉拿一拿”的系统,而是已经把 收益目标、止损、持仓续拿、成本 一起写清了。

5. desk 版最该怎么改,不要机械照搬

repo 默认是:

这对我们不是问题,因为真正可迁移的不是交易所,而是策略结构。

5.1 15m 主版本

建议先做一个最像 desk 的版本:

最关键的 ablation 不是“band 该不该用 2.0”,而是:

  1. equal-size vs quality-weighted-size
  2. 无量不过 vs 直接做
  3. 只固定 TP/SL vs 加 1R trailing

5.2 5m 快版本

5m 版本可以更激进,但建议只保留一套轻量 admission:

否则很容易把它做成“信号本体弱,只能靠很多 filter 才勉强存活”的伪 raw alpha。

5.3 1m / 3m 的角色

1m / 3m 更适合做:

不建议一开始就把 alpha body 下沉到 1m,因为 squeeze release 在这个尺度上更容易被纯 microstructure 噪声打碎。

6. 最小实验怎么做

这轮最值得马上跑的,不是全资产大优化,而是一个 三步最小实验

实验 A:alpha 本体有没有东西

15m 上测试:

先看:

实验 B:quality-weighted size 到底有没有增量

在实验 A 通过后,只比较两件事:

  1. equal-risk fixed size
  2. repo 这套 quality-weighted size

如果 quality sizing 只是把回撤放大,却没提高 net PF / Sharpe / skew,那它就该降级成 overlay,而不是策略核心。

实验 C:1R trailing 是不是核心组件

再做三路对照:

这个实验会直接告诉我们: 这条 alpha 是赚在第一段脉冲,还是赚在后续延续。

7. 我对这条线的判断

我的判断是:

  1. 它值得进池,但先别迷信 README 的 +177%。
  2. 那个结果很可能包含样本期 / 参数搜索 / 资产选择偏差。

  1. 真正可能可迁移到 desk 的,不是具体参数,而是结构。
  2. 尤其是:

  1. 如果第一轮最小实验失败,最值得保留的残部依然是 quality scoring。
  2. 换句话说,就算这条 raw alpha 本体最后不够强,squeeze duration × volume × momentum 这套 admission / sizing 评分器,仍可能服务别的 breakout / trend 线。

8. 下一步怎么测

按优先级我会建议:

  1. 先跑 15m signal + 1m execution 的单币 majors 版本
  2. 这是最接近当前 desk 的主战场,也最容易诚实计成本。

  1. 先做 ablation,不要先做大优化
  2. 重点比较:

  1. 15m 成立,再下沉到 5m
  2. 不要反过来;否则很容易在更高噪声里误判 alpha 死活。

  1. 5m 也成立,再把 1m / 3m 留给 execution layer
  2. 不要把 1m 直接神化成 alpha 主体。

9. 公开数据、公开性与最小复现实验口径

这条线的数据要求很简单:

这点非常适合当前 intake:

也因此,它是一个很好的 快复现、快打分、快淘汰 原型。

10. 来源

  1. jicheolha (2026), keltrader
  1. Repo README
  1. Backtest runner
  1. Signal logic
  1. Technical indicators / squeeze detection
  1. Backtester / execution / trailing stop
  1. Optimization result library