Triangular Arbitrage Forex: Formula, Example, Bid/Ask Costs, and Risk

Learn triangular arbitrage in forex through three-currency formulas, aligned mid-price and bid/ask examples, inverse quotes, execution costs, and failed-leg risk.
 
Written byHenry Green
Published
Last updated

Key Takeaways

  • Triangular arbitrage compares a directly quoted cross rate with the rate implied by two connected currency pairs and tests closed conversion loops in both directions.
  • The loop formula is final amount = starting amount × three correctly oriented conversion rates; for two-sided quotes, inverse bid = 1/original ask and inverse ask = 1/original bid.
  • A hypothetical mid-price mismatch is not an executable profit: calculate each conversion with the appropriate bid or ask and available size.
  • Spread is already included in an executable bid/ask calculation; separately account for commissions, slippage, latency, and incomplete fills without double-counting.
  • Three sequential orders can leave directional exposure if an intended leg fails, while automated monitoring cannot guarantee fills or a profit.
  • Avoid methods dependent on stale quotes, platform errors, or order handling not supported by the account.
Risk note: Forex trading involves risk of loss. A triangular arbitrage idea can be affected by spread, slippage, latency, stale quotes, rejected orders, partial fills, liquidity changes, platform rules, leverage exposure, margin pressure, swap or rollover if positions remain open, and the risk that one leg fills while another leg does not. Review FXGlory’s risk disclosure before trading with real funds.
Educational note: This page explains triangular arbitrage concepts for education. It is not financial advice, a trading signal, a profit claim, a guarantee of execution, or an instruction to exploit stale quotes, platform errors, delayed prices, or unsupported order workflows.

What Is Triangular Arbitrage In Forex?

Triangular arbitrage in forex is a three-currency calculation that checks whether a quoted cross rate is out of line with the rate implied by two other connected currency pairs. The textbook loop starts with one currency, moves through a second currency, then a third currency, and finally returns to the starting currency.

Three connected currency pairs forming a triangular arbitrage conversion loop between USD, EUR, and GBP.
A three-currency loop showing how traders compare the final converted amount with the original currency amount.

A frictionless theoretical mismatch exists when a consistently oriented three-rate loop would return more than the starting currency. Whether that mismatch is available at executable bid and ask prices is a separate question; actual execution can introduce slippage, latency, incomplete fills, and other costs.

Simple meaning: Start in one currency, convert through two others, and calculate how much of the starting currency the three-rate loop would return. The calculations can reveal a theoretical pricing inconsistency without proving that three actual orders can capture it.

On a retail trading platform, triangular arbitrage should not be assumed to work like physical currency exchange at a bank or interbank desk. The trader must check how pair positions, margin, order handling, execution, and platform rules actually work before treating a three-currency loop as tradeable.

Triangular Arbitrage vs Forex Arbitrage

Forex arbitrage is the broader category. It reviews temporary pricing differences between currencies, pairs, venues, or related instruments. Triangular arbitrage is one specific type of forex arbitrage that focuses on a three-currency loop and compares a quoted cross rate with an implied cross rate.

For the broader category, including cross-broker price gaps, stale-quote caution, incomplete fills, and other arbitrage types, use the full forex arbitrage guide. This page focuses on cross-rate calculation and the execution mechanics specific to a three-currency loop.

The Triangular Arbitrage Formula

The basic loop formula is:

A triangular arbitrage calculation flow showing three exchange rate conversions and the resulting final amount.
The calculation process used to evaluate whether a three-leg currency conversion creates a rate mismatch.
Final amount = Starting amount × Leg 1 rate × Leg 2 rate × Leg 3 rate

Every leg rate must have units of currency received per unit of currency paid, so the units cancel around the loop. A single-price quote used in reverse is inverted:

Reverse single-price rate = 1 ÷ original quoted rate

For consistently oriented quotes, such as B units per A and C units per B, the implied cross rate is:

Implied A/C = Rate A/B × Rate B/C

