Get a Price Quote For Your Trading Strategy

Please enter a name for this project.

Why Trade copiers have trouble working with oanda mt4 accounts

Trade copier application has become very popular in the last few years, and more account managers use it to manage multiple accounts, all of the trade copiers usually work well on MT4 platform but there are issues regarding pending orders on Oanda accounts.  To deal with these issues you may want to read this article very carefully, it might give you a good idea why if you are on oanda accounts you have a mess with your pending orders.

What’s so special about Oanda MT4?

Oanda is a very good platform for Forex trading, I have two accounts with real money which are handled on Oanda and it is a very fine broker, the difference between that broker and others lies in the way it handles pending orders, whenever there is a pending order made on Oanda it gets a unique ticket number, the trade copier uses this unique number to identify the trade, the problem begins when the pending order gets triggered and transform into a market order, on Oanda the unique number will change and it becomes a problem for the copier to identify the trade correctly and copy it.

This issue does not happen on any other MT4 platform, when a pending order is triggered to become a market order the number which was assigned to the order will usually stay the same that is why Trade copiers on other platforms can handle copying pending order easily and without issues.

Why the trade copier has trouble if the pending number order has changed?

We will start with the simple answer when the number which was assigned to the order change, the trade copier software cannot recognize it anymore and it thinks that the order closed or a new one got opened.

For example, The trade copier Server EA running on Oanda MT4, master account, and a Client EA running on MT4 from another broker, the slave account. A pending order with a number #111 is opened on a master account and it is copied to a slave account. Now each second when copier Expert Advisors check for new trades and synchronize the trade list between MT4 accounts, the software will see that a #111 pending order is present on a master account and will continue to hold the same order on a slave account.

Now what happens when this pending order gets triggered on a master account is that its ticket number gets changed from #111 to some new number assigned by the broker. Actually, the pending order #111 is deleted/canceled and a market order with a new trade ticket is opened instead.

In our example, lets pretend that the number change from #111 to #113. Now here is how this looks on a master account. Pending order #111 got triggered and you can actually see it now in the history trade list if you switch to the “Account History” tab at the bottom of MT4 platform. A new market order #113 was opened at the same price with the same parameters.

The Client EA will see that a master order with number #111 got closed as it does not exist on the open trade list of the master account, and it will actually delete the pending order too. Client EA is designed to follow the master account so its primary job to open and close the trades as master account does. Even if the copy of this pending order was already triggered on a slave account, Client EA will still close it, but in this case, you actually see the impact to your account balance. Each trade you open is opened in a loss, and the size of that loss is equal to or greater than the size of the spread. It is likely that this case will be the same.

Also, Client EA will see that a new market order #113 is opened and immediately will replicate this on a slave account. So, in the end, you will see that a trade copier EA did replicate the trading actions exactly how they appear on a master account, but if during that time a pending order was triggered on a slave account before it was triggered on the master, you may experience financial loss. This is because a triggered pending order on a slave account will be closed and reopened again like I already explained.

So to make this easier to understand, when the pending order is triggered on Oanda MT4,  it is actually deleted and a market order opened immediately.

Entry price can change when pending order becomes a market order

On the MT4 platform from Oanda, such behavior can even result in an entry price being changed. Yes, that is correct. An example would be if say we have a buy stop pending order at 1.2230 with a trade ticket #222. When it gets triggered and become a market order, its entry price may become something like 1.2233 or similar. Also, as explained earlier, a trade ticket number #222 will change to some other number. The entry price will not be changed always, but this does happen quite often. However, you can be sure that the trade number will be changed every time.

Using Oanda MT4 as a master account for trade copier

This is where the trouble begins for a trade copier application if it has to duplicate pending orders. To make the explanation simple let’s analyze this example. We have a buy stop #222 and it is copied as a pending order to a slave account with a trade number #333. All seems fine there. Now when a #222 order is triggered its number change to let’s say #224. So actually order #222 is deleted and #224 market order is opened by the broker immediately. This looks like normal behavior to the user as we see order got triggered.

At this time the Client EA on a slave account will delete order #333 because it’s master order #222 was deleted. Nothing wrong here, EA just doing its job and replicating trading actions. Then, immediately, Client EA will open a market order to have a duplicate for the master order #224.

So basically what Client EA did was correct. We have a pending order deleted and a market order opened on master account and that was exactly what Client EA did too. It just mirrored the same thing.

As a result, you may lose money if your #333 pending order got triggered before it was deleted and replaced with a market order. This is because EA close #333 order which was a market order already and possibly in a loss at least for the size of a spread.

How to avoid trouble when mirroring trades from an Oanda MT4?

A simple solution would be to set the Client EA to ignore pending orders. At this point, EA would only replicate the trades that are market orders on a master account. Pending orders will not even be placed on a slave account.

So in our example when #222 pending order is placed on the master account, the slave account will ignore it. It will simply skip the trade as it is looking only for market orders. Now when a #222 order gets triggered and become market order #224, like in our example above, it will be immediately duplicated on all slave accounts. So, in the end, you will have one market order on slave account instead of two, where the first one was live for a few seconds only until master pending order switch to a new market order.

Using Oanda MT4 as a slave account for trade copier

When you copy market orders from any MT4 account to an Oanda MT4 account, the Client EA will operate with no trouble. Everything is fine here. But if you copy pending orders, the copied order number will be changed when it gets triggered on a slave account. Remember, as I explained before, once a pending order is triggered on Oanda MT4 account, its number will change and possibly the entry price may change too. This makes copier EA lose the track of a triggered trade.

Imagine if a pending order#555 on a master account is copied to a slave account with let’s say order number #777. Once it gets triggered, its order number will become something like #778. Client EA has information that the order #777 is tied to a master order #555. Now when the #777 is gone and a #778 appears, the copier does not recognize it as it is not tied to any master order.

Luckily copier client-side program have control of trade parameters and it will benefit from this. When a pending order is set, Client EA will use stop loss value for identification to kind of connect that slave order to a master order. A simple example would be is that EA will set the stop loss to 0.0001 for the slave pending order #777 and record this to memory. When that pending order gets triggered and its number will change to #778 (or whatever broker assigns) the Client EA will know that a pending order with a stop loss value of 0.0001 was actually a #777 and in the memory it is recorded that its parent (master) order is #555. Now when the order is triggered and we have a connection EA can set original stop loss following master account.


It is possible to use trade copier software on the Metatrader 4 terminal from Oanda, but you should understand the limitations explained in this article and set up your mt4 order copier accordingly.