Crypto Strategy · Arbitrage

Cross-Exchange Arbitrage
Why retail traders can't actually win

2026-06-03·11 min read·Arbitrage Strategy

One of the first things people notice in crypto:the same BTC trades at different prices on Binance and Coinbase. A gap of a few seconds can mean $50~$200 of price difference. The instinctive reaction — just buy low and sell high, risk-free, right?

Almost every retail trader who tries it loses money. This post breaks down why, and which "arbitrage" plays retail can still run.

1. Two flavors of cross-exchange arbitrage

1.1 Pure spread arbitrage (cash arbitrage)

Exchange A: BTC = $60,000. Exchange B: BTC = $60,150. The textbook play: buy on A, sell on B, pocket $150.

But you can't execute both legs instantly — either buy on A and withdraw to B before selling (slow), or pre-fund positions on both sides and fire simultaneously (capital tied up).

1.2 Triangular arbitrage

On the same exchange, three trading pairs are mispriced relative to each other.

# Triangular arbitrage example
BTC/USDT = 60,000
ETH/USDT = 3,000
ETH/BTC  = 0.04999  # but 3000/60000 = 0.05, should be 0.05

→ Implied arbitrage:
  Sell 1 BTC for 60,000 USDT
  60,000 USDT for 20 ETH
  20 ETH × 0.04999 BTC/ETH back to 0.9998 BTC

→ Looks like a loss, but in reality: if ETH/BTC quotes 0.05005,
  20 × 0.05005 = 1.001 BTC → gain 0.001 BTC (risk-free)

2. Why retail almost never wins at pure spread arbitrage

2.1 Withdrawal latency (the biggest killer)

BTC on-chain transfer: 1–6 hours (depending on exchange confirmation count). ETH withdrawal: 10–30 minutes (depending on gas). USDT-TRC20: 1–10 minutes.

Spreads only exist for seconds to minutes. By the time your BTC moves from A to B, the gap is long gone — and may have flipped, meaning your B sell price is now lower than your A buy price.

2.2 Bots are hundreds of times faster than you

Professional arb shops run:

  • Cross-exchange colocation (servers physically inside the exchange data center)
  • VIP fee tiers (fees approaching zero)
  • Direct WebSocket feeds + high-frequency polling
  • Pre-funded inventory on every exchange to avoid withdrawal latency

The instant you spot a $100 spread, they've already collapsed it back to $5. When your order fills, the counterparty pockets $5, not $100.

2.3 Hidden costs eat the profit

Run the numbers:

Your costs:
  Exchange A taker fee: 0.05%
  Withdrawal fee (BTC): $5~$15
  Exchange B taker fee: 0.05%
  Slippage (thin order book): 0.1%
  ──────
  Total cost ≈ 0.2~0.3% + $5~$15 fixed

To profit, the spread must exceed cost:
  $60,000 × 0.3% = $180 + $15 = $195

In reality, 99% of the time the spread < $195.
The moments a $200+ gap appears = bots already ate it.

3. The most famous cross-exchange spread in history: Mt.Gox vs Kraken 2014

In February 2014, after Mt.Gox froze user withdrawals, BTC inside the exchange traded at up to a 1100% discount to the outside market. Kraken BTC = $560; Mt.Gox internal price = $100.

Looked like an epic arbitrage opportunity. Reality:nobody could withdraw from Mt.Gox. The spread was real, the arbitrage was not — because the prerequisite (movable assets) didn't hold.

'Spread exists = arbitrage opportunity' is wrong
A spread is just appearance. To arbitrage you need:fills on both sides + asset transferability + cost below spread. Miss any one, and the visible gap is just meat you can't eat.

4. The most recent crypto example: FTX collapse

On the eve of FTX's November 2022 implosion, FTT traded at a 30%+ discount on FTX vs other exchanges. But FTX withdrawals were already suspended — anyone who tried to arb it bought FTT on FTX and got stuck there forever.

5. The "quasi-arbitrage" plays retail can still run

Pure spread arbitrage is essentially out of reach for retail, but the following are relatively viable:

5.1 Funding rate arbitrage (delta neutral)

Long spot + short perpetual, earn funding. See the Funding Rate Arbitrage Complete Guide for details. This works because everything happens inside one exchange — no cross-exchange withdrawal problem.

5.2 Cross-exchange funding rate spread

Exchange A BTC perp funding +0.05% / 8h; Exchange B BTC perp funding +0.01% / 8h.

Play: short BTC perp on A (collect funding), long BTC perp on B (pay the lower funding), net +0.04% / 8h ≈ 43% APR (as long as the spread persists).

This is more viable than pure spread arbitrage — you don't need to transfer assets, just enough position capacity on both sides.

5.3 Triangular arbitrage (HFT bot territory)

Triangular arbitrage executes inside a single exchange, but the speed requirement is brutal. A retail-tier ccxt script can occasionally catch one, but competing with pro market makers is purely a speed race.

5.4 New listing window arbitrage

When a new token lists simultaneously on Binance / OKX / Bybit, prices diverge wildly across exchanges in the first few minutes. Withdrawals may not be open yet, so it becomes natural arbitrage between users — but the window is tiny (5–10 minutes) and you need pre-funded positions on both sides.

6. CEX vs DEX arbitrage

DEXs (Uniswap / Hyperliquid) often quote different prices than CEXs. But the DEX side has its own bottlenecks:

  • Gas fees: $5–$50 per trade on Ethereum mainnet
  • MEV bots: your transaction gets front-run or sandwiched
  • Slippage: AMM pool depth too shallow

CEX-DEX arbitrage today is almost entirely captured by professional MEV searchers. For retail, an order-book DEX like Hyperliquid is more realistic than an AMM DEX.

7. Running "quasi-arbitrage" strategies on TVSBot

TVSBot supports one-click multi-account (one Alert auto-routes to multiple bound API keys) — the same TradingView Alert can fire into different accounts on different exchanges. This makes cross-exchange funding rate arbitrageactually practical:

# TradingView Pine signal
when funding(A) - funding(B) > 0.04%:
    Alert payload: { "strategy": "fr-arb-AB", "action": "buy" }

# TVSBot backend routes by strategy:
#   strategy fr-arb-AB-short → API key A → short BTC perp
#   strategy fr-arb-AB-long  → API key B → long BTC perp
# Both legs fill simultaneously, net exposure ≈ 0, collect funding spread

Get started

Ready to ship what you just learned?

Want to run cross-exchange funding rate arbitrage? TVSBot's 'one-click multi-account' — one Alert, both sides fire at once, no naked legs from latency.

Start free trial

8. Three key takeaways

  1. Retail can't really do pure spread arbitrage — three walls: withdrawal latency + bot speed + hidden costs
  2. Visible spread ≠ arbitrage. Mt.Gox's 1100% gap, FTX's 30% gap — both stemmed from "assets can't move," and the spread was just appearance
  3. Cross-exchange funding rate spreads are one of the few quasi-arbitrage plays retail can run — no asset transfer required, just capacity on both sides