Explore how to detect and exploit small currency mispricing through triangular arbitrage, from step-by-step identification and calculation to real-world considerations like transaction costs and liquidity constraints.
Triangular arbitrage is basically one of those finance concepts that first blew my mind. I remember spotting currency quotes that just didn’t line up, and thinking, “Wait, can I really make a quick buck off of this?” The good news (or maybe the bad news) is that in efficient markets, such discrepancies rarely last long. However, they do happen—usually for short intervals—and savvy traders can pounce on them.
In essence, triangular arbitrage exploits the mispricing among three different currency pairs. Suppose you start with US dollars (USD), convert them into euros (EUR), then use those euros to buy British pounds (GBP), and finally swap those pounds back to USD. If the final amount of USD exceeds what you started with, you earn a (theoretically) riskless profit. Of course, it only works if the cross rates are out of sync with each other.
Triangular arbitrage is a crucial concept in currency market mechanics because, if it’s consistently present, it indicates that the market is inefficient. Even brand-new Level II candidates quickly realize that if three exchange rates can be used to generate free money, big institutional traders will swoop in and do exactly that, forcing the rates back into alignment. This real-time correction is one reason such opportunities, in practice, disappear rapidly—fast enough that you need nearly instantaneous execution and minimal transaction fees to capture any profit.
There’s a pretty consistent process for identifying a triangular arbitrage situation. Whenever you see multiple currency quotes, here’s the general approach:
If after Step 5 you see a tidy profit, bingo—that’s a triangular arbitrage. But if transaction costs are high, or if the quotes shift faster than you can lock them in, that profit might fade away.
Below is a simple diagram to illustrate the cyclical exchange process:
graph LR; A["USD"] --> B["EUR"]; B["EUR"] --> C["GBP"]; C["GBP"] --> A["USD"];
This loop is the essence of triangular arbitrage: you hop from one currency to the next, hoping (somewhat ironically) that the left-hand doesn’t know what the right hand is doing.
Let’s see a numerical example. Imagine that you observe the following spot quotes on your trading platform:
At first glance, these quotes might look fine. But let’s see what happens if you start with USD 10,000.
• Step 1: Convert USD to EUR.
– If 1 EUR = 1.20 USD, then for your USD 10,000, you get:
EUR = 10,000 ÷ 1.20 = 8,333.33 EUR (ignoring decimals past the hundredths for now).
• Step 2: Convert EUR to GBP.
– If 1 GBP = 1.10 EUR, then for 8,333.33 EUR, you get:
GBP = 8,333.33 ÷ 1.10 = 7,575.76 GBP.
• Step 3: Convert GBP back to USD.
– If 1 GBP = 1.85 USD, then your 7,575.76 GBP yields:
USD = 7,575.76 × 1.85 = 14,025.16 USD.
Now you have USD 14,025.16 from your initial USD 10,000. That’s a profit of USD 4,025.16 on paper—pretty sweet indeed. But let’s check what happens if we directly compute the implied cross rate.
One way to detect triangular arbitrage quickly is to compare the direct cross rate with the implied cross rate:
• Direct cross rate (USD/GBP) from above:
If 1 GBP costs 1.85 USD.
• Implied cross rate from USD/EUR and EUR/GBP:
– 1 EUR = 1.20 USD, so 1 USD = 1 ÷ 1.20 = 0.8333 EUR
– 1 GBP = 1.10 EUR, so 1 EUR = 1 ÷ 1.10 = 0.9091 GBP
– Thus, 1 USD = 0.8333 × 0.9091 = 0.7576 GBP
– So the implied GBP/USD is 1 ÷ 0.7576 = 1.3197
Compare that with the quoted GBP/USD = 1.8500. There’s a discrepancy (1.3197 vs. 1.8500). Obviously, 1.8500 is out of alignment with the implied 1.3197. That mismatch is generating your arbitrage profit.
Now, the above scenario looks like a no-brainer. But, of course, real markets aren’t so generous. Bid–offer spreads and commissions often reduce or entirely eliminate your arbitrage profit.
For instance, if each currency conversion has a half-percent commission, plus you’re forced to cross unfavorable bid–ask spreads, you might quickly discover that the net gain is less (or even negative). Large institutional traders typically operate with minuscule bid–offer spreads due to volume-based discounts, making it more feasible for them to eke out a profit. You and I, on the other hand, might see those costs eat up any advantage.
Here’s a quick hypothetical scenario including spreads:
If you are buying EUR with USD, you’ll pay the ask price of 1.2020. Converting back from GBP to USD might force you to accept the bid rate of 1.8500. When you run the numbers carefully, you may discover that little bit of difference kills most or all of your theoretical profit. The moral of the story is: watch out for transaction costs and do your math thoroughly.
In actual practice, triangular arbitrage can be far more subtle than a textbook example. Market participants rely on:
• Speedy Execution: High-frequency traders use algorithms for near-instant conversions—by the time you click “confirm,” a robot might have locked in the price you wanted.
• Liquidity: Some currencies have shallow liquidity, which means the quoted rates might not be available for large trades. Executing a big order can move the market.
• Slippage: If you only partially fill your order at the displayed price, the remaining portion might execute at a less favorable price.
Despite these challenges, triangular arbitrage matters. It keeps exchange rates consistent across the global financial web. Whenever quotes start to slip out of alignment, arbitrageurs pop in to profit, which pushes them back in line again. It’s a beautiful example of market forces imposing discipline.
Below is a simplified vignette that illustrates how triangular arbitrage might appear on the CFA exam:
––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– You are an analyst at a global bank reviewing currency quotes for your firm’s proprietary trading desk. The following spot quotes are available:
• USD/EUR = 1.2300
• EUR/JPY = 135.00
• USD/JPY = 165.60
You receive instructions to evaluate if a triangular arbitrage is feasible starting with USD 1,000,000. Your firm charges a 0.10% commission for each currency trade. Assume no other fees, and that the quotes represent midpoints of their respective bid–offer ranges.
Questions could include:
• What is the implied USD/JPY cross rate from USD/EUR and EUR/JPY?
• If you convert USD → EUR → JPY → USD, do you end with more than USD 1,000,000 after including commissions?
In a typical exam setting, you’d see 4–6 multiple-choice questions on these details. You’d have to parse carefully, remembering that each leg of the transaction has a 0.10% commission on top of the stated exchange rate. The item set might show you a table of quotes and force you to do step-by-step computations—so watch your time and keep a cool head.
• Always check for transaction costs. Ignoring them can give you an overly rosy scenario.
• Remember to look at bid–ask quotes, not just midpoints. The exam may test your ability to properly apply the correct side of the spread depending on which currency you’re buying or selling.
• Watch out for decimal places. Currency quotes sometimes carry 4–5 decimal digits, and small rounding errors can make a big difference in your final answer.
• Manage time effectively. On the exam, triangular arbitrage questions can be solved quickly if you know your formula and approach. Getting bogged down in the details often leads to mistakes.
If you’re curious how one might systematically find triangular arbitrage via code, here’s a simple snippet (purely for illustration):
1usd_eur = 1.20 # USD per EUR
2eur_gbp = 1.10 # EUR per GBP
3gbp_usd = 1.85 # USD per GBP
4
5start_usd = 10000
6
7eur_received = start_usd / usd_eur
8
9gbp_received = eur_received / eur_gbp
10
11final_usd = gbp_received * gbp_usd
12
13profit = final_usd - start_usd
14
15print("Final USD:", final_usd)
16print("Profit:", profit)
In a real setting, you’d iterate over many possible currency pairs and check for mispricing in real time, factoring in live spreads and fees.
For the CFA Level II exam, you can expect triangular arbitrage scenarios to test:
• Your speed and accuracy at cross-rate calculations.
• Step-by-step logic to see if the net results exceed the original amount.
• Handling bid–ask spreads correctly.
• Thorough understanding of transaction costs and their impact.
The exam may also present a more complex scenario with interest rates or forward rates. But the fundamental approach remains the same: piece together the relevant quotes carefully and see if you can cycle back to your starting currency (or asset) with a profit.
• Triangular Arbitrage: Strategy exploiting misalignments among three exchange rates to lock in a riskless profit.
• Cross Rate: An exchange rate derived from two other currency pairs.
• Transaction Costs: Fees, bid–offer spreads, or other expenses that reduce (or eliminate) arbitrage opportunity.
• Instantaneous Execution: The assumption that trades happen quickly enough that quotes do not move significantly before the transaction completes.
• McGraw-Hill’s “International Financial Management” for supplementary reading on foreign exchange arithmetic.
• Online trading simulators to explore real-time currency quotes—great for hypothetically testing triangular arbitrage.
• CFA Institute practice problems on cross-rate calculations and currency market concepts in Vol. 2 of the official curriculum.
Important Notice: FinancialAnalystGuide.com provides supplemental CFA study materials, including mock exams, sample exam questions, and other practice resources to aid your exam preparation. These resources are not affiliated with or endorsed by the CFA Institute. CFA® and Chartered Financial Analyst® are registered trademarks owned exclusively by CFA Institute. Our content is independent, and we do not guarantee exam success. CFA Institute does not endorse, promote, or warrant the accuracy or quality of our products.