第二章 市场选择:主流交易所对比

做价差套利,第一步不是写代码,而是选战场。

你想想看,交易所选错了,策略再牛也白搭。流动性不够,你挂单半天成交不了;费率太高,利润全给交易所打工了;API不稳定,行情一波动直接断连——这些坑,我早年都踩过。

今天咱们就掰开揉碎,聊聊四大主流交易所:Binance、OKX、Bybit、Coinbase。我会从流动性、费率、API差异三个核心维度,结合我自己的实战经验,帮你选出最适合套利的平台。

2.1 流动性:套利的命脉

流动性说白了,就是你能不能快速成交,还不影响价格。

我个人习惯,先看订单簿深度。深度不够的交易所,价差看着大,你一进去就滑点,利润瞬间变亏损。

交易所 BTC/USDT 日均深度(1%价差内) 挂单成交速度 我的评价
Binance ~5000 BTC 极快(<50ms) 流动性之王,套利首选
OKX ~3000 BTC 快(<80ms) 深度不错,主流币够用
Bybit ~2000 BTC 较快(<100ms) 合约深度好,现货稍弱
Coinbase ~1500 BTC 中等(<150ms) 合规性强,但深度一般

我在项目中遇到过,有一次在Bybit做ETH现货套利,挂了一笔50 ETH的买单,结果只成交了30 ETH,剩下的被滑点吃掉了。后来我学乖了,大单子只走Binance。

核心结论:Binance 的流动性是其他交易所的1.5-3倍。如果你做高频价差套利,Binance 几乎是必选项。

2.2 费率:利润的隐形杀手

很多人只看价差,不看费率。其实费率才是套利的隐形杀手。

举个例子,你发现Binance和OKX之间BTC有0.05%的价差,觉得稳赚。结果一算,双边手续费加起来0.1%,反而亏了。嗯,这种低级错误我刚开始也犯过。

交易所 现货 Maker 费率 现货 Taker 费率 合约 Maker 费率 合约 Taker 费率
Binance 0.1% 0.1% 0.02% 0.05%
OKX 0.08% 0.1% 0.02% 0.05%
Bybit 0.1% 0.1% 0.01% 0.06%
Coinbase 0.4% 0.6% 不支持 不支持

避坑指南:我曾经在Coinbase上做过一次套利,以为0.4%的Maker费率能接受。结果一算,双边0.8%的费率,加上滑点,直接亏了。Coinbase 的费率是其他交易所的4-6倍,除非你有特殊需求(比如合规),否则别用它做套利。

另外,别忘了VIP等级。Binance和OKX都有阶梯费率,交易量大了可以降到0.02%甚至更低。我自己的账户,因为月交易量够大,Binance的Maker费率已经降到0.02%了。说白了,量变引起质变。

2.3 API差异:技术选型的核心

API好不好用,直接决定你的开发效率。

我做过一个统计,Binance的API文档是最清晰的,错误码也最规范。OKX的API功能很全,但文档有点乱。Bybit的API速度不错,但有些接口设计得不太合理。Coinbase的API...嗯,合规性很好,但速度慢,限制多。

2.3.1 WebSocket 订阅

做价差套利,实时行情是刚需。WebSocket的稳定性和延迟,直接决定你能不能抓到价差。

# Binance WebSocket 示例(Python)
import asyncio
import websockets

async def subscribe_binance():
    uri = "wss://stream.binance.com:9443/ws"
    async with websockets.connect(uri) as ws:
        # 订阅 BTC/USDT 深度
        subscribe_msg = {
            "method": "SUBSCRIBE",
            "params": ["btcusdt@depth20@100ms"],
            "id": 1
        }
        await ws.send(json.dumps(subscribe_msg))
        # 持续接收数据
        async for message in ws:
            print(message)

# OKX WebSocket 示例
# 注意:OKX 需要先登录获取 token
async def subscribe_okx():
    uri = "wss://ws.okx.com:8443/ws/v5/public"
    async with websockets.connect(uri) as ws:
        subscribe_msg = {
            "op": "subscribe",
            "args": [{"channel": "books", "instId": "BTC-USDT"}]
        }
        await ws.send(json.dumps(subscribe_msg))
        async for message in ws:
            print(message)

你看,Binance的订阅方式更简洁,直接传参数就行。OKX需要先走一遍认证流程,稍微麻烦点。

我的经验:Binance的WebSocket延迟最低,实测在20-50ms之间。OKX和Bybit在50-100ms。Coinbase的WebSocket延迟最高,经常超过200ms。做高频套利,延迟就是金钱。

2.3.2 REST API 限频

限频是另一个大坑。每个交易所的限频策略都不一样,搞不好就被封了。

交易所 REST API 限频 WebSocket 连接数 我的建议
Binance 1200次/分钟(权重制) 最多5个连接 权重制比较灵活,合理分配
OKX 20次/秒(IP限制) 最多50个连接 IP限制严格,建议用代理
Bybit 50次/秒(IP限制) 最多10个连接 限频适中,够用
Coinbase 10次/秒(IP限制) 最多3个连接 限频最严,不适合高频

我曾经在OKX上吃过亏。当时写了个脚本,每秒请求30次,结果IP直接被封了24小时。后来我加了限流,每秒不超过15次,才稳定下来。

2.3.3 订单类型支持

做价差套利,你需要快速下单、撤单。不同交易所支持的订单类型不一样。

  • Binance:支持市价单、限价单、止损单、OCO(一取消另一)订单。OCO订单做套利特别方便,可以同时挂买单和卖单。
  • OKX:支持市价单、限价单、止损单、冰山订单。冰山订单适合大单,可以隐藏真实数量。
  • Bybit:支持市价单、限价单、止损单、条件单。条件单可以设置触发价格,适合做网格。
  • Coinbase:只支持市价单和限价单。功能最弱,但合规性最强。

我的推荐:如果你做跨交易所价差套利,Binance 的 OCO 订单和 OKX 的冰山订单是神器。Bybit 的条件单也不错,但 Coinbase 就算了,功能太弱。

2.4 综合对比与选择建议

说了这么多,到底怎么选?我直接给结论。

场景 推荐交易所 理由
高频价差套利 Binance + OKX 流动性好,API稳定,延迟低
中低频套利 Binance + Bybit Bybit合约深度好,适合期现套利
合规套利 Coinbase + Binance Coinbase合规,Binance流动性
新手入门 Binance 单交易所 先练手,熟悉API和套利逻辑

我个人习惯,主力资金放在Binance,辅助资金放在OKX。Bybit用来做合约套利。Coinbase...嗯,除非客户要求,否则我基本不用。

最后一个小建议:别贪多。刚开始做套利,选两个交易所就够了。Binance + OKX 是最稳妥的组合。等跑通了,再慢慢加其他交易所。

好了,市场选择就聊到这儿。下一章咱们聊聊套利策略的设计,从最简单的两腿套利开始。