源文件:research/quant_digests/2026-04-12_2101_deribit-perp-quarter-residual-gap-alpha.md
BTC perpetual 与 BTC dated future 本质上共享大部分方向暴露;当顶层可成交 quote 相对“该期限应有 carry”出现异常扩张时,做 short rich leg / long cheap leg,赌 residual gap 回落。carry 只是公平价值基线,不是 alpha 本体。这轮优先目标还是补 可独立复现、尽量可直接落地 的 raw alpha,而不是再写一篇泛泛的 filter / overlay。
我最后选的是 GitHub 仓库 Hudie / crypto_algo_trading 里那条 Deribit perpetual-vs-dated-future 套利执行壳,重点读了:
strategy/backup_deribit_perpetual_future_arb.pystrategy/deribit_cross_future.pystrategy/deribit_cross_remote_future.pyREADME.md先把 base alpha 说清楚:
> 不是看 BTC 涨跌,而是看同一条 BTC 曲线里,两条近似同质暴露(perp 与季度 future / 两个远月 future)的可成交价差,是否短时偏离了该期限本该有的 carry 水平,并在几分钟到几十分钟内向中枢回落。
它属于:
raw alpharelative value / stat-arbcarry / basis 家族里的 短周期执行化版本和我们之前已经写过的几类主题不一样:
这次真正值钱的,是一个更贴近实盘组件拆解的东西: repo 把 entry / edit / cancel / hedge / rebalance 全写成了 live execution shell。
backup_deribit_perpetual_future_arb.py 给的是“先 future 挂 maker,再 perp 做对冲”从源码可以直接抽出这条执行顺序:
BTC-PERPETUAL 与一条季度 future 的 quote;future.ask - perp.askperp.bid - future.bidpost_only limit;这套骨架之所以值钱,是因为它不是“看见价差就口头说一句能套利”,而是已经写成:
的完整原型。
从 backup_deribit_perpetual_future_arb.py 能抽出几件事:
edit order 跟价;cancel;这就是一个非常典型的 event-driven relative-value execution shell。
deribit_cross_future.py / deribit_cross_remote_future.py 说明作者不只做一条配对同 repo 里还写了:
BTC-PERPETUAL vs BTC-25SEP20BTC-25SEP20 vs BTC-25DEC20这说明作者并不是只盯着“perp 对单一季度合约”,而是在做一整个 同 venue term-structure dislocation family:
对当前 desk 来说,这意味着它不只是单点灵感,而是一个可以扩成:
perp-vs-quarterfront-vs-backshort carry residualterm-structure quote-gap的研究分支。
这里要老实一点:repo 不能直接 clone 就跑。
原因至少有三层:
源码里写死的是类似:
BTC-PERPETUALBTC-25SEP20BTC-25DEC20这些当然早就过期了。
源码里存在一堆写死的 gap 档位,比如:
LONG_GAP = [1160, 1177, 1200, 1230, 1255]SHORT_GAP = [245, 40, 30, 10, -20, -60, -110, -170][180, 225, 270, 315, 360] 这类档位这些数值今天不能生搬硬套。真正该保留的是:
而不是 2020 年那串具体数字。
仓库里配置文件暴露了历史账户配置痕迹,说明这不是一个可以直接接生产的安全工程样板。
对我们来说,正确读法是:
我用 Deribit 公共 API 看了 2026-04-12 21:00 UTC 附近的 futures 曲线快照。
BTC-PERPETUAL:71362.25BTC-29MAY26:71451.25BTC-26JUN26:71571.25BTC-25SEP26:72081.25BTC-25DEC26:72758.75对应到 perp 的 basis:
26JUN26:+209.0(+0.293%,约 1.44% annualized)25SEP26:+719.0(+1.008%,约 2.22% annualized)25DEC26:+1396.5(+1.957%,约 2.79% annualized)这组快照很直白:
> 今天 perp-vs-quarter 的 raw price gap,大头本来就来自正常 contango,而不是异常错价。
例如同一时刻:
BTC-25SEP26 best_ask - BTC-PERPETUAL best_ask = 720.5如果你直接拿旧脚本那种固定 gap 数字去套,极容易把“正常期限结构”误当成 alpha。
所以当前 desk 真正该继承的,不是“固定价差阈值”,而是:
> 对 carry 先做公平价值基线,再看 residual gap 有没有短时异常扩张。
把 raw gap 改写成 fair-value-adjusted residual gap:
fair_gap(τ) = perp_mid × carry_curve(τ) × τ / 365residual_ask = (future_ask - perp_ask) - fair_gap(τ)residual_bid = (future_bid - perp_bid) - fair_gap(τ)人话版:
若 residual_ask 明显过高:
sell future / buy perp若 residual_bid 明显过低:
buy future / sell perp1m / 3m / 5m / 15m因为它本来就是:
所以最自然的实验频率其实是:
1m:最小 baseline3m:降噪版本5m:更接近 desk 当前主频15m:用于看 carry residual 是否只是秒级噪声,还是能延续成更慢的 close-out pocket只在以下同时满足时进场:
perp-vs-near quarter;fair_gap(τ);residual 超过 rolling p95 / p97.5 或 z >= 2.0 / 2.5 / 3.0;任一满足就平:
residual 回到 0 ~ 0.5σ;5m / 15m / 30m / 60m);沿用 repo 的思想,不沿用它的旧数值:
size_per_trade = min(future_top_size, perp_top_size, venue risk cap)主要风险不是方向,而是:
至少显式建三档:
否则很容易把 paper alpha 误读成可成交 alpha。
这轮它值得,不是因为“repo 很新”,而是因为它把我们当前最缺的一类素材补得很实:
> 短周期、可事件驱动、可落到执行细节的 same-venue relative-value raw alpha。
对当前 desk,它的价值有三点:
方向很明确:做 residual gap 收敛,而不是做解释性分析。
repo 里已经有 order edit / cancel / hedge / rebalance 这些我们真正要拆的东西。
先做 perp-vs-quarter,再扩到:
perp-vs-next-quarterfront-vs-backsame-underlier multi-pair netting这轮必须落到最小实验,不空谈。
1m / 3m / 5m / 15m baseline输入:
构造:
BTC-PERPETUAL 对 BTC-26JUN26 / BTC-25SEP26 / BTC-25DEC26;fair_gap(τ);residual_bid / residual_ask / residual_mid;1m / 3m / 5m / 15m 上分别做 rolling z-score / percentile;z >= 2.0 / 2.5 / 3.0z <= 0.5 / 05 / 15 / 30 / 60 min2 / 5 / 10 bps 三档1m / 3m / 5m / 15m1m 的信号是不是只是噪声,还是比 5m 更有 edge?如果第一轮 baseline 显示:
那这条线就降级,不继续占 bot7 的主 intake。
https://github.com/Hudie/crypto_algo_tradinghttps://github.com/Hudie/crypto_algo_tradinghttps://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/strategy/backup_deribit_perpetual_future_arb.pyhttps://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/strategy/deribit_cross_future.pyhttps://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/strategy/deribit_cross_remote_future.pyhttps://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/README.mdhttps://www.deribit.com/api/v2/public/get_instruments?currency=BTC&kind=future&expired=falsehttps://www.deribit.com/api/v2/public/get_book_summary_by_currency?currency=BTC&kind=futurehttps://www.deribit.com/api/v2/public/get_order_book?instrument_name=BTC-PERPETUAL&depth=1