源文件:research/quant_digests/2026-03-30_1242_bucket-neutral-mr-funding-divergence-gate.md
看了 Jbdelrio 在 2026 年公开的 hyperstat-arb-bot 源码与配置,重点不是 README 口号,而是 4 个真正决定可复现性的模块:src/hyperstat/data/universe.py、src/hyperstat/strategy/stat_arb.py、src/hyperstat/strategy/funding_divergence_signal.py、src/hyperstat/strategy/allocator.py,以及 configs/default.yaml、configs/strategy_stat_arb.yaml。
这套骨架把一个短周期 relative-value 策略几乎完整写出来了:5m 数据、30 个币左右的 universe、每 7 天重做 bucket、12 bar(= 1h)收益回看、z_in=1.5 / z_out=0.5 / z_max=3.0、min_hold=30m / max_hold=24h、组合 gross_target=1.20、单币上限 12%、单 bucket 上限 35%。成本也不是空白:默认 next_open 成交,taker 6 bps / maker 2 bps,滑点是 8 bps + 10 bps × RV_1h(%),还有 3% 盘中回撤 kill-switch 与 720m cooldown。
更关键的是,它把 base alpha 和 gate / overlay 分得很清楚:
stat_arb.py 只负责做 bucket 内的横截面均值回归 raw signal;funding_divergence_signal.py 只负责做 乘法式 confidence gate;allocator.py 再去做 vol scaling / neutrality / caps / emergency flatten。5m/15m 上做最小实验的 bucket-neutral 横截面均值回归完整策略骨架,而 funding divergence 只是后接的 gate。BTC 作为市场因子,把各币种收益做 beta-neutral residual,再按 residual-return correlation 做层次聚类 bucket;然后在每个 bucket 内,对过去 12 根 5m bar 的 log return 做 median + MAD 标准化,long 最弱、short 最强,属于很干净的 cross-sectional mean reversion / stat-arb。universe.py 里每周根据 residual correlation 动态重建 4~6 个 bucket,每个 bucket 约 4~10 个币。对我们 desk 来说,这比手工 sector 标签更值钱,因为它更像真实可维护的 relative-value 配对/分桶流程。stat_arb.py 的入场/出场是完整可跑的:abs(z) >= 1.5 才激活;raw weight 是 -clip(z, -3, 3);至少持有 30 分钟;之后只有在 abs(z) <= 0.5 才允许退出;超过 24h 强平。这个结构天然比“每根 bar 都跟着 z 值抖动”更适合短周期实盘。funding_divergence_signal.py 不是另一个独立 alpha,而是把 3 个 funding 侧特征合成为 [-1, 1] gate:carry cross-section z-score、price/funding misalignment divergence、funding velocity,默认权重分别是 0.35 / 0.40 / 0.25,再按 w_final = w_stat * (1 + 0.6 * FDS) 去放大或削弱原始 MR 权重。重点不是它替代了 alpha,而是它告诉我们:MR 先单独测,gate 再后接测 uplift。allocator.py 明确写了组合层:先做 regime gating,再做 FDS gate,再重新做 dollar_neutral + beta_neutral,再按 gross_target=1.20 标准化,然后套 12% 单币上限与 35% 单 bucket 上限,最后还有 z > 3.5 的 emergency flatten。这已经覆盖了 sizing / risk / exposure control。next_open;不是零成本,而是 taker 6bps + 波动率挂钩滑点。所以这更像一个能拿来做 honest first verdict 的骨架,而不是 PPT alpha。当前 desk 的缺口不是“再找一个会讲 funding crowding 的 filter”,而是继续补 能直接落地的 raw alpha 骨架。这份 repo 的主价值恰好在这里:
5m 原生设计,天然贴近我们默认周期;如果这个 raw alpha 连 raw-only 版本都站不住,那就不该继续给它堆更多 filter;反过来,如果 raw-only 版本能勉强活,FDS 才值得作为 shared gate 去服务更多 relative-value alpha。
1h horizon return 做 robust z-score,long 短期相对跌过头的币,short 短期相对涨过头的币gross 1.20、单币 12% 上限、单 bucket 35% 上限、z>3.5 emergency flatten、3% intraday DD kill-switch、next_open + fee/slippage 成本模型5m perp 上,residual-correlation bucket 内的 1h 横截面均值回归是可交易 raw alpha;funding-price misalignment 作为 gate 只在第二步验证是否能提高 after-cost 质量。5m candles + funding rates;先做 30d~60d 样本;universe 先取 20~30 个高成交额币种;缺失率控制在 1% 内;剔除最差 20% Amihud illiquidity 和 funding-vol 过高币种。BTC 作为 base factor,先估 rolling beta,再取 residual returns;对 residual correlation 做层次聚类,每周重建 4~6 个 bucket,每 bucket 控制在 4~10 个币。horizon=12 bars、z_in=1.5、z_out=0.5、min_hold=30m、max_hold=24h、gross=1.0~1.2、dollar+beta neutral,不加 FDS,不加 funding overlay,先看它作为 bare-bones raw alpha 能不能在 taker 6bps + 滑点模型 下存活。fast=8、slow=72、divergence_window=24、weights=0.35/0.40/0.25,gate_scale 先跑 0.3 再跑 0.6。核心不是看总收益有没有偶然抬升,而是看 leg hit-rate、极端 adverse excursion、turnover 后的净改善。horizon=4~8 bars、min_hold=45~60m、divergence_window=8~12 bars。如果 15m 下 raw-only 更稳,说明 edge 可能主要死在 5m microstructure,而不是信号逻辑本身。after-cost spread pnl、bucket neutrality leakage、turnover/day、long leg vs short leg attribution、FDS on/off uplift。如果 raw-only 版本 already 负得很稳定,就不要继续浪费时间调 gate。raw-only 版本,再做 raw + FDS gate 版本;两者统一用同一套 universe、bucket、成本模型。只有 raw-only 过线,FDS 才进入后续组件池。taker 6bps + base slippage 8bps 对很多 alt perp 已经不低,若 raw signal 只在 gross PnL 上勉强成立,after-cost 可能直接归零。https://github.com/Jbdelrio/hyperstat-arb-bothttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/src/hyperstat/data/universe.pyhttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/src/hyperstat/strategy/stat_arb.pyhttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/src/hyperstat/strategy/funding_divergence_signal.pyhttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/src/hyperstat/strategy/allocator.pyhttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/configs/default.yamlhttps://github.com/Jbdelrio/hyperstat-arb-bot/blob/main/configs/strategy_stat_arb.yaml10.1080/14697680903124632. Readable URL: https://doi.org/10.1080/1469768090312463210.3390/jrfm12010031. Readable URL: https://doi.org/10.3390/jrfm1201003110.1016/j.jfineco.2019.07.001. Readable URL: https://doi.org/10.1016/j.jfineco.2019.07.001