For example, the mid-price implied EUR/GBP from EUR/USD and GBP/USD is EUR/USD ÷ GBP/USD, because the shared USD units cancel. With two-sided executable quotes, reversing a pair also reverses which side is used:

Inverse bid = 1 ÷ original ask; inverse ask = 1 ÷ original bid

Compare like-for-like rates at the same quote time. A mid-price discrepancy establishes only a theoretical comparison; executable bid/ask paths, available size, and order handling determine whether the calculation could be implemented.

Quoted Cross Rate vs Implied Cross Rate

A quoted cross rate is the rate shown for a currency pair, such as EUR/GBP. An implied cross rate is the rate suggested by two other connected pairs, such as EUR/USD and GBP/USD.

Comparison between a quoted currency cross rate and an implied cross rate calculated from related currency pairs.
A side-by-side view of how traders compare direct market quotes with calculated cross rates to identify differences.

For example, EUR/USD divided by GBP/USD gives an implied EUR/GBP rate when those pair quotations share USD as the quoted currency. A difference between its midpoint and the direct EUR/GBP midpoint is worth investigating, but overlapping executable bid/ask ranges can leave no profitable conversion loop.

TermMeaningWhy it matters
Quoted cross rateThe direct market quote for the cross pair.This is the rate the trader compares against the implied value.
Implied cross rateThe rate calculated from two connected pairs.This gives a synthetic reference constructed from two related pairs.
MismatchThe difference between quoted and implied rates.Compare the correctly oriented executable sides, not just the difference between midpoints.

A Simple Triangular Arbitrage Example

The example below is hypothetical and does not represent live FXGlory prices or a trade recommendation. It uses clean rates first so the calculation is easy to follow.

Step-by-step currency conversion example showing USD, EUR, and GBP movements through a triangular arbitrage cycle.
A practical conversion path illustrating how the starting currency moves through three exchange steps and returns to the original currency.
StepHypothetical rateCalculationResult
Start—Starting balance10,000.00 USD
USD to EUR through EUR/USDEUR/USD = 1.100010,000 ÷ 1.10009,090.91 EUR
EUR to GBP through EUR/GBPEUR/GBP = 0.86009,090.91 × 0.86007,818.18 GBP
GBP to USD through GBP/USDGBP/USD = 1.28007,818.18 × 1.280010,007.27 USD

Using unrounded intermediate amounts, the final balance is approximately 10,007.27 USD: a hypothetical gross difference of 7.27 USD. The next example keeps these same three mid-rates and applies bid/ask spreads so the effect can be compared directly. This simplified loop assumes actual currency conversions; a retail trading account may instead hold margined pair positions.

Bid/Ask Example: Why The Clean Profit Can Disappear

The following hypothetical quotes have the same midpoints as the preceding example (EUR/USD 1.1000, EUR/GBP 0.8600, GBP/USD 1.2800). The intentionally wider GBP/USD bid/ask spread illustrates how costs can erase the clean gain. For the quote mechanics, review bid and ask price in forex.

Comparison of theoretical triangular arbitrage profit using mid prices versus executable results using bid and ask prices.
A comparison showing how spreads and execution prices can remove an apparent arbitrage opportunity.
PairBidAskRelevant action in this loop
EUR/USD1.09981.1002Buy EUR with USD, so use the ask.
EUR/GBP0.85980.8602Sell EUR for GBP, so use the bid.
GBP/USD1.27941.2806Sell GBP for USD, so use the bid.
StepExecutable side usedCalculationResult
Start—Starting balance10,000.00 USD
USD to EUREUR/USD ask 1.100210,000 ÷ 1.10029,089.26 EUR
EUR to GBPEUR/GBP bid 0.859810,000 ÷ 1.1002 × 0.85987,814.94 GBP
GBP to USDGBP/USD bid 1.279410,000 ÷ 1.1002 × 0.8598 × 1.27949,998.44 USD

