1. 套利基础:什么是多币种套利、三角套利原理、套利机会的数学条件
大家好,我是老李。今天咱们聊聊套利的基础。说实话,很多人一听到「套利」就觉得是高大上的金融操作,其实没那么玄乎。我当年刚入行时,也觉得这东西离自己很远,直到亲手跑通了第一个三角套利策略——嗯,那种感觉就像发现了一个没人注意的宝藏入口。
1.1 什么是多币种套利?
多币种套利,说白了就是利用不同货币对之间的价格不一致来赚钱。你想想看,同一个商品在不同市场卖不同价格,你低价买入高价卖出,差价就是利润。外汇市场也一样。
举个例子:
- 你在A交易所用1美元买了0.9欧元
- 在B交易所用0.9欧元买了1.1英镑
- 在C交易所用1.1英镑买了1.05美元
转了一圈,1美元变成了1.05美元。这5%就是套利空间。听起来简单吧?但实际执行起来坑很多,我后面会讲。
1.2 三角套利原理
三角套利是套利里最经典的模式。为什么叫三角?因为涉及三个币种,形成一个闭环。比如 BTC/USDT、ETH/BTC、ETH/USDT 这三个交易对,就构成了一个三角。
我习惯把三角套利分成两种:
- 直接三角套利: 三个交易对都在同一个交易所。比如币安上的 BTC/USDT、ETH/BTC、ETH/USDT。
- 跨交易所三角套利: 三个交易对分散在不同交易所。比如 BTC/USDT 在币安,ETH/BTC 在欧易,ETH/USDT 在火币。
直接三角套利的好处是速度快,不用考虑跨交易所转账延迟。跨交易所的利润空间通常更大,但风险也更高——我曾经因为一笔转账卡了10分钟,眼睁睁看着套利窗口关闭,亏了手续费。
1.3 套利机会的数学条件
好,现在咱们来点硬核的。套利机会到底怎么判断?数学上其实很简单。
假设有三个币种:A、B、C。对应的交易对是:
- A/B:1个A可以换多少B
- B/C:1个B可以换多少C
- C/A:1个C可以换多少A
如果这三个汇率相乘的结果不等于1,就存在套利机会。
具体公式:
套利条件:Rate(A/B) × Rate(B/C) × Rate(C/A) ≠ 1
如果乘积 > 1:正向套利(A→B→C→A)
如果乘积 < 1:反向套利(A→C→B→A)
举个例子:
| 交易对 | 汇率 |
|---|---|
| BTC/USDT | 50000 |
| ETH/BTC | 0.04 |
| ETH/USDT | 2100 |
计算一下:50000 × 0.04 × (1/2100) = 50000 × 0.04 × 0.000476 = 0.952
乘积小于1,说明存在反向套利机会。具体操作是:用USDT买ETH,再用ETH买BTC,最后用BTC换回USDT。
1.4 套利机会的实时检测逻辑
在实际系统中,我们不可能手动算这些。需要写代码实时监控。下面是我常用的检测逻辑:
def detect_arbitrage(prices):
"""
prices: 字典,包含所有交易对的买一卖一价
返回:是否存在套利机会及具体路径
"""
# 以 BTC/USDT, ETH/BTC, ETH/USDT 为例
btc_usdt_bid = prices['BTC/USDT']['bid'] # 买一价
btc_usdt_ask = prices['BTC/USDT']['ask'] # 卖一价
eth_btc_bid = prices['ETH/BTC']['bid']
eth_btc_ask = prices['ETH/BTC']['ask']
eth_usdt_bid = prices['ETH/USDT']['bid']
eth_usdt_ask = prices['ETH/USDT']['ask']
# 正向套利:USDT → BTC → ETH → USDT
forward = (1 / btc_usdt_ask) * (1 / eth_btc_ask) * eth_usdt_bid
# 反向套利:USDT → ETH → BTC → USDT
reverse = (1 / eth_usdt_ask) * eth_btc_bid * btc_usdt_bid
# 判断是否有套利空间(考虑手续费)
fee_rate = 0.001 # 千分之一手续费
if forward > (1 + fee_rate):
return "正向套利机会", forward
elif reverse > (1 + fee_rate):
return "反向套利机会", reverse
else:
return "无套利机会", 0
1.5 套利机会的时效性
套利窗口通常只存在几秒钟,甚至几百毫秒。为什么会这样?因为市场上有大量的量化交易机器人在盯着。一旦出现价格偏差,它们会在毫秒级内完成交易,把价格拉回正常水平。
所以,手动套利基本没戏。你需要:
- 低延迟的网络连接(最好用服务器托管)
- 高效的API接口(WebSocket比REST快很多)
- 本地计算,减少网络请求次数
我记得有一次,我在本地电脑上跑套利程序,延迟大概50毫秒。结果连续一周没抓到一次有效套利。后来把程序部署到交易所附近的云服务器上,延迟降到5毫秒,当天就抓到了3次。嗯,这就是现实。
1.6 本章知识体系
下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍应该就能理解整个套利检测的流程。
这张图把整个流程串起来了。从获取数据到计算乘积,再到判断是否执行。你照着这个逻辑写代码,基本不会跑偏。
公众号:蓝海资料掘金营,微信deep3321