源文件:research/quant_digests/2026-03-28_0903_drift-hyperliquid-basis-pocket.md
short rich venue / long cheap venue,等待 cross-venue basis 回归这次主看的是 Alex Bitok (2025) 的 GitHub 仓库 Drift ↔ Hyperliquid Arbitrage Bot。它不是那种只给一个“套利机会监控面板”的半成品,而是把两条可独立运行的策略都写出来了:
我这轮只把它的 basis branch 拎出来,因为这条线的 base alpha 很清楚:
> 同一资产、同一合约类型、不同 venue 的 perp-perp basis 会在短时间内向可成交的公允区间回归。
这比继续补一篇泛 trend/filter 更值得当前 desk 收进素材池,原因很直接:
docs/LEARNING_TRACK.md、docs/FACTOR_BACKLOG.md 里,当前主线已经有不少 trend / breakout / pullback 组件;entry / cost / slippage / rollback / timeout / safe_mode 都写进去了,天然适合做 admission check。repo 最值钱的地方,不是“发现 Drift 和 Hyperliquid 有价差”这句话,而是它已经把完整策略骨架搭好了:
amount=1.0、max_slippage_bps=10、min_profit_usd=1.0、poll_interval_sec=1;fees.drift=8bps、fees.hyperliquid=7bps;ExecutionEngine 协调双腿下单、等待成交、失败回滚;safe_mode、order_submit_sec=10、order_cancel_sec=5 这些实盘保护;对我们 desk 来说,这意味着它不是“想法线索”,而是已经接近 可直接 dry-run 的完整策略底盘。
但我做了最小 live snapshot 后,结论也很明确:
always-on 扫描,而是:换句话说,这条 raw alpha 不是没有,而是生存条件非常苛刻;要先把“什么时候值得出手”测清楚,而不是直接默认常开。
我用公开可得的两边盘口做了一个最小 live snapshot(UTC 2026-03-28 约 09:10):
83.0623 / 83.086383.1040 / 83.1050long Drift / short Hyperliquid,当前可交叉 gross spread 约 2.13 bps1994.35 / 1995.741995.90 / 1996.0066306.7 / 66314.566330.0 / 66331.02 × (8bps + 7bps) = 30bps这几个数放一起就够说明问题:
因此,这篇东西的正确 desk 化读法不是:
> “双所有价差,所以能套利。”
而是:
> “cross-venue perp-perp basis 是一条真实 raw alpha,但只有在 fee budget、slippage、queue priority、rollback 风险都被严肃约束后,才会变成可活 pocket。”
basis_t = rich_venue_crossable_bid - cheap_venue_crossable_askbasis_t 足够大,且扣掉成本后仍显著为正时,做:short rich venuelong cheap venue不要直接沿用“profit >= min_profit_usd 就打”这种静态写法,建议改成 net-edge pocket:
gross_edge_bpsentry_fee_bpsexpected_exit_fee_bpsslippage_buffer_bpsrollback_buffer_bpsnet_edge_bps = gross_edge_bps - all_costs_bps > threshold一个更诚实的起点是分三档:
net_edge_bps 明显大于 0;建议别做“赚到固定金额就走”的粗口径,而是:
basis_t 压缩到入场时的 25%~50% 以下;30s / 60s / 180s / 300s 多档观察;entry + stop_buffer,直接平;适合用深度约束 + notional cap,而不是固定手数:
size <= min(drift_depth_cap, hyper_depth_cap, venue_margin_cap, strategy_notional_cap)3~5 档的 5%~10% participation;BTC/ETH/SOL,别一开始上小币。这条策略的核心不是预测错,而是 execution / latency / fee cliff:
max_slippage_bps 要单独统计两腿,不要只看 max;rollback 成功率本身就是主 KPI;0~5bps,那不是“再调调参数”,而是这条实现方式不该上。1m / 3m / 5m / 15m 的关系这条 alpha 的天然周期其实比 5m 更快,更像 seconds → 1m / 3m 的高强度 raw alpha。对当前 desk,最合理的定位是:
1m / 3m:可以直接做主策略 admission check;5m / 15m:更适合作为所以它不是典型 bar-close 15m 因子,但完全符合用户允许的更快高强度 alpha intake。
先别急着回测 PnL,先做 pocket existence check:
1s 拉一次 Drift l2 与 Hyperliquid l2BookBTC/ETH/SOL3~7 天gross_edge_bps(long Drift / short Hyper)gross_edge_bps(long Hyper / short Drift)gross_edge_bps > 5 / 10 / 15 / 20 / 30 bps 的出现频率1s/3s/5s/10s/30s)5s/15s/60s/180s 的 markout如果结果显示:
那下一步就转成:
> “maker-first cross-venue basis pocket”
而不是继续把它包装成“普适双边套利”。
这份 2025 repo 值得进素材池,但要换一个更诚实的标题:
一句话总结:
> alpha 在,execution 更大;先验证 pocket 是否存在,再决定这是不是策略,而不是先假设它能赚钱。
Venue: GitHub DOI: N/A Repo URL: https://github.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_ Readable README: https://raw.githubusercontent.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_/main/README.md Key source files:
https://raw.githubusercontent.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_/main/strategies/basis.pyhttps://raw.githubusercontent.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_/main/strategies/funding.pyhttps://raw.githubusercontent.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_/main/execution/engine.pyhttps://raw.githubusercontent.com/Alex-bitok/drift-hyperliquid-arbitrage-bot_/main/config/main.example.yamlURL: https://api.github.com/repos/Alex-bitok/drift-hyperliquid-arbitrage-bot_ 用于确认仓库创建时间、最近更新时间、stars 与描述。
URL 示例:https://dlob.drift.trade/l2?marketName=SOL-PERP 公开性:公开可得 更新频率:近实时 order-book 本轮最小实验口径:每秒抓取 BTC-PERP / ETH-PERP / SOL-PERP 的 bids/asks,构造 depth-weighted crossable edge。
URL: https://api.hyperliquid.xyz/info 本轮使用 payload:
{"type":"l2Book","coin":"SOL"}{"type":"l2Book","coin":"ETH"}{"type":"l2Book","coin":"BTC"}公开性:公开可得 更新频率:近实时 order-book 本轮最小实验口径:与 Drift 同步抓取后,计算双方向 crossable basis 与 pocket 持续时间。