Introduction: What is a Forex Triangular Arbitrage Gap?
Triangular arbitrage arises when three related currency pairs are quoted at prices that are not perfectly consistent with each other. In theory, the direct cross rate between two currencies should match the synthetic rate implied by trading through a third currency. When the synthetic rate is better than the direct rate (after costs), a trader can potentially lock in a small, low‑risk profit by executing a three‑leg loop.
This calculator focuses on the arbitrage gap between the direct cross (A/C) and the synthetic cross created by combining A/B and B/C. It uses your bid/ask quotes, starting amount, and per‑leg costs to estimate the net profit or loss from running a full loop in one direction.
How the Arbitrage Gap is Calculated
To understand the gap, you need two rates:
- Direct cross rate A/C – the market quote for currency A versus currency C.
- Synthetic cross rate A/C via B – the rate implied by trading A/B and B/C together.
Ignoring bid/ask for the moment, the synthetic rate is simply:
In live trading, you must respect the direction of each leg and use the appropriate bid or ask:
- If you sell a currency pair, you transact at the bid.
- If you buy a currency pair, you transact at the ask.
A typical loop might be:
- Convert currency A to B using the A/B pair.
- Convert B to C using the B/C pair.
- Convert C back to A using the A/C pair.
The calculator multiplies your starting amount in A through each leg, applying bid or ask depending on the trade direction chosen by the underlying logic. It then deducts transaction costs and expected slippage, quoted in basis points (bps), from each leg’s notional amount.
Incorporating Costs and Slippage
Your per‑leg costs are entered as bps. One basis point is one hundredth of a percent:
If the total per‑leg friction (transaction cost + slippage) is c bps, then the fraction of notional lost per leg is:
The calculator reduces the effective amount on each leg by this fraction. Over three legs, the combined effect can easily erase a small theoretical arbitrage.
Reading the loop profit and the breakeven gap
Each run reports five things: the synthetic A/C bid and ask, the net result of Loop 1 (A→B→C→A), the net result of Loop 2 (A→C→B→A), the per-leg cost you assumed, and the midpoint mispricing paired with a breakeven gap. Read them in that order and the picture usually resolves fast.
Start with the two loop figures, each shown in currency A and as a percentage of your stake. Only one direction of the triangle can pay at any instant, so expect one loop to be less negative than the other. A genuinely dislocated market shows one clearly positive loop while the reverse loop pays the spread twice and sinks well into the red.
- A positive loop means the synthetic path beat the direct cross by more than three legs of spread and cost. Treat it as a candidate, not a fill — it is only real if all three legs clear at the quoted prices.
- A handful of units either side of zero is noise. The theoretical edge is smaller than the slippage you will actually absorb, so firing three orders to chase it loses money on average.
- A clearly negative loop tells you spreads and fees swamp any dislocation in that direction. Check the other loop before concluding there is nothing to trade.
The breakeven gap is how far the direct cross would have to move away from the synthetic mid just to leave you flat after costs. At 1 bp of friction per leg it sits near 0.03%, and the raw mispricing has to clear that line before any profit shows up. Convert a net figure to basis points on your stake with Return (bps) = (Net Profit ÷ Starting Amount) × 10,000 so you can compare it against that hurdle directly.
A EUR/USD/JPY triangle, worked end to end
Say you are watching the euro, the dollar, and the yen, so A = EUR, B = USD, and C = JPY. The three pairs quote as units of the quote currency per one unit of the base:
- EUR/USD (A/B): bid 1.0998, ask 1.1000
- USD/JPY (B/C): bid 149.80, ask 149.84
- EUR/JPY (A/C): bid 164.72, ask 164.76
You stake 100,000 EUR and budget 0.5 bps of commission plus 0.5 bps of slippage on every leg — 1.0 bp of friction per leg. Following the A → B → C → A loop, before costs:
- Sell EUR for USD at the EUR/USD bid: 100,000 × 1.0998 = 109,980 USD.
- Sell USD for JPY at the USD/JPY bid: 109,980 × 149.80 = 16,475,004 JPY.
- Buy EUR back through EUR/JPY at the ask: 16,475,004 ÷ 164.76 ≈ 99,994 EUR.
Before a cent of cost, the spread alone has cost you roughly 6 EUR: the direct EUR/JPY ask (164.76) sits just above the synthetic bid (1.0998 × 149.80 = 164.75), so the loop already closes below your stake. Now apply the friction. Each leg keeps a factor of (1 − 0.0001), and three legs compound to about 0.99970, which trims 99,994 EUR down to roughly 99,964 EUR — a net loss near −36 EUR, about −3.6 bps. Run the reverse loop on these same quotes and it comes out negative too, because a market with no genuine dislocation charges you the spread whichever way you circle the triangle. That is the lesson: a tidy-looking set of quotes is not an opportunity until the loop clears zero after all three deductions.
Comparison With Related Forex Tools
Triangular arbitrage analysis sits alongside other risk and pricing tools you may use. Conceptually:
| Tool | Main Question Answered | Primary Inputs | Typical Use Case |
|---|---|---|---|
| Triangular Arbitrage Gap Calculator | Is there a profitable misalignment between three FX pairs after costs? | Three bid/ask pairs, trade size, per‑leg bps | Scanning live quotes for short‑lived arbitrage loops. |
| Forex Pip Value Calculator | How much is one pip worth in my account currency? | Pair, price, position size, account currency | Sizing trades and translating price moves into P&L. |
| Margin Call Distance Calculator | How far can price move before I hit a margin call? | Leverage, balance, margin requirement, position size | Risk management and stress testing positions. |
Together, these tools help you judge both whether a pricing edge exists and whether it is worth the capital, leverage, and operational risk involved.
Where the model stops matching the tape
The arithmetic treats the triangle as a single frozen snapshot you can trade in full — which is precisely the part live markets refuse to guarantee. Keep these gaps between the model and reality in mind before trusting a green number.
- All three legs fill at once, at the shown quote. The math assumes zero latency between legs. In practice a quote can move in the milliseconds between your first and third order, and that drift is often larger than the edge you were chasing.
- Your whole size trades at top of book. The bid and ask you type in are the best price only. Push more than the displayed depth and later fills arrive at worse levels, quietly shrinking or reversing the loop.
- Costs live entirely in the two bps fields. Ticket charges, exchange fees, financing, and rebates are invisible to the tool unless you fold them into the transaction-cost or slippage inputs. Leave them out and the result flatters you.
- The three quotes are synchronized. Pairing a stale EUR/JPY with a fresh EUR/USD manufactures an arbitrage that exists only on your screen. Pull all three from the same venue, or comparable venues, at the same moment.
- Direction is fixed per run. Loop 1 and Loop 2 use opposite sides of every market, so their gaps differ. A profitable A → B → C → A does not imply a profitable reverse, so evaluate the loop you actually intend to trade.
Because of all this, a positive gap is a flag to investigate, never a filled ticket. It survives only if your execution is fast enough, deep enough, and cheap enough to hold on to the edge the snapshot showed.
How to use: Practical Use and Risk Considerations
- Feed it consistent, current quotes for all three pairs.
- Enter a realistic starting size for currency A that matches what you might actually trade.
- Estimate transaction cost and slippage based on your broker, venue, and historical fills. Underestimating these values will overstate arbitrage profitability.
- Compare the resulting net profit and return in bps to your operational risk tolerance and the complexity of monitoring and firing three‑leg sequences.
Always remember that triangular arbitrage edges are typically tiny and short‑lived. Even with a favorable gap, execution delays, changing spreads, and liquidity constraints can turn a calculated profit into a real‑world loss. Use the outputs as one input into your decision‑making, not as an automated trade signal.
Triangular arbitrage in practice
Foreign exchange markets trade currency pairs that relate one currency to another. If you multiply the price of A/B by B/C, you obtain an implied price for A/C. When the actual quoted A/C price diverges from the implied price, you can simultaneously trade all three pairs to lock in a profit. Executing this strategy requires speed, access to competitive spreads, and awareness of transaction costs. AgentCalc already provides tools for sizing trades (through the pip value calculator) and for protecting positions (via the margin call distance calculator). The triangular arbitrage gap calculator completes the toolkit by checking whether the apparent mispricing survives after fees and slippage.
The calculator evaluates two loops. Loop 1 starts with currency A, sells it for B using the A/B bid, uses B to buy C via the B/C bid, and then converts C back to A using the A/C ask. Loop 2 mirrors the process in the opposite direction: start with A, buy C at the A/C bid, trade C for B at the C/B bid (equivalently 1 divided by the B/C ask), and finish by buying A with B at the A/B ask. Each leg multiplies the notional by the relevant rate after deducting transaction costs and slippage expressed in basis points. The final amount compared with the starting notional reveals the profit or loss.
The synthetic cross rate generated by the other two pairs is compared to the direct cross rate to quantify the raw mispricing. A positive gap does not guarantee profit because each leg erodes value through spreads and fees. The calculator therefore subtracts an “all-in cost factor” from each rate so you can test whether the mispricing is large enough to overcome friction. This is especially helpful for retail traders whose per-trade costs are higher than institutional desks.
Formula: Mathematics behind the gap
Suppose you quote pair A/B with bid price and ask price . Likewise, pair B/C has bid and ask , and pair A/C has bid and ask . Ignoring costs, the synthetic ask for A/C inferred from A/B and B/C is , while the synthetic bid equals . A triangular arbitrage opportunity exists when the actual bid/ask for A/C lies outside this synthetic interval.
After deducting basis-point costs, the calculator computes the final capital after each loop. For Loop 1 (A→B→C→A), conceptually:
Here f is the per-leg cost fraction converted from basis points (bps):
Each leg multiplies the traded amount by (1 − f) to model commissions and slippage. Because costs accumulate, even a seemingly attractive mispricing may vanish after three deductions. The calculator surfaces both the net payoff and the breakeven mispricing—the percentage gap that would reduce your profit to zero.
Worked example (alternate scenario)
Imagine you monitor EUR/USD (A/B), USD/JPY (B/C), and EUR/JPY (A/C) quotes. EUR/USD trades at 1.06620/1.06626, USD/JPY at 149.52/149.54, and EUR/JPY at 159.35/159.39. You can start with €100,000. Transaction costs are 0.4 bps per leg with expected slippage of 0.2 bps per leg because of fast markets. Feeding these quotes into the calculator shows how Loop 1 and Loop 2 can differ by direction once spreads and costs are applied, and it reports a breakeven gap threshold for your assumptions.
Comparison of arbitrage conditions
Triangular arbitrage windows vary dramatically depending on spreads and volatility. The table contrasts three common scenarios using the same €100,000 notional. In each case the calculator deducts 0.6 bps in combined costs per leg.
| Market state | Raw Mispricing (pips) | Net Profit (€) | Execution comment |
|---|---|---|---|
| Calm Asian session | 0.7 | -4 | Spreads dominate; avoid trade. |
| Moderate London open | 1.8 | 12 | Viable if fills are simultaneous. |
| Volatile data release | 3.6 | 42 | Large edge but higher slippage risk. |
Interpreting the outputs
The calculator summarizes the direct versus synthetic cross rates, loop profits in both directions, and breakeven gap. You also see the all-in-cost percentage per leg so you can double-check commissions and market-impact assumptions. A warning appears if any calculated rate is non-positive, signaling inconsistent inputs. Because arbitrage requires near-simultaneous execution, the tool emphasizes percentage payoff so you can compare it with latency risk. A 0.02% edge can disappear during a single 100 ms delay.
Staying cautious
Triangular arbitrage is low risk only when all three legs confirm and clear simultaneously. Retail brokers may reject one leg, leaving you with an unintended open position. Use the breakeven gap to set alarms that exceed your minimum fill probability. Consider automating the input feed from your trading platform to minimize manual entry errors. Always test with small notionals before scaling.
Arcade Mini-Game: Forex Triangular Arbitrage Gap Calculator Calibration Run
Use this quick arcade run to practice separating useful scenario inputs from common planning mistakes before you rely on the calculator output.
Start the game, then use your pointer or arrow keys to catch useful inputs and avoid bad assumptions.
