← Back to Blog

Cross-Exchange Arbitrage:
A Complete Execution Guide

Spotting the gap is the easy part. This guide covers what actually happens between seeing a price difference and walking away with profit — fee math, capital positioning, simultaneous execution, and how to close cleanly.

What Cross-Exchange Arbitrage Actually Is

Cross-exchange arbitrage is the most direct form of crypto arbitrage: the same asset trades at two different prices on two different exchanges at the same moment. You buy where it's cheap and sell where it's expensive — simultaneously — and the spread is your profit.

Unlike triangular arbitrage (which runs a loop on one exchange) or funding rate arb (which earns passive payments over time), cross-exchange arb is transactional. You enter, capture the gap, and exit. The entire trade can last seconds if both legs are pre-positioned and execution is clean.

Core Mechanic

Buy low on Exchange A. Sell high on Exchange B. Net the spread minus fees.

The key constraint: both legs must execute as close to simultaneously as possible. If you buy first and then the gap closes before you can sell, you own the asset at market price with no edge. Pre-positioned capital on both exchanges eliminates the need to transfer coins mid-trade.

A Live Trade Scenario

Here's what a real cross-exchange opportunity looks like when it fires. The scanner shows SOL/USDT with a significant price gap between two exchanges:

Live Signal — SOL/USDT Price Gap
Exchange A (Binance)$142.80 ← BUY
Exchange B (Bybit)$146.10 ← SELL
Raw spread+2.31%
Round-trip fees (0.04% + 0.055% × 2 sides)−0.19%
Estimated slippage−0.05%
Net profit (est.)+2.07% ✓

On $1,000 capital, +2.07% net = +$20.70 profit per trade. ArbVertex only signals gaps that have already cleared the fee threshold — you act, you don't calculate on the fly.

2%+
Minimum net gap ArbVertex signals after all fees
0.19%
Typical round-trip fee cost (Binance + Bybit taker)
<30s
Target execution window — both legs placed

Fee Math: What You're Actually Paying

Fees are the single biggest factor in whether a cross-exchange trade is profitable. Every trade involves four fee events: two opens (buy on A, sell on B) and two closes when you unwind. Understanding the exact cost structure is non-negotiable before entering any trade.

Exchange Standard Taker VIP/BNB/Discount Round-trip cost
Binance 0.10% 0.04% (BNB discount) 0.08% (with BNB)
Bybit 0.10% 0.055% (VIP1) 0.11% (VIP1)
Gate.io 0.20% 0.10% (VIP1) 0.20% (VIP1)
MEXC 0.20% 0.00% (promo) 0.00% (promo periods)
KuCoin 0.10% 0.06% (KCS discount) 0.12% (KCS)
Bitget 0.10% 0.06% (VIP1) 0.12% (VIP1)
Fee Reduction Tip

Binance's BNB fee discount (25% off) and MEXC's periodic zero-fee promotions can meaningfully change minimum viable spread thresholds. With Binance BNB + Bybit VIP1, your combined round-trip cost drops to ~0.19% — meaning a 0.25% gap is already profitable. Always check current fee schedules as these change.

Full Fee Calculation: $2,000 SOL Trade

Let's run the complete numbers on the SOL scenario above with $2,000 total capital ($1,000 on each exchange):

Capital on Binance (buy leg)$1,000 USDT
Capital on Bybit (sell leg)$1,000 USDT equiv. in SOL
SOL bought on Binance @ $142.807.003 SOL
Binance taker fee (0.04%)−$0.40
SOL sold on Bybit @ $146.107.003 × $146.10 = $1,023.10
Bybit taker fee (0.055%)−$0.56
Estimated slippage (both sides)−$0.50
Net profit on $1,000 deployed+$21.64 (+2.16%)

The other $1,000 (SOL pre-held on Bybit) is used as the sell-side inventory — it's not consumed, just repositioned. After the trade, you have more USDT on Bybit and less SOL there, while Binance has more SOL and less USDT. The rebalancing step (described below) resets you for the next trade.


The Critical Step: Pre-Positioning Capital

The biggest mistake beginners make is trying to buy on Exchange A and then withdraw the coin to Exchange B to sell. Blockchain confirmations take 10 minutes to 2 hours — the gap closes in seconds. You need capital already sitting on both exchanges before any signal fires.

Exchange A (e.g. Binance)
USDT only
Hold stablecoins ready to buy any coin that gaps down here. When a signal fires showing Binance is cheaper, you deploy USDT immediately.
BUY SIDE
Exchange B (e.g. Bybit)
Coin inventory
Hold a basket of liquid coins (BTC, ETH, SOL, BNB etc.) ready to sell. When Bybit is expensive, you sell from this inventory immediately.
SELL SIDE