Retaining full precision between legs, 10,000 USD becomes approximately 9,998.44 USD, a 1.56 USD loss before any separate commissions or slippage. The displayed 9,089.26 EUR and 7,814.94 GBP are rounded for reading; the calculations use unrounded values. Spread is already reflected in the selected ask and bid rates and must not be subtracted a second time.

Quote-side rule: Selecting whichever bid or ask produces the most attractive outcome is a non-executable price selection, not a valid three-leg calculation.

Which Bid Or Ask Price Should You Use?

The quote side depends on what each leg is doing. The trader should map the loop before calculating the result.

ActionQuote side usually usedReason
Buying the base currency of a pairAskThe ask is the price at which the base currency is offered.
Selling the base currency of a pairBidThe bid is the price at which the base currency can usually be sold.
Using a pair in the reverse directionInverse ask becomes bid; inverse bid becomes askUse 1/original ask when obtaining the inverse bid and 1/original bid for the inverse ask.
Comparing mid-prices onlyNot enoughMid-prices can make a non-tradeable gap look attractive.

Check both loop directions. With the bid/ask quotes above, the reverse USD → GBP → EUR → USD path is 10,000 ÷ 1.2806 ÷ 0.8602 × 1.0998 ≈ 9,983.91 USD, before any additional fees or slippage. Both paths use their own executable sides. For general cost information, review spread information.

Why Retail Triangular Arbitrage Is Difficult

A three-currency conversion calculation assumes access to all three exchange steps at the quoted sizes and rates. Retail access may instead involve sequential orders, margined positions and no atomic three-leg execution.

Timeline showing a short-lived arbitrage opportunity affected by delay, costs, and execution speed.
A visual explanation of why retail traders may miss triangular arbitrage opportunities due to timing and trading costs.

Confirm what each platform order actually opens or closes, how margin is calculated, and whether all required instruments and order types are available. Screen prices do not establish guaranteed depth or simultaneous fills.

  • The mismatch may be smaller than the combined spread of the three legs.
  • Quotes can update before the loop is completed.
  • Displayed prices may not represent enough liquidity for the intended size.
  • Sequential orders expose the loop to changing prices between execution steps.
  • Platform or account rules may not support the assumed workflow.
  • A method that depends on stale prices, delayed feeds, or platform errors should be rejected.
Retail reality: Manual capture of small, short-lived three-pair discrepancies is generally difficult; studying the price relationship is still useful.

Automation, EAs, VPS, And Platform Caution

Algorithms can collect synchronized bid/ask quotes, test both loop directions and apply predefined rejection rules more quickly than manual observation. An Expert Advisor can implement monitoring or supported execution workflows, but it does not create an edge by itself.

Check whether the platform supports the required order types, instruments, synchronization and partial-fill handling. Backtested quotes, simulated orders and live multi-leg fills are different evidence; the system must also specify what it does if a step is rejected.

Before reviewing automated execution, check FXGlory trading platforms, trading account conditions, and the exact failed-leg response. A VPS can help with uptime and connection stability for eligible workflows, but it does not guarantee arbitrage profitability or execution.

Costs That Can Remove The Opportunity

In a hypothetical frictionless comparison, a 0.02% gross mismatch would be smaller than combined trading costs of 0.03%. In an executable calculation, the spread cost is already captured by trading at bid and ask; account separately for commissions, modeled slippage and any other costs not yet included.

Cost or riskHow it damages the loopReview before trading
SpreadThe buy/sell price difference affects each conversion.Use the relevant bid/ask side once; do not subtract the spread twice.
SlippageThe fill happens worse than the quote used in the calculation.Stress-test the loop with worse prices.
LatencyThe quote changes before the order reaches the market or platform.Reject setups that require stale quotes to work.
LiquidityThe displayed price may not support the intended size.Review tradable size, not only displayed rate.
Rejected or partial fillsThe loop becomes incomplete and directional.Define the failed-leg rule before entry.
Margin and leverageMultiple legs or failed legs can create account pressure.Check margin and leverage conditions before exposure.
Swap or rolloverCosts may apply if exposure remains open longer than expected.Do not assume the loop will close immediately.

