PZ Triangular Arbitrage EA 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 / GBPUSD
- EURUSD / EURAUD / AUDUSD
- EURUSD / EURNZD / NZDUSD
- EURCHF / EURUSD / USDCHF
- EURCAD / EURUSD / USDCAD
- AUDCAD / AUDUSD / USDCAD
- AUDCHF / AUDUSD / USDCHF
- GBPCAD / GBPUSD / USDCAD
- GBPCHF / GBPUSD / USDCHF
- NZDCAD / NZDUSD / USDCAD
- NZDCHF / NZDUSD / USDCHF
- Backtest in M1 HLOC/Tick Data Mode.
- the chart timeframe is irrelevant.
- 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 purchase includes 99 activations because you might need to test lots of brokers.
- 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
- 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
- Lotsize: Enter the lotsize for the first trade. The lots for the other two pairs are auto-calculated
- Slippage: Maximum slippage on orders, in points
- Custom Comment: Comment for the orders
Important to knowThe 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 a combined 4 pips in spreads, a combined slippage of just 2 pips among the three pairs will kill the payoff of the trade.
Arturo Lopez Perez, private investor and speculator, software engineer and founder of PZ Trading Solutions