Arbitrage trading bot: the "risk-free" trade that rarely is
Arbitrage is the most seductive bot idea: buy an asset cheaper on one venue, sell it dearer on another, pocket the difference — supposedly risk-free. Bots are perfect for it because the windows are tiny and fleeting. But the easy cross-exchange spreads were arbitraged away years ago by faster players, and what looks like free money usually hides fees, transfer delays and execution risk. This guide covers the real arbitrage types, the hidden costs, and where a retail edge might still survive.
The three arbitrage types
- Cross-exchange — same asset, two venues, different prices.
- Triangular — three pairs on one exchange whose prices don't quite agree.
- Funding-rate — long spot, short perpetual, collect the funding payment.
Cross-exchange arbitrage
The textbook case: BTC is $100 cheaper on Exchange A than B. Buy on A, sell on B. The catch is you need inventory on both already — moving coins between exchanges takes minutes, and the gap closes in seconds.
Triangular arbitrage
Within one exchange, three pairs (e.g. BTC/USDT, ETH/BTC, ETH/USDT) imply an exchange rate. When they briefly disagree, a loop of three trades captures the discrepancy — no transfers needed, so it's faster, but the discrepancies are tiny and rare.
python · triangular.py# implied vs actual: USDT -> BTC -> ETH -> USDT
implied = (1 / btc_usdt) * (1 / eth_btc) * eth_usdt
edge = implied - 1 - 3 * fee # three legs of fees!
if edge > 0:
execute_loop() # must fill all three before it closes
Funding-rate arbitrage
The most durable retail-accessible arb: hold spot long and short the perpetual of the same asset. You're market-neutral on price, and when funding is positive the shorts pay you. It's lower-risk but capital-heavy and the funding can flip.
The hidden costs that kill it
Fees on every leg, the spread you cross, transfer time between venues, and latency versus faster bots. Subtract all four and most displayed arbs are negative. The ones that aren't are gone before a retail order arrives.
The realistic edge
Pure cross-exchange arbitrage is a professional, capital- and latency-intensive game. The realistic retail entry points are funding-rate arbitrage (durable, market-neutral, capital-heavy) and watching for dislocations during volatile events. Before building anything, model every leg's fees — and remember that an arb bot's edge is execution, not idea. Size it with the position calculator and respect the risk rules.
Frequently asked questions
Is arbitrage trading really risk-free?
No. The 'risk-free' label ignores fees on every leg, the spread you cross, the time to transfer funds between exchanges, and your latency disadvantage versus faster bots. Subtract all of those and most visible arbitrage opportunities are negative or already gone before a retail order can fill.
Do crypto arbitrage bots still work?
The easy cross-exchange spreads were competed away years ago by professional, co-located players. Retail arbitrage bots rarely profit from pure price gaps now. The more durable retail-accessible form is funding-rate arbitrage, which is market-neutral but capital-heavy.
What is triangular arbitrage?
Triangular arbitrage exploits brief disagreements between three trading pairs on a single exchange — for example BTC/USDT, ETH/BTC and ETH/USDT. A loop of three trades captures the discrepancy without transferring funds between venues, but it must fill all three legs before the gap closes, and three sets of fees apply.
What is funding-rate arbitrage?
It means holding spot long while shorting the perpetual future of the same asset, leaving you neutral on price direction. When the funding rate is positive, short holders receive payments, which becomes the return. It's lower-risk than directional trading but ties up significant capital and the funding rate can flip negative.