Before any live exposure, review margin through the FXGlory margin calculator and check FXGlory leverage conditions. High leverage can amplify losses if a theoretical loop turns into open market exposure.

One-Leg Fill Risk

Incomplete execution can transform an intended closed conversion loop into unintended currency exposure. The outcome depends on which orders filled, at what sizes and prices, and how outstanding positions are closed or offset. The response must be planned before sending an order.

Triangular arbitrage workflow showing a failed trade leg creating unexpected market exposure.
An execution risk illustration showing how an incomplete conversion cycle can leave a trader with an open position.

Record a response for each operational failure:

  • What happens if the first leg fills but the second quote changes?
  • What happens if the second leg fills with slippage?
  • What happens if the third leg is rejected?
  • What maximum loss or price movement forces an exit?
  • How will the result be recorded after the trade?
Risk point: A partial loop can become a normal forex position with spread, slippage, leverage, and directional market risk.

No-Arbitrage Condition

No arbitrage is a market-pricing condition: under the specified assumptions, there is no available self-financing, riskless trading sequence with a positive payoff and no initial net investment. In a frictionless, simultaneous three-currency conversion, consistently oriented exchange rates around the loop multiply to 1. With executable bid and ask prices, no cost-free profitable cycle exists when neither conversion direction returns more than its starting amount at the relevant size.

Quoted and synthetic mid-rates need not be identical when bid/ask ranges overlap. Trading activity can put pressure on an executable discrepancy, but its magnitude and persistence depend on actual quotes, liquidity and market conditions; there is no fixed speed at which it must disappear. An apparent profitable calculation is not itself a guaranteed arbitrage if the legs cannot be locked in simultaneously.

Triangular Arbitrage vs Carry, Hedging, And Correlation

Triangular arbitrage should not be mixed with other strategy labels.

  • It is not carry trade forex, because the main idea is cross-rate consistency, not interest-rate differential or swap income.
  • It is not forex hedging, because a hedge is designed to reduce or reshape exposure, not complete a three-rate loop.
  • It is not forex correlation strategy, because correlation reviews movement relationships, not a quoted-vs-implied cross-rate mismatch.

Covered interest arbitrage is different again: it compares interest rates with spot and forward exchange rates rather than comparing three spot currency pairs. Use each label for its own pricing relationship instead of assuming a hedged, interest-bearing, or correlated position forms a triangular loop.

Triangular Arbitrage Decision Sequence

Use this sequence to reject weak setups before any live order is considered:

Decision workflow for evaluating a triangular arbitrage opportunity from currency selection to execution check.
A structured sequence showing the checks required before considering a triangular arbitrage trade.
  1. Choose three currencies, list all necessary pairs, and map the forward and reverse loops.
  2. Calculate the implied cross rate from correctly oriented quotes and compare it with the direct quote.
  3. Calculate both complete loops with executable bid/ask sides and unrounded intermediate amounts.
  4. Deduct only additional costs not already embedded in those quotes, such as commissions and modeled slippage; do not subtract spread again.
  5. Check whether executable size, current quote timing and liquidity support every leg.
  6. Confirm platform order behavior, margin requirements and account rules.
  7. Specify what to do if an order partially fills, fails or the price changes during execution.
  8. Reject any outcome that relies on stale prices, unsupported workflows or assumed guaranteed simultaneous fills.

No-Trade Conditions

Skip the idea when any of these conditions appear:

  • Neither executable loop direction produces a positive amount after separately modeled costs.
  • Quotes are out of date or come from unsynchronized feeds.
  • Displayed sizes do not support the required conversions or margin is insufficient.
  • Account terms, order types or platform behavior do not support the planned sequence.
  • There is no predetermined way to control exposure from an unfilled or partially filled leg.
  • The apparent edge relies on a platform error, delayed price or guaranteed-fill assumption.

Testing And Review Before Live Trading

