源文件:research/quant_digests/2026-04-12_0518_deribit-okx-longdated-wing-quotegap-alpha.md
short rich venue / long cheap venue,赌 quote gap 收敛;delta cap 与 DTE cap 只是 admission layer,不是 alpha 本体。这轮主看的是 GitHub 仓库 Hudie / crypto_algo_trading,重点读了:
strategy/catch_gap.pystrategy/catch_large_gap.py这份仓库很老,接口也还是 OKEx 年代,不适合直接拿来跑实盘;但它有一个对当前 desk 仍然很值钱的地方:它把“同合约跨 venue premium gap 收敛”写成了完整策略壳,而不是只做监控面板。
先把 base alpha 说清楚: > 同 expiry / same strike / same option type 的 BTC option,本质上是同一份状态暴露;若 Deribit bid 明显高于 OKX ask,或反过来,就不是方向交易,而是 cross-venue relative-value convergence。
和我们 3 月 26 日那篇 近到期 OKX-Deribit call premium 收敛 不同,这次更值得 intake 的不是 settlement-window 那个老 pocket,而是:
近到期 pocket 可能已经很干净,剩下的 edge 是否主要迁移到了 long-dated wing inventory dislocation?
这不是 filter,不是 overlay,而是一条仍然能独立下单的 raw alpha;只是它的“最可能出现在哪里”变了。
catch_gap.py 直接把 entry shell 写死了源码核心触发条件在这几行:
v['deribit'][0] - float(v['okex'][2]) >= gapfloat(v['okex'][0]) - v['deribit'][2] >= gaptimedelta <= tabs(delta) <= d也就是只在以下同时满足时触发:
catch_gap.py 给的主触发梯度是:
gap >= 0.0025, |delta| <= 0.36, DTE <= 3dgap >= 0.0040, |delta| <= 0.33, DTE <= 6dgap >= 0.0055, |delta| <= 0.32, DTE <= 10dgap >= 0.0070, |delta| <= 0.31, DTE <= 15dgap >= 0.0090, |delta| <= 0.30, DTE <= 31d因为 BTC option premium 本身常以 BTC 计价,这套阈值可以直接读成: repo 只想做“至少 25~90 bps of underlier”的真实大 gap,而且只想做低 delta、较短期限的 contract。
catch_large_gap.py 又额外给了一层长一点的壳catch_large_gap.py 进一步放宽成:
gap >= 0.01, DTE <= 31dgap >= 0.03, DTE <= 93d这说明作者并不是只相信 near-expiry;他真正的思路更像: > 同合约跨 venue gap 是 alpha 本体;近到期 / 低 delta / 大 gap 只是为了提升 fill quality 与降低残余风险。
源码不是只报信号,还把完整执行顺序写出来了:
RISK_RATIO_CALL = 2RISK_RATIO_PUT = 4MAX_SIZE_PER_TRADE = 2这很关键,因为它说明这条线不是“想象中的理论 no-arb”,而是一个已经被拆成:
的完整原型。
仓库里直接写了历史 API key / secret,而且 OKEx 接口与当前交易所命名都过时。对 desk 来说,正确读法不是“git clone 直接跑”,而是:
我用公开 API 做了一次最小 live scan:
public/get_book_summary_by_currency?currency=BTC&kind=optionpublic/get_order_book/api/v5/public/instruments?instType=OPTION&uly=BTC-USD/api/v5/market/tickers?instType=OPTION&uly=BTC-USD并把 Deribit / OKX 上 same expiry / same strike / same C/P 的 BTC options 对齐,得到 artifact:
reports/artifacts/literature/crossvenue_option_gap_scan_summary_2026-04-12.csvreports/artifacts/literature/crossvenue_option_gap_scan_detail_2026-04-12.csv快照时间:2026-04-12 05:14:41 UTC
11 个是 sell Deribit / buy OKX4 个是 sell OKX / buy Deribit按 DTE 分桶:
<=31d:2 个,且最大 gap 只有 0.000132~93d:0 个94~180d:4 个,最大 gap 0.0005>180d:9 个,最大 gap 0.0020这组数字的含义很直白: > 今天还会肉眼看到的 cross-venue option gap,基本已经不在 near-expiry;它主要躲到了 long-dated wing。
最大的几档都集中在 2026-12-25 这组 long-dated calls:
80k C: gap 0.0020, Deribit delta 0.486985k C: gap 0.0020, Deribit delta 0.423790k C: gap 0.0015, Deribit delta 0.364495k C: gap 0.0015, Deribit delta 0.3114100k C: gap 0.0010, Deribit delta 0.2651反而 <=31d 的两个小口袋只有:
2026-04-24 84000 C: gap 0.00012026-04-13 70500 P: gap 0.0001也就是说,近到期这条线目前不像“还能做但要精调阈值”,更像“已经被市场磨得只剩噪声”。
1m 扫描、1m/3m 进场、5m/15m 管 time-stop 与 inventory risk#### Entry 只在以下同时满足时开仓:
rich_bid - cheap_ask > fees + spread buffer + stale buffer + venue risk buffer;0.20 <= |delta| <= 0.55;0~7d / 8~31d / 32~93d / 94~365d。#### Exit 任一满足就平:
10m / 30m / 60m);第一版别做“理论无风险大容量”幻想,直接按:
size_cap = min(cheap_ask_size, rich_bid_size, venue_margin_cap, MAX_SIZE_PER_TRADE)这条线最主要的风险不是 BTC 方向,而是:
必须显式进模型:
这轮不是在写一个泛泛的 options 微结构综述,而是在回答一个更具体的问题:
> repo 给的 same-contract cross-venue option arb 壳,今天还剩什么?
当前答案很明确:
near-expiry settlement pocket:是否已经基本死掉?long-dated wing dislocation:是否存在更稳定但更低频的 quote-close pocket?只做最小版,不扩 scope:
每 1m 记录:
0~7d / 8~31d / 32~93d / 94~365d0.10~0.20 / 0.20~0.35 / 0.35~0.55sell Deribit / buy OKX vs sell OKX / buy Deribit若连续 7 天里:
repo-style executable hits ≈ 0net-of-fee crossed rate 仍极低那就把这条线从前排 raw-alpha pool 降到 options watchlist,不要继续烧时间。
> 这条线依然是 raw alpha,但当前市场给出的残余形态已经变了:近到期 same-contract quote-gap 基本干净,真正还会 crossed 的更像 Deribit-OKX 长天期 wing inventory dislocation。对 short-cycle desk,下一步不是重复写 settlement-window,而是老老实实验证“long-dated wing quote-close”到底是不是还活着。
https://github.com/Hudie/crypto_algo_tradinghttps://github.com/Hudie/crypto_algo_trading2020-08-14, updated 2026-03-29, stars 55https://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/strategy/catch_gap.pyhttps://raw.githubusercontent.com/Hudie/crypto_algo_trading/master/strategy/catch_large_gap.py10.1016/j.finmar.2024.100930https://doi.org/10.1016/j.finmar.2024.100930https://www.deribit.com/api/v2/public/get_instrumentshttps://www.deribit.com/api/v2/public/get_book_summary_by_currencyhttps://www.deribit.com/api/v2/public/get_order_bookhttps://www.okx.com/api/v5/public/instrumentshttps://www.okx.com/api/v5/market/tickersreports/artifacts/literature/crossvenue_option_gap_scan_summary_2026-04-12.csvreports/artifacts/literature/crossvenue_option_gap_scan_detail_2026-04-12.csv