← 返回 Quant Digests · 站点首页

别把 Hummingbot 的 `spot_perpetual_arbitrage` 只读成 carry 教程:对 short-cycle desk,更该先测的是「spot-perp executable basis × open/close hysteresis shell」

更新时间:2026-04-08 00:17 UTC 研究时间:2026-04-08 00:12 UTC 类型:GitHub mature strategy source audit(repo metadata + `spot_perpetual_arbitrage.py` + `arb_proposal.py` + `spot_perpetual_arbitrage_config_map.py` + `start.py`) 主题标签:raw-alpha / relative-value / carry / basis / spot-perp / delta-neutral / open-close-hysteresis / binance / hummingbot / 1m / 3m / 5m / 15m 证据类型:工程证据

源文件:research/quant_digests/2026-04-08_0012_spot-perp-openclose-basis-shell.md

1. 这次看了什么

这次主看 Hummingbot Foundation 的成熟策略模块 spot_perpetual_arbitrage。它真正有价值的,不是“funding 高就去收 carry”这种泛化说法,而是把一条可直接下单的 spot-perp 相对价值策略壳写得很完整:

也就是说,这东西的 base alpha 很清楚:交易的不是 funding 排行榜,而是 same-underlier、可成交、可净额化的 basis 偏离与回归。

2. 核心结论

3. 为什么和当前项目有关

这篇东西对 momentum 当前最有价值的地方,是它补了一个我们很需要、但之前 mostly 只在论文/小 repo 里零散见过的组件:

  1. 它是完整策略,不只是 alpha 口号。
  2. 之前我们已经收了不少 basis / funding / carry 主题,但很多更像“哪边更贵”的线索;这次拿到的是一个把 entry / exit / slippage / leverage / reopen delay 都定义出来的执行壳

  1. 它天然适合 1m / 3m / 5m / 15m 的最小实验。
  2. 这条线不依赖日频财报、低频宏观或复杂链上数据;只要有同标的 spot + perp 报价,就能开始做最小实验。

  1. 它能服务于当前 desk 的已有 basis/funding 素材池。
  2. 你完全可以把这个壳理解成:

3.5 策略拆解(必填)

4. 可复刻的最小实验

  1. 对每个时间点计算两条 executable spread:
  1. 若当前无仓,且任一 spread > entry_threshold_net,则开对应 delta-neutral 双腿。
  2. 若已有仓,则用反向 close spread 判断是否平仓;也就是别只盯开仓 spread,要看能否在另一边把仓位平掉
  3. 成本至少包含:spot fee、perp fee、双边滑点、持有期间 funding(若跨 funding 时间点)。
  1. after-cost net spread capture / trade
  2. trade count × median open duration
  3. 是否主要被 funding 窗口或极端盘口事件驱动

5. 风险与保留意见

6. 来源

  1. Hummingbot Foundation(2019–2026 活跃维护). hummingbot/hummingbot. GitHub repository.
  1. Strategy logic: hummingbot/strategy/spot_perpetual_arbitrage/spot_perpetual_arbitrage.py
  1. Profit formula helper: hummingbot/strategy/spot_perpetual_arbitrage/arb_proposal.py
  1. Config defaults: hummingbot/strategy/spot_perpetual_arbitrage/spot_perpetual_arbitrage_config_map.py
  1. Strategy wiring: hummingbot/strategy/spot_perpetual_arbitrage/start.py