← 返回 Quant Digests · 站点首页

别把这份 2025 新 repo 只读成“stat-arb 简历项目”:对 short-cycle desk,更该先测的是「1h 跌幅冲击 × 放量确认 × 24h bounce capture」这条单币 mean reversion raw alpha

更新时间:2026-04-01 17:48 UTC 研究时间:2026-04-01 17:47 UTC 类型:2025 GitHub 新仓库 source audit(`README.md` + `src/strategy.py` + `src/backtester.py` + `results/performance_metrics.json` + `results/backtest_results.csv` + GitHub API metadata) 主题标签:raw-alpha/single-asset/mean-reversion/shock-reversal/volume-confirmation/oversold-bounce/hourly/15m/5m/3m/1m/kraken/binance/bybit/okx/repo/public-data/cost 证据类型:2025 GitHub repo source audit(工程主证据,样本很短)

源文件:research/quant_digests/2026-04-01_1747_1h-oversold-volume-bounce-alpha.md

1. 这次看了什么

一句话核心结论

这轮更值得 intake 的,不是 repo 给自己贴的“stat-arb”标签,而是它已经写成完整骨架的一条单币 raw alpha:1h 跌超 2% + 成交量超过近 24h 均量 1.5x 后,做接下来 24h 的 bounce。

一句话它是怎么证明的

证明方式不是论文,而是源码 + 回测产物直接把信号、持有期、成本和交易明细都摆出来了;更关键的是,4h/8h/12h 全部 after-cost 不行,只有 24h 留下了明显正边,这让我们能很快判断“alpha 在哪段 horizon 才活”。

2. base alpha 是什么

这次的 base alpha 很清楚

  1. 先找 短时极端下跌1h return <= -2%
  2. 再要求这根下跌 bar 不是普通噪音,而是有 放量确认volume / rolling_24h_avg >= 1.5
  3. 一旦同时满足,就把它视为 oversold shock
  4. 交易逻辑不是继续追空,而是做 未来若干小时到 24h 的反弹回补

翻成人话:这不是“均值回归概念课”,而是一条可以直接写成规则的 shock-to-bounce raw alpha。

3. 为什么这轮值得写

4. 来源信息

主工程来源

5. repo 具体是怎么把这条 alpha 写出来的

5.1 数据与 universe

也就是说,它不是跨市场复杂 stat-arb,更像一个 4 个 major coin 的单币 shock-reversal 实验台

5.2 Entry:跌幅冲击 + 放量确认

src/strategy.py 把入场写得非常直白:

也就是:

两个条件同时满足,signal = 1

5.3 Exit:不猜底部结构,只测固定持有期

src/backtester.py 没搞花哨退出,而是直接测 4 / 8 / 12 / 24h 四档 holding period:

这点对 desk 很有价值:alpha 本体先和 exit 解耦,再判断哪段持有期真的值得留下。

5.4 Cost:repo 没装作“零摩擦”

repo 明确写了:

虽然这个成本口径很粗,但至少不是“毛收益好看就算赢”。

6. 3 个最值得记住的硬数据点

  1. 只有 24h holding period after-cost 明显存活total_net_return = 34.33%win_rate = 72.7%num_trades = 22max_drawdown = 8.2%
  2. 短持有期全部不行4h = -12.60%8h = -17.60%12h = -0.38%;也就是说,repo 这条 alpha 不是 1~2 个 bar 就反弹的 ultra-fast scalp。
  3. README 还给了一个很有用的执行线索:42% 的信号出现在 15:00 UTC,说明它可能和欧美时段的风险释放 / rebound pocket 有关。

7. desk 最该偷走的,不是“stat-arb”这个词

如果按 repo 名字去读,很容易以为这是“统计套利”。但源码其实更像:

对我们更值钱的,不是“它是不是严格 stat-arb”,而是这条 skeleton 很适合拆成:

8. 和当前 1m / 3m / 5m / 15m 的关系

这条线可以服务短周期 desk,但要诚实转译:

8.1 不要把 1h trigger 硬说成 1m alpha

repo 的原始 trigger 是 小时级冲击,所以它更适合:

8.2 正确 desk 化方式

更合理的迁移不是“直接把 -2% 套到 5m”,而是:

8.3 它属于哪类 raw alpha

它不是 breakout,不是 trend,不是 carry。 它更接近:

9. 可复刻的最小实验

实验 A:15m transfer check(最优先)

实验 B:5m execution refinement

在实验 A 成立后,再下钻:

实验 C:失效环境识别

加三个 veto:

  1. shock 后下一小时继续放量新低;
  2. 同期 BTC 出现更大级别单边崩跌;
  3. funding / basis / liquidation 异常放大。

它们不改变 alpha 本体,只是帮我们识别 “不是 oversold bounce,而是趋势继续踩踏” 的场景。

10. 下一步怎么测

  1. 先忠实复刻原 skeleton:不要第一刀就把 -2% / 1.5x / 24h 全改烂,先确认原始 shock-bounce 是否能在 liquid perp transfer 成立。
  2. 优先跑 holding-period ladder:因为 repo 已经明确提示,alpha 的关键不在 signal 有无,而在 得给它足够时间反弹
  3. 先用 15m 做 existence test,别急着上 1m/3m;如果 15m after-cost 都不活,细频率大概率只是更快死。
  4. 把成本分档做厚:这条线是典型会被摩擦吃掉的 MR,必须一开始就看 10~40bps 梯子。
  5. 若 15m 成立,再决定是否加 shared gate:比如大盘 regime veto、liquidation veto、session gate;不要反过来让 overlay 冒充 alpha。

11. 这条线最容易错在哪

12. 对当前项目的直接意义

这条主题值得进研究池,因为它满足当前优先级较高的几条:

如果要一句话概括:这不是“又一个教学 repo”,而是一张很干净的 alpha existence card——先看 1h 跌幅冲击 × 放量确认 在 liquid perp 上能不能稳定换来 8~24h 的 bounce。

13. 来源链接