After the trade, Exchange A has more coin and less USDT. Exchange B has more USDT and less coin. You can either wait for a reverse gap on the same pair (which naturally rebalances), or periodically rebalance by transferring USDT from Bybit back to Binance and coin from Binance back to Bybit via the most cost-effective network.

📐 Optimal Capital Split

A practical starting allocation: keep 60% of your capital as USDT spread across 2–3 exchanges, and 40% as a coin inventory (BTC, ETH, SOL split evenly) across those same exchanges. This gives you buy-side liquidity and sell-side inventory simultaneously, without over-concentrating in any single position.


The 5-Step Execution Playbook

When a gap signal fires, this is the exact sequence of actions:

1

Verify the gap is still live

Open both exchange apps side by side (or use ArbVertex scanner). Confirm the bid/ask prices still show the gap. Gaps can close in under 10 seconds — if the spread has already compressed to under 0.5%, stand down.

2

Calculate your position size

Decide how much capital to deploy. Consider: order book depth on both exchanges (can you fill without moving price?), your available inventory on the sell side, and your total exposure limit per trade.

Position size = min(buy-side USDT, sell-side inventory value)
3

Place both orders simultaneously

Open the buy order on the cheap exchange in one window/tab, and the sell order on the expensive exchange in another. Submit both as close together as possible — ideally within 2–3 seconds. Use market orders for guaranteed fills (taker fees apply), or limit orders at the current ask/bid if the gap is large enough to absorb them.

4

Confirm both legs filled

Check trade history on both exchanges. If one leg didn't fill or partially filled, assess your net position. A partial fill on the sell side while the buy fully filled means you're holding long exposure — decide quickly whether to hold or flatten at market.

5

Rebalance for the next trade

Your capital is now misallocated — more coin on the buy exchange, more USDT on the sell exchange. Options: wait for a reverse gap that naturally rebalances, or transfer USDT via a low-fee stablecoin bridge (USDT on TRC-20 is ~$1 flat transfer fee). Don't leave capital locked in an imbalanced state for multiple days.


Common Mistakes to Avoid

⚠ Slippage Is Always Larger Than You Expect

The displayed price in the order book is for the first unit. If you're buying $2,000 worth of SOL and the order book has $500 at the displayed price, the next $1,500 will fill at progressively worse prices. Always check order book depth before entering — if your full position size isn't available within 0.2% of the displayed price, the real spread after slippage may be smaller than it appears.

The ArbVertex Advantage

Every signal from ArbVertex has already had the fee math done. The 2%+ net gap threshold accounts for standard taker fees on both sides plus an estimated slippage buffer. You don't need to calculate anything on the fly — you just need to execute both legs before the gap closes.

View signal plans →


Frequently Asked Questions

Do I need to have the coin pre-held on the sell exchange?
Yes — or you need to use futures (short the perp on the expensive side while buying spot on the cheap side). Without pre-positioned inventory, your sell leg would require borrowing (margin) or waiting for a coin transfer, both of which add cost and delay.
What's the minimum gap worth trading?
With standard taker fees on Binance (0.10%) + Bybit (0.10%), your round-trip cost is 0.40% for open+close. A 0.5% gap leaves only 0.1% after fees and slippage — barely worth the execution risk. In practice, 1.5%+ raw spread (0.5%+ net) is the realistic minimum for manual execution. ArbVertex targets 2%+ net, which provides meaningful buffer.
How do I rebalance after a trade without paying high withdrawal fees?
Use TRC-20 USDT transfers between exchanges — typically around $1 flat regardless of amount. Avoid ERC-20 (Ethereum network) unless necessary. Some traders also use internal transfers between exchange sub-accounts where supported, which can be instant and free.
Can I use futures instead of spot for the sell leg?
Yes — and this is actually common. Instead of pre-holding the coin on Exchange B, you short the perpetual futures on Exchange B. This eliminates the need for a coin inventory, but adds a small funding rate cost for the duration of your position. It also requires margin on the futures side, and you need to manage liquidation risk carefully.
How many exchanges should I have capital on simultaneously?
Two to three is the practical starting range. With two exchanges (e.g. Binance + Bybit), you can act on any signal between them. Adding a third (e.g. Gate.io or MEXC) opens more pair combinations but requires more capital to maintain meaningful positions across all of them. Most traders start with two and expand as capital grows.
☰ Blog ← Prev: Triangular Arbitrage Next: Best Exchanges →