How to use the cross rate and triangular arbitrage calculator
- Enter three currency codes. The first and second are the pair of the first rate, and the second and third are the pair of the second rate.
- Enter how many of the second currency buy 1 of the first, and how many of the third buy 1 of the second.
- Enter the direct quote for the third currency per 1 of the first.
- Optionally enter a cost per trade, then read the implied cross rate, how far the quote is from it and the result of each loop.
Formula
Implied cross rate = rate 1 x rate 2
Loop 1 = rate 1 x rate 2 / quoted x (1 - cost)^3
Loop 2 = quoted / (rate 1 x rate 2) x (1 - cost)^3
A loop result above 1 means you end with more than you began with, before anything else is counted.
EUR, USD and JPY
If 1 EUR buys 1.0850 USD and 1 USD buys 150.20 JPY, the implied rate is 1.0850 x 150.20 = 162.9670 JPY per EUR. The direct quote is 163.00, which is 0.0202% higher than the implied rate.
Selling EUR for JPY at the direct quote of 163.00, then JPY for USD and USD for EUR, ends with 100,020.25 EUR from 100,000, a gain of 20.25. The loop the other way ends with 99,979.75, a loss of 20.25. With a 0.01% cost on each trade the winning loop turns into a loss, so the table shows No for a gain.
What a cross rate is
Two currencies that are both quoted against a third can be compared with each other without a direct quote. Multiply or divide the two quoted rates and you have a cross rate. If a dealer also quotes the direct pair, the direct number and the implied cross rate should agree. When they do not, there is a mispricing.
Why a gap on paper is rarely a profit
In real markets each quote has a bid and an ask, prices move between trades, and each trade has a spread or fee. A gap of two hundredths of a percent is smaller than the cost of most retail trades, so the cost field is there to show how fast a small gap disappears. Even with zero cost, the three trades cannot all be done at the same instant at the quoted prices.
This tool is a way to practice the arithmetic and to sanity-check three quotes. If you only want to convert an amount, use the Currency Converter. To see what a bank or card adds to a rate, use the Currency Exchange Markup Calculator, and to clean a pasted column of amounts first, use the Currency Text Column Normalizer. Balance sheet effects of a rate change are in the Foreign Currency Receivable Remeasurement Calculator.
Assumptions and limits
- Each pair has a single rate with no bid and ask. Real quotes have both.
- The cost per trade is a percent of the amount traded, applied to each of the three trades.
- Loops start with 100,000 units of the first currency to make the amounts easy to read.
- This is not a trading tool or advice. The currency codes are labels and are not checked against a list.
Frequently asked questions
What does it mean when the quoted rate is higher than the implied rate?
It means the direct quote values the first currency more highly, in terms of the third, than the two quotes through the middle currency do.
Why are there two loops?
You can go around the triangle in either direction, and one direction gains when the other loses. Only the better one can ever be a gain.
Can I use quotes that are written the other way up?
Yes. Divide 1 by a quote to flip it, and enter the result so that each rate reads as units of the second currency for one of the first.
How is the cost applied?
Each trade keeps (1 - cost) of the amount, and three trades keep that to the third power.