Arbitrage: cross-exchange spreads, the spot + futures hedge, and what gets in the way

The section shows where the same coin is cheaper and where it is more expensive right now — at executable prices, with deposit and withdrawal checks, and an honest mark wherever we do not know the status.

The section header has three tabs: «Funding», «Spot + futures» and «Spot → spot». The rate difference has its own article about funding; this one covers the other two. «Spot → spot» means buy cheaper, transfer the coin and sell higher. «Spot + futures» means buy the cheap side, short the expensive futures and wait for convergence without moving the coin anywhere. The tables refresh every half minute.

Spot → spot: how the spread is computed

  • Only spot is compared with spot: futures cannot be transferred between exchanges, and the gap between spot and futures is basis — the second tab is about that.
  • Prices are executable: buying at the ask of the cheap venue, selling into the bid of the expensive one. The last trade of a thin pair hangs between them and draws ghost spreads — we do not use it.
  • Both sides need daily turnover of $100K or more and a live data stream: you cannot enter a dead order book.
  • A pair whose own book is wider than 5% is dropped as thin: its prices are not a foothold.
  • A spread below 0.05% drowns in fees and is not shown; above 20% it is different assets, a trading halt or a closed withdrawal, not an opportunity.
  • Namesakes are filtered out: if different assets trade under one name with prices apart by multiples, only the most crowded price cluster is used.

Table columns

  • «Coin»the ticker and a link to the coin page; marks appear next to it.
  • «Spread»the difference in percent of the buy price. A struck-through spread cannot be executed.
  • «Life»how long the spread has held without a break (see below).
  • «Cheaper»the venue, the buy price and its daily turnover.
  • «Dearer»the venue, the sell price and turnover.
  • «Venues»on how many exchanges the coin passed all filters.

Honesty marks

  • «withdrawals off» and «deposits off»we check the coin's status ourselves at the five exchanges that publish it: HTX, Gate, KuCoin, Bitget and Binance. Refreshed every ten minutes. A closed route strikes the spread through: you can buy, you cannot deliver.
  • Bybit, OKX and MEXC do not publish the status. We do not know it and do not pretend: the row stays unmarked and is not passed off as «possible».
  • «price detached»the expensive venue sits 3% or more above the median of the others (at least three venues are needed as a base). That is what a closed deposit usually looks like where the exchange hides the status. It is a warning, not a ban: the row stays in the «Executable» view.
  • «transfers halted»on the exchanges we know, the coin is closed both for deposit and withdrawal: this looks like a network-wide pause, the transfer will not go through anywhere.
  • «venue warning»the venue itself flags the pair as diverging from the global price (Upbit does this). The spread may be a local anomaly.

«Life» and the percentile

A watcher records the spread every twenty seconds and keeps a day of history. «Life» is how long the spread has held continuously at 1% or more. Seconds are almost certainly a phantom from one exchange's data lag; minutes are a live opportunity; hours usually mean a closed route nobody can stitch. Hover over the number: the tooltip shows what share of the day's readings were below the current spread, and the day's maximum. The percentile appears once there are at least ten readings.

Filters

The «All spreads / Executable» switch hides rows with a known closed route or a halted network; all rows are shown by default because a struck-through row is knowledge too. The «Exchanges» button removes venues from the computation: rows are not hidden but rebuilt, and the next venue honestly becomes the cheap side. The choice is shared by all three tabs, and Telegram notifications respect it as well.

Spot + futures: a hedge without moving the coin

The «Spot + futures» tab looks for pairs where the cheap side can be bought (spot or futures) and the expensive side can only be shorted — so it must be futures. The columns are «Buy», «Short (futures)» and «Short funding, annual»: plus means the rate is paid to you while you wait for convergence; minus means the rate eats the spread. The rate is annualised because exchanges use different periods. Here «withdrawals closed» is a warning, not a ban: nobody can stitch the spread by transfer, and convergence may take weeks.

Risks: a spread is not profit

  • Fees on two exchanges plus the network withdrawal fee are yours; a 1% spread can be eaten whole.
  • A transfer takes timeminutes to hours depending on the network. While the coin travels, the spread may close.
  • Slippage: the best order's price is shown, not the average price for your size.
  • The deposit/withdrawal status is not known for every exchange, and the known one refreshes every ten minutes — a route may close between refreshes.
  • In the hedge, legs on different exchanges do not cover each other's margin: a rising price squeezes the short while the spot profit sits on another venue.
  • Spreads above 20% are dropped as a data error or a trading halt, not as luck.

Questions and answers

Why is the spread struck through?

The route is closed: the coin cannot be withdrawn from the cheap exchange or deposited to the expensive one — the exchange itself said so. The number stays because it is true, but it cannot be executed. Hover over the mark and the tooltip explains which side is closed.

What does «price detached» mean?

The expensive venue holds 3% or more above the rest. In a live market venues are stitched together by transfers, so a gap like that lasting hours usually means deposits there are closed. But this exchange does not publish the status, so we warn rather than assert, and we do not hide the row.

Can I get a notification about a spread?

Yes, with the «Alerts» button on the tab: a threshold of 1, 2, 3, 5 or 10% and the checkbox «Executable only (no closed paths)». The message arrives in Telegram once the spread has held for over a minute; repeats per coin come at most once every two hours. You need an account with Telegram linked.

Why are there no futures in the «Spot → spot» tab?

Because a futures contract is not a thing but a position on an exchange: it cannot be withdrawn and deposited. The gap between spot and futures is basis, and the «Spot + futures» tab is about that — where convergence is awaited, not transported.

Why is my coin not in the table?

It failed the filters: one side's turnover is below $100K, the book is wider than 5%, the spread is under 0.05% or over 20%, or the coin trades on spot at fewer than two venues with live data.