← 返回 Quant Digests · 站点首页

别把三角套利只读成“老掉牙搬砖”:对 short-cycle crypto desk,更该先测的是「同所同步报价里的 cross-rate inconsistency」这条 relative-value raw alpha

更新时间:2026-04-18 10:50 UTC 研究时间:2026-04-18 10:48 UTC 类型:GitHub repo source audit + Binance Spot `bookTicker` live public-data portability probe 主题标签:raw-alpha / relative-value / stat-arb / triangular-arbitrage / cross-rate / law-of-one-price / spot / binance / usdt / usdc / fdusd / eth / 1m / 3m / 5m / repo / public-data / cost / risk 证据类型:repo audit + live top-of-book probe

源文件:research/quant_digests/2026-04-18_1048_triangular-crossrate-loop-alpha.md

1. 这次看了什么

这轮主看的是 GitHub 仓库 Drakkar-Software/Triangular-Arbitrage,核心文件包括:

它做的事情很直接:把交易对当成有向图上的边,遍历闭环路径,找出乘积大于 1 的 cycle。repo 默认用的是 last/close 价,不含买卖价差、不含手续费、不含执行顺序约束;所以它给的是一个 raw alpha 探测器,不是现成可上线的 execution engine。

但它的优点也正好在这里:base alpha 非常清楚,不是 overlay,不是 filter,就是最朴素的 Law-of-One-Price 偏离——同一撮同步报价之间,若 A -> B -> C -> A 的净兑换率大于 1,就有套利闭环。

2. 核心结论

2.1 live probe 读出来的 3 个关键数

我对 Binance Spot USDT / USDC / FDUSD / BTC / ETH / BNB / SOL / XRP / DOGE / ADA / LINK 做了约 90 秒、每秒一次的 top-of-book 扫描,只保留从 USDT 出发的三腿闭环:

  1. 零费用 gross 版90/90 个样本都能找到正的闭环,median 约 +1.50 bps,最好约 +4.68 bps
  2. 每腿 4 bps(接近很优 taker / 普通 maker-taker 混合的乐观口径)后:0/90 个样本为正,best 也只有 -7.32 bps
  3. 每腿 10 bps(更接近普通 taker 口径)后:同样 0/90 个样本为正,median 约 -28.47 bps

最常出现的最佳闭环是:

这说明什么?说明 edge 本体是存在的,而且公开数据一眼就能复现;但 它首先是 execution / fee / queue-priority 问题,不是信号是否存在的问题

3. 为什么这题仍然值得进研究池

虽然公开 top-of-book + taker 口径下 first verdict 偏负,但这题仍值得保留,原因有三个:

3.1 它是很干净的 raw alpha,不是伪命题

很多“结构类”主题其实只有 filter 意义;但三角套利不是。它的 base alpha 可以直接写成:

净环收益 = Π(逐腿可成交汇率) - 1

只要 净环收益 > 全部费用 + 执行缓冲,就能做;做完就平,没有方向暴露。这个定义足够干净,能独立存在。

3.2 它天然适合 1m / 3m / 5m 甚至更快的最小实验

这类信号不是日频/小时级宏观条件,而是秒级到分钟级的闭环偏离。对我们 desk 来说,很适合拿来做:

3.3 它能反过来当别的 raw alpha 的 execution veto

即便最后不单独上线 tri-arb,本题也能沉淀出一个很值钱的组件:

也就是说:这题既可以被当 raw alpha 主体,也可以降级复用成其它 relative-value 策略的风控层。

3.5 策略拆解(必填)

4. repo 里真正有价值的部分

triangular_arbitrage/detector.py 的关键价值不是“能找到 cycle”本身,而是它把问题抽象成了:

  1. 每个交易对是一条可兑换边;
  2. 反向兑换边用倒数价格表示;
  3. 找乘积最大的闭环;
  4. 乘积大于 1 就是候选机会。

这让它天然可迁移到:

所以 repo 本身虽然只是探测器,但它提供了一个很干净的 alpha skeleton。

5. 可复刻的最小实验

5.1 最小研究假设

同一所 spot 报价中,若某三腿循环在真实 bid/ask 与手续费后仍存在稳定正净值,则可形成可交易的短周期 stat-arb pocket。

5.2 最小可复现实验口径

5.3 这轮已完成的 public-data probe

本地已生成:

结果摘要:

6. 对 short-cycle desk 的实际读法

6.1 不要把它理解成“普通账户直接 taker 三下就能赚”

公开盘口已经说明:如果你只是普通 taker,edge 很大概率会被费用直接吃掉

6.2 真正更值钱的,是这三种 desk 级用法

  1. 低费/返佣/做市权限账户:重新评估是否能把 gross pocket 留住。
  2. 内部路由 / 多账户 / 自建撮合优先级研究:验证 execution 是否比“公开顶档 + taker”更有优势。
  3. 作为 quote-health / stale-leg veto:给 stablecoin spread、same-underlier multi-quote、跨 quote pair 策略做 admission filter。

7. 风险与保留意见

8. 下一步怎么测

别再继续做 last-price 图搜索了,下一步应该是这 4 件事:

  1. bookTicker 升级成 websocket BBO 流:看正净值机会的持续时间,而不是只看轮询快照。
  2. 把费用从常数改成真实账户费率场景:普通 taker / VIP taker / maker-first / maker+taker 混合分开测。
  3. 把容量从顶档扩成前 3~5 档累计深度:算真实可成交名义和冲击后净值。
  4. 只盯 USDT/USDC/FDUSD + BTC/ETH/SOL 的稳定币相关闭环:因为这轮 live probe 里最佳环长期集中在 quote fragmentation 最强的位置。

如果这 4 步下来仍为负,就把 tri-arb 从“主策略候选”降级成:

9. 数据源与公开性

10. 来源

Repo source

Public market data

Local artifacts

11. 最后一句话

这题的答案不是“有没有 alpha”——有,而且公开数据很容易看到;真正的问题是:你的费用、延迟、排队权和执行兜底,够不够把这点 alpha 留在自己账上。