Triangular arbitrage uses three currency trades when quoted exchange rates imply an inconsistent cross-rate after spreads and costs.
Triangular arbitrage is a foreign-exchange strategy that converts one currency through two other currency pairs and back to the starting currency when the three quoted rates imply an inconsistent cross-rate. A trade is only meaningful if the loop remains profitable after bid-ask spreads, commissions, market impact, settlement risk, credit limits, and execution latency.
The strategy is common in textbooks because the math is clean. In live FX markets, the window can be tiny because electronic pricing, high-frequency trading, and dealer quote updates quickly close obvious inconsistencies.
| Step | Example action | What can go wrong |
|---|---|---|
| Start with currency A | Sell USD for EUR. | Quote changes or size is unavailable. |
| Convert currency B | Sell EUR for GBP. | Spread widens or order is partially filled. |
| Return to currency A | Sell GBP for USD. | Final quote moves before completion. |
| Compare result | Ending USD exceeds starting USD after costs. | Fees, settlement, latency, or counterparty limits remove the edge. |
A simplified loop condition is:
If the ending amount is greater than the starting amount after using executable bid/ask rates and deducting costs, the quotes imply a triangular arbitrage opportunity. If the calculation uses mid-market rates instead of executable prices, the result can be misleading.
| Evidence | Why it matters |
|---|---|
| Bid and ask quotes | Mid-rates can create false arbitrage. |
| Trade size and market depth | Large orders may move the quote or fill only partly. |
| Execution latency | The three legs must execute before quotes change. |
| Venue and counterparty rules | Last look, rejection rights, and credit limits affect fill quality. |
| Settlement and payment timing | FX trades can create principal, liquidity, and operational risk. |
| Transaction costs | Commissions, spreads, and platform fees determine whether the loop survives. |
| Risk controls | Stops, kill switches, position limits, and reconciliation prevent small errors from scaling. |