Triangular Arbitrage 12.0
Metatrader Expert Advisor (MT4/MT5)
A triangular arbitrage strategy exploits inefficiencies between three related currency pairs, placing offsetting transactions which cancel each other for a net profit. A 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 execution times are small.
- Easy to set up and supervise
- The strategy is time-frame independent
- Deals are completely hedged for a zero exposure
- The strategy is neutral to gaps, swings and stop-hunting
- Theoretically, is a zero-risk strategy
- It is NFA/FIFO compliant
It implements a set of unique features:
- You decide which pair set to trade
- Adapts to spread and commissions
- Implements an optional trade-expiration feature
- Customizable price trigger and profit target
- The EA can handle up to 200ms latency
It can trade any of the following pair rings:
- EURUSD, EURGBP and GBPUSD
- EURUSD, EURAUD and AUDUSD
- EURUSD, EURNZD and NZDUSD
- EURCHF, EURUSD and USDCHF
- EURCAD, EURUSD and USDCAD
- Load the EA on the EURUSD chart.
- Backtest in M1 HLOC or Tick Data Mode.
- Trade with a very low spread broker from a good network point.
- For netting accounts, the EA can only trade one pair ring at a time.
- For hedging accounts, the EA can trade many pair rings simultaneously.
- You don't have to worry about the Magic Number, the EA sets it for you.
- Trade at least with 0.50 lots: this allows the EA to hedge deals with a 98% accuracy.
- If you trade with less than 0.50 lots, the amount of trades closed at a loss will increase.
The Metatrader5 (MT5) version is preferable because it executes trades faster and offers multi-currency backtesting.
- The EA evaluates every 200 miliseconds, not every tick.
- The EA only trades when the price discrepancy in the pair ring is above the combined spreads and commissions.
- Therefore, higher spreads lead to less trading frequency and smaller spreads to higher trading frequency.
- If one of the three trades fails to open for any reason, all the other trades are closed to avoid losses.
- Trades are placed without stop-loss and take-profit: all trades are managed as a single one.
Important to know
The price discrepancies that this EA hunts for do not happen very often and the EA can sit idle for days or weeks without trading, please be patient. Also note that there is substantial execution risk in employing a triangular arbitrage strategy for retail traders due to slippage and latency. For example, if the EA is trying to trade a price discrepancy of 6 pips paying 4 pips in spread costs, a combined slippage of just 2 pips among the three pairs will kill the payoff of the trade.
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.
EUR/USD - EUR/GBP * GBP/USD = X;
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...
- We start with 100,000 EUR
- Buy 88.210 GBP @ 0.88210 from 100,000 EUR
- Buy 141.716,42 USD @ 1.60658 from 88.210 GBP
- 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.
- ≡ 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.
- Pair Ring
- Select the pair ring to trade.
- Symbol Name Suffix
- Type the suffix of the symbol names of your broker. For instance, if EURUSD is named EURUSDfx, "fx" is the suffix.
- Symbol Name Prefix
- Type the prefix of the symbol names of your broker. For instance, if EURUSD is named mEURUSD, "m" is the prefix.
- Trade Trigger
- The minimum price discrepancy to trade, in pips.
- Profit Target
- The profit at which the deal is closed. This value must be below the trade trigger.
- Expiration of trades
- Optionally, you can select an expiration in time for the trades. It is effective to cut exposure if slippage has ruined the payoff.
- Enter the lotsize for the first trade. The lots for the other two pairs are auto-calculated.
- Slippage for orders
- Maximum slippage on orders, in points.
- Custom Comment
- Comment for the orders.
- ? 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.