Triangular Arbitrage 7.5

Metatrader Expert Advisor (MT4/MT5)

  • Overview

    The Triangular Arbitrage EA exploits market inefficiencies between three related currency pairs, placing offsetting transactions which cancel each other out for a net profit with virtually no risk. On the flip side, it cannot be traded with microlots and trading opportunities do not happen very often.

    • 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
    • Purchase includes the MT5 version

    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.


    Getting started


    Setting up the EA is fairly easy. Follow these steps:

    1. Load the EA into the EURUSD chart
    There is no need to load the EA into different charts. Loading it once in the EURUSD chart -or any other chart- is enough for the EA to collect prices from the three pairs in the pair ring and trade.
    2. Show all instruments in the Market Watch
    Your broker server only sends prices to your metatrader terminal for the symbols you have listed in the market watch. Showing all of them makes sure the EA will be able to read prices from your desired pair ring.
    3. Enter the appropiate prefix and suffix
    If the symbol names of your broker are plain, such as EURUSD, GBPUSD and EURGBP you can skip this step. But if your symbols are named differently, for example fxEURUSDmini, or EURUSDfx, you need to set the proper prefix and suffix in the inputs, so the EA calls symbol names correctly. For example, if your EURUSD symbol is named EURUSDfx, then you should type "fx" as suffix. If your EURUSD symbol is named fEURUSDmini, then you should type "f" as prefix and "mini" as suffix.
    4. Done!
    Everything is properly set up now and you'll see data on the screen.

    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 pairs, 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.

  • Input parameters
    Input parameters

    When loading the indicator or EA 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.
  • ? FAQ
    What lotsize should I start trades with?
    We recommend starting trades with a least 0.50 lots on a microlot broker. This gives the EA enough lotsize granularity to hedge the exposure with only a 2% margin of error. Using a smaller initial lotsize is not recommended, as it defeats the whole purpose of the strategy.
    Can I choose what pairs to trade?
    Yes, the EA has a drop-down menu with pair sets to trade.
    Do I need a VPS?
    Yes, you do. Triangular Arbitrage requires almost perfect execution and very little latency.
    Does the EA trade very often?
    No, it does not. Triangular inefficiencies do not happen very often.
    The EA does not trade in the tester!
    Right, it does not. At the time of writing, Metatrader4 does not support multi-currency systems in the strategy tester. However, Metatrader5 does support it, so, make sure to get the MT5 version demo to test it.
    Is Triangular Arbitrage NFA FIFO compliant?
    Yes, it is!
    What Magic Numbers does the EA use?
    Magic Numbers used are from 76543 to 76550.
    Can I set the stop-loss for each deal?
    This questions does not apply to this strategy because all deals are completely hedged. The total exposure of all deals is zero. The total loss you can incurr in are the spread, swaps and comissions. Nothing else.
  • Comments

    Keep comments tidy and respectful. Avoid spam, offensive remarks, self-promotion and posting personal or payment information. The comment section is for discussion and questions only. Please note that we'll never solicit payments in the comments section.


Triangular Arbitrage EA for Metatrader
Triangular Arbitrage EA for Metatrader
Triangular Arbitrage EA for Metatrader
Triangular Arbitrage EA for Metatrader
Triangular Arbitrage EA for Metatrader