EURUSD is 1.0850/1.0852, USDJPY is 152.30/152.34 and EURJPY is 165.35/165.39. Is there a triangular arbitrage, and what is it worth on EUR 1m before fees?

EURUSD is 1.0850/1.0852, USDJPY is 152.30/152.34 and EURJPY is 165.35/165.39. Is there a triangular arbitrage, and what is it worth on EUR 1m before fees?

Approach: Build the synthetic cross bid and offer from the two dollar legs, taking the correct side of each quote, then compare both synthetic sides against the traded cross.

30,632. A triangular arbitrage exists. Buying euros through the dollar pays the EURUSD offer times the USDJPY offer, 1.0852 * 152.34, which is 165.319368 yen per euro, the synthetic offer. The traded cross bid of 165.35 sits above it, so you buy euros synthetically at 165.319368 and sell them on the cross at 165.35, earning 0.030632 yen per euro, or 30,632 yen on EUR 1m, about $201 at 152.30. The other direction loses, since the synthetic bid is 1.0850 * 152.30, or 165.2455, below the cross offer of 165.39. Getting the bid-ask sides right is the whole exercise, since every leg has to be dealt on the side of the quote you are shown, and all three fills must land inside the same quote refresh, so the binding constraint is latency and the transaction cost per leg rather than the size of the gap.

Follow-up: Each leg costs 0.2 basis points in fees. Does the arbitrage survive, and how large must the gap be to clear three legs of fees?

Key concepts: triangular arbitrage, synthetic cross, bid-ask sides, transaction cost.