追梦人物❤️包子 博主
一直走在追梦的路上。

CEX-DEX 稳定币套利模型

2025-10-1043 阅读0 评论

CEX (中心化交易所) 和 DEX (去中心化交易所) 的稳定币交易对(如 USDC/USDT)如果存在价差,就可能有套利机会。这篇文章研究 CEX-DEX 稳定币套利方法,建立数学模型并求解可套利条件以便编写自动化程序监控套利机会和执行相应的套利交易。

原理分析

如果 CEX 和 DEX 里稳定币价格存在差异,可以在价格较低的交易所买入稳定币,然后在另一个交易所高价卖出,即可获利。例如,假设 CEX 中 USDC 的价格为 0.9995 USDT,即 1USDC=0.9995USDT,而 DEX 中 1USDC=1USDT,则可在 CEX 中花费 9995 USDT 买入 10000 USDC,而后在 DEX 中将 10000 个 USDC 兑换为 10000 USDT,不考虑交易费用的情况下即获利 10000-9995=5 USDT。

分析可知存在 4 种套利交易方式:

  • 先在 CEX 后在 DEX 交易,交易路径 USDT -> USDC -> USDT
  • 先在 CEX 后在 DEX 交易,交易路径 USDC -> USDT -> USDC
  • 先在 DEX 后在 CEX 交易,交易路径 USDT -> USDC -> USDT
  • 先在 DEX 后在 CEX 交易,交易路径 USDC -> USDT -> USDC

交易费用

以先在 CEX 后在 DEX 交易,交易路径 USDT -> USDC -> USDT 为例,理想做法是在 CEX 将 USDT 换为 USDC,然后将 USDC 提至 DEX,在 DEX 将 USDC 换为 USDT,最后将 USDT 提回 CEX,完成一次套利闭环。

由于 CEX 提币至 DEX 涉及链上交易,时效性不理想,等提币完成后行情可能早已变化导致套利机会消失,因此需要在 DEX 中预存一定量的 USDC,实际操作中套利过程变为:

CEX 将 USDT 换为 USDC,DEX 中将 USDC 换为 USDT,然后将 CEX 中的 USDC 提至 DEX,将 DEX 中的 USDT 提至 CEX,完成套利闭环。因此交易费用包括以下几部分:

  • CEX 交易手续费 \(f\)
  • DEX 交易 gas 费 \(g\)
  • CEX 到 DEX 的提币费 \(r\)
  • DEX 到 CEX 转账 gas 费 \(s\)

需要注意的是 DEX 交易通常还需支付手续费和协议费,但这些费用已暗含在获取的价格行情数据中,因此无需单独考虑。

套利条件

仍以先在 CEX 后在 DEX 交易,路径 USDT -> USDC -> USDT 为例。设 CEX 中 USDC 的价格为 \(p\),DEX 中 USDC 的价格为 \(q\),DEX 中预存数量为 \(n\) 的 USDC。
为了完成一次套利,首先在 CEX 中将 \(np\) 个 USDT 换为 \(n\) 个 USDC;然后在 DEX 中将 \(n\) 个 USDC 换为 \(nq\) 个 USDT;最后将 CEX 中的 USDC 提至 DEX,将 DEX 中的 USDT 提至 CEX,扣除全部交易费用,总的收益需为正,即:

\[ nq-np-f-g-r-s > 0 \]

简单调整可得:

\[ q - p > \frac{f+g+r+s}{n} \]

即 DEX 和 CEX USDC 的价格差满足以上条件时存在可套利空间。

举个例子,一般 CEX 稳定币交易免手续费,即 \(f=0\),设 \(g=0.1\)\(r=1\)\(s=0.2\)\(n=10000\)\(\frac{f+g+r+s}{n}=(0.1+1+0.2)/10000=0.00013\),即 DEX 中 USDC 的价格超过 CEX 中 USDC 的价格 0.00013 后,即可套利。

实际操作中,由于 CEX 是将 USDT 换为 USDC,执行的是买入操作,因此对应的 \(p\) 应该取当前盘口的卖一价格;DEX 兑换通常要扣除手续费和协议费,所以 \(q\) 应当取输入 1USDC 后实际可兑出的 USDT 数量,这个量可以根据 DEX 的机制在线下预先计算或者调用 DEX 部署的智能合约接口进行查询。

如果交易路径为 USDC -> USDT -> USDC,上述推导过程不变,只需将 \(p\)\(q\) 的含义换成 USDT 的价格。此时 \(p\) 应该取当前盘口的买一价格的倒数\(q\) 应当取输入 1USDT 后实际可兑出的 USDC 数量

类似的,如果先在 DEX 后在 CEX 交易,路径 USDT -> USDC -> USDT。

为了完成一次套利,首先在 DEX 中将 \(\frac{n}{q}\) 个 USDT 换为 \(n\) 个 USDC;然后在 CEX 中将 \(n\) 个 USDC 换为 \(np\) 个 USDT;最后将 DEX 中的 USDC 提至 CEX,将 CEX 中的 USDT 提至 DEX,扣除全部交易费用,总的收益需为正,即:

\[ np-\frac{n}{q}-f-g-r-s>0 \]

简单调整可得:

\[ p-\frac{1}{q} > \frac{f+g+r+s}{n} \]

此时 \(p\) 的含义是当前盘口买一价格\(q\)输入 1USDT 后实际可兑出的 USDC 数量

如果交易路径为 USDC -> USDT -> USDC,上述推导过程不变,\(p\) 的含义变为当前盘口卖一价格的倒数\(q\)输入 1USDC 后实际可兑出的 USDT 数量

综上,4 种套利交易方式及其套利条件总结如下:

先 CEX 后 DEX 交易路径 USDT -> USDC -> USDT
需满足 \(q - p > \frac{f+g+r+s}{n}\),其中 \(p\) 为当前盘口 USDC 卖一价格,\(q\) 为输入 1USDC 后实际可兑出的 USDT 数量。

先 CEX 后 DEX 交易路径 USDC -> USDT -> USDC
需满足 \(q - p > \frac{f+g+r+s}{n}\),其中 \(p\) 为当前盘口 USDC 买一价格的倒数,\(q\) 为输入 1USDT 后实际可兑出的 USDC 数量。

先 DEX 后 CEX 交易路径 USDT -> USDC -> USDT
需满足 \(p-\frac{1}{q} > \frac{f+g+r+s}{n}\),其中 \(p\) 为当前盘口 USDC 买一价格,\(q\) 为输入 1USDT 后实际可兑出的 USDC 数量。

先 DEX 后 CEX 交易路径 USDC -> USDT -> USDC
需满足 \(p-\frac{1}{q} > \frac{f+g+r+s}{n}\),其中 \(p\) 为当前盘口 USDC 卖一价格的倒数,\(q\) 为输入 1USDC 后实际可兑出的 USDT 数量。

实际编程时,我们分别从 CEX 行情接口获取当前盘口 USDC 卖一价格和买一价格再计算其倒数,计算 DEX 输入 1USDT 后实际可兑出的 USDC 数量以及输入 1USDC 后实际可兑出的 USDT 数量,分别代入上述 4 种情况,看哪种情况满足可套利条件即可执行相应的套利交易。

-- EOF --

0 评论
登录后回复