源文件:research/quant_digests/2026-04-01_1747_1h-oversold-volume-bounce-alpha.md
README.md + src/strategy.py + src/backtester.py + results/performance_metrics.json + results/backtest_results.csv + GitHub API metadata)1h 内出现大幅下跌且伴随异常放量时,短期更容易出现 oversold bounce;alpha 本体是“冲击后的反弹捕捉”,不是 funding、不是 filter。这轮更值得 intake 的,不是 repo 给自己贴的“stat-arb”标签,而是它已经写成完整骨架的一条单币 raw alpha:1h 跌超 2% + 成交量超过近 24h 均量 1.5x 后,做接下来 24h 的 bounce。
证明方式不是论文,而是源码 + 回测产物直接把信号、持有期、成本和交易明细都摆出来了;更关键的是,4h/8h/12h 全部 after-cost 不行,只有 24h 留下了明显正边,这让我们能很快判断“alpha 在哪段 horizon 才活”。
这次的 base alpha 很清楚:
1h return <= -2%;volume / rolling_24h_avg >= 1.5;翻成人话:这不是“均值回归概念课”,而是一条可以直接写成规则的 shock-to-bounce raw alpha。
pairs / XS / carry / microstructure;这份 repo 补的是一条更朴素、可独立复现的单币事件型 MR skeleton。skylarshi123)crypto-stat-arb2025-12-31T08:54:06Z,pushed 2025-12-31T09:22:42Z,default branch mainREADME.mdsrc/strategy.pysrc/backtester.pyresults/performance_metrics.jsonresults/backtest_results.csvresults/detailed_trades.csv1h30 days from Kraken,结果文件实际约 20 个 trading days、2,884 个小时级观测BTC/USD、ETH/USD、SOL/USD、AVAX/USD也就是说,它不是跨市场复杂 stat-arb,更像一个 4 个 major coin 的单币 shock-reversal 实验台。
src/strategy.py 把入场写得非常直白:
price_drop_threshold = -0.02volume_ratio_threshold = 1.5volume_lookback_hours = 24也就是:
1h return <= -2%24h 平均的 1.5x两个条件同时满足,signal = 1。
src/backtester.py 没搞花哨退出,而是直接测 4 / 8 / 12 / 24h 四档 holding period:
这点对 desk 很有价值:alpha 本体先和 exit 解耦,再判断哪段持有期真的值得留下。
repo 明确写了:
20 bps40 bps虽然这个成本口径很粗,但至少不是“毛收益好看就算赢”。
24h holding period after-cost 明显存活:total_net_return = 34.33%,win_rate = 72.7%,num_trades = 22,max_drawdown = 8.2%。4h = -12.60%,8h = -17.60%,12h = -0.38%;也就是说,repo 这条 alpha 不是 1~2 个 bar 就反弹的 ultra-fast scalp。15:00 UTC,说明它可能和欧美时段的风险释放 / rebound pocket 有关。如果按 repo 名字去读,很容易以为这是“统计套利”。但源码其实更像:
对我们更值钱的,不是“它是不是严格 stat-arb”,而是这条 skeleton 很适合拆成:
这条线可以服务短周期 desk,但要诚实转译:
1h trigger 硬说成 1m alpharepo 的原始 trigger 是 小时级冲击,所以它更适合:
15m 先做 first verdict;5m 做执行精修;1m / 3m 只在确认存在 alpha 后再拿来抠 entry/exit。更合理的迁移不是“直接把 -2% 套到 5m”,而是:
4 x 15m 或 12 x 5m 拼成一个 1h shock window;24h hold 拆成 8h / 12h / 16h / 24h 梯子;partial take-profit + max_hold 变体。它不是 breakout,不是 trend,不是 carry。 它更接近:
15m4 根 15m 的累计收益 <= -2%4 根 15m 成交量 / 过去 96 根 15m 平均量 >= 1.515m 开盘做多8 / 12 / 16 / 24h 四档 max hold,对照 mid-bounce take-profit6 / 10 / 14 / 20 / 30 / 40 bps在实验 A 成立后,再下钻:
1h shock flag 触发后,比较 immediate 5m entry vs 等首个止跌 5m bar 再进;一次性进场 vs 2 段进场;加三个 veto:
它们不改变 alpha 本体,只是帮我们识别 “不是 oversold bounce,而是趋势继续踩踏” 的场景。
15m 做 existence test,别急着上 1m/3m;如果 15m after-cost 都不活,细频率大概率只是更快死。10~40bps 梯子。20 天、22 笔交易,证据强度其实很一般。这条主题值得进研究池,因为它满足当前优先级较高的几条:
如果要一句话概括:这不是“又一个教学 repo”,而是一张很干净的 alpha existence card——先看 1h 跌幅冲击 × 放量确认 在 liquid perp 上能不能稳定换来 8~24h 的 bounce。