For each test, record synchronized quote timestamps, quote sources, pair orientation, both loop directions, executable bid/ask sides, displayed or available size, expected loop result, any commission and slippage assumptions, actual fill prices, rejected or partial orders, margin effects, and the realized result if live execution occurred. Keep hypothetical and simulated outcomes separate from verified fills, and specify how missing quotes or incomplete loops were handled.

Review whether each attempted loop completed or left directional exposure, and whether execution differed systematically from the quoted calculation. Historical mid-price discrepancies alone are not evidence of a live executable edge.

For broader account-level controls, review forex risk management rules and keep the method inside a written forex trading system rather than relying on a price gap alone.

Frequently Asked Questions

What is triangular arbitrage in forex?

Triangular arbitrage examines three linked currency pairs in a closed conversion loop and compares a quoted cross rate with the implied rate from the other two. A frictionless price inconsistency is a theoretical signal; executable bids, asks and fill conditions must be checked separately.

What is the triangular arbitrage formula?

Final amount = starting amount × leg 1 conversion rate × leg 2 conversion rate × leg 3 conversion rate, with every rate oriented as currency received per currency paid. For example, implied EUR/GBP = EUR/USD ÷ GBP/USD. For two-sided quotes, inverse bid = 1/original ask and inverse ask = 1/original bid.

How do you calculate triangular arbitrage with bid and ask prices?

For a quoted base/quote pair, selling the base uses its bid and buying the base uses its ask. To convert in reverse, use the reciprocal of the applicable executable side. Calculate both directions with unrounded amounts, then subtract only costs not already in the bid/ask rates.

Is triangular arbitrage risk-free?

In a frictionless model with simultaneous enforceable conversions, arbitrage means a riskless profit. Actual retail orders can be delayed, slipped, partially filled, rejected or subject to changing liquidity and margin, so a calculated positive loop is not a guaranteed risk-free trade.

Can triangular arbitrage be done manually?

Manual execution is generally difficult because each of three linked orders may require a fresh quote and time to fill. A calculation can still teach cross-rate consistency, but that does not establish a practical manual trading method.

Can an EA or algorithm do triangular arbitrage?

An EA can monitor synchronized quotes, check both conversion directions, and enforce supported order and failure rules. It cannot guarantee price availability, simultaneous fills, or profitability; platform permissions and actual execution must be verified.

What is failed-leg risk?

Failed-leg risk arises when an intended three-part sequence remains incomplete because an order is rejected, delayed or only partially filled. The trader can then hold unintended currency exposure and needs predefined offsetting or exit procedures.

What is the no-arbitrage condition in forex?

Under stated pricing assumptions, no-arbitrage means there is no available self-financing, riskless positive-payoff opportunity. Frictionless, correctly oriented rates around a closed three-currency loop multiply to one. With bid/ask quotes, neither executable loop direction should generate a profit at the assumed size and costs; different mid-rates alone do not prove arbitrage.

Related Contents

Forex ArbitrageUse this parent guide for the broader arbitrage category, including cross-broker pricing, stale-quote caution, incomplete fills, and execution risk.
Bid And Ask Price In ForexReview why triangular arbitrage calculations must use executable bid and ask sides instead of convenient mid-prices.
SpreadsCheck how spread works as a trading cost before treating a small cross-rate difference as useful.
Trading Account ConditionsReview execution, account, position, platform, and condition details before relying on any multi-leg workflow.
Trading PlatformsReview platform access and automated-trading context without assuming automation guarantees execution.
Risk DisclosureRead the broader risk disclosure before trading leveraged forex products.
Forex Risk Management StrategyUse account-level controls before any setup that could leave open exposure after failed execution.
Forex Trading SystemKeep quote checks, no-trade rules, failed-leg rules, and review steps inside a written trading process.
Currency PairsReview the available currency-pair markets used to understand cross-rate relationships.

Practice Before Trading Live

Use a free demo account to test your strategy, risk rules, and execution process before placing a real-money trade.

Open Your Account