Triangular Arbitrage 3.0

Metatrader (MT4/MT5) Expert Advisor

"Every systemic market injustice arose from some loophole in a regulation created to correct some prior injustice."
- Michael Lewis
The Triangular Arbitrage EA exploits market inefficiencies between three related currency pairs, placing offsetting transactions which cancel each other for a net profit.
  • Easy to set up and supervise
  • No indicators or hard analysis needed
  • The strategy is time-frame independent
  • The strategy is neutral to news, gaps or price spikes
  • Deals are completely hedged: all you can lose is the spread
  • Under ideal trading conditions, triangular arbitrage is a zero-risk strategy
  • Arbitrage is a high-volume strategy and generates a lot of rebates
  • The strategy is NFA/FIFO Compliant
It implements a set of unique features:
  • You decide which pair set to trade
  • Adapts to spread, commissions and swaps
  • Implements an optional trade-expiration feature
  • Customizable price trigger and profit target
It can trade any of the following pair sets:
Boost your trading activity with the easiest and most complete Triangular Arbitrage EA available, just like our customers have already done.


What is Triangular Arbitrage?

Triangular arbitrage (also referred to as cross currency arbitrage or three-point arbitrage) is the act of exploiting an arbitrage opportunity resulting from a pricing discrepancy among three different forex pairs in the foreign exchange market.

A triangular arbitrage deal involves three trades, exchanging the initial currency for a second, the second currency for a third, and the third currency for the initial. During the second trade, the arbitrageur locks in a zero-risk profit from the discrepancy that exists when the market cross exchange rate is not aligned with the implicit cross exchange rate.

A profitable deal is only possible when a market inneficiency arises and if execution times are small. In practice, there is substantial execution risk in employing a triangular arbitrage strategy for retail traders, as execution times are never perfect on the server-side.

A Triangular Arbitrage example

An example of a triangular arbitrage ring is U.S. dollar (USD), British pound (GBP), and Euro (EUR). The forex pairs involved in such an arbitrage opportunity are EUR/USD, GBP/USD and EUR/GBP.

These pairs can be thought of as an algebraic formula with a numerator and a denominator, making up the following expression to find ineffiencies.


If the result of the above equation is not zero, we know that these forex pairs are not balanced and the market is presenting an inefficiency which we might might be able to profit from.

Given the following prices, for instance, we find that the pairs are unbalanced...

EURUSD = 1.4169
GBPUSD = 1.60655
EURGBP = 0.8821
1.4169 - 0.8821 * 1.60655 = 0,00023

...but the inefficiency is only 2,3 pips, which does not allow us to trade and make a profit after paying the spread of the three forex pairs involved. In order to make a triangular arbitrage trade, the ineffiency that triggers the trade must always be above the combined cost of spread and commissions for the currency pairs involved.

In order to trade, we would need a deeper ineffiency, like the following:

Ask EURUSD = 1.4164
Bid GBPUSD = 1.60658
Bid EURGBP = 0.88210
1.4164 - 0.88210 * 1.60658 = -0,00053

In the above example, we can do the following process...

  1. We start with 100,000 EUR
  2. Buy 88.210 GBP @ 0.88210 from 100,000 EUR
  3. Buy 141.716,42 USD @ 1.60658 from 88.210 GBP
  4. Buy 100.053,95 EUR @ 1.4164 from 141.716 USD

Making a total gain of 53 EUR after paying transaction costs, which are already computed into the formula above. Please note that for Triangular Arbitrage to be effective, both Bid and Ask prices must be taken into account, depending on the direction at which the deal is going to be processed.

Necessary actions during trading

It is important to constantly monitor the slippage incurred by the EA when executing trades. Since the EA trades combined inefficiencies from 3 pips, any combined slippage of 3 pips also invalidates the deal and forbids the EA from making profits. The expert tab of the terminal displays the slippage incurred by each trade executed. Pay close attention to it. If the combined slippage for the trades goes above 1.5 pips, it might be a good idea to switch to other broker or find a better network trading location.

Settings and Input Parameters

When loading the expert to any chart, you will be presented with a set of options as input parameters. Don't despair if you think they are too many, because parameters are grouped into self-explanatory blocks.

In this settings block you can choose which pair set to trade. You'll also need to type the suffix and prefix of the symbol names in your Metatrader platform. For example, if your broker offers the EURUSD symbol named as mEURUSDfx, you must type m as prefix and fx as suffix.
Trading Settings
This block controls the behavior of the trading activity.

-Trade Trigger - This parameter controls how deep the inefficiency must be for the EA to trade. A higher value means deeper inefficiencies are needed to trade, but it also means trading will happen less often.

- Profit Target - Amount of pips in profit needed to close the deal. A higher values means deals will be opened for longer. Make sure this parameter is never above the combined spread of the symbols traded.

- Expiration of trades - Optionally, you can select an expiration in time for the trades. This is very effective to cut exposure in situations at which slippage as ruined the trading opportunity.
Money Manangement
The starting lotsize is entered into the Lotsize parameter.
EA Settings
If you know what you are doing, you can change the Magic Number of the EA and the comment for the placed trades.
Frequently Asked Questions
Can I choose what pairs to trade?
Do I need a VPS?
Does the EA trade very often?
The EA does not trade in the tester!
Is Triangular Arbitrage NFA FIFO compliant?
Can I set the stop-loss for each deal?