You are correct in your assumptions.
Each instance of MT4 can be connected to one account and have just one "trading context".
You may run different charts in that instance/context each with one EA (and these EAs may or may not be the same of course).
If there is a chance that the EAs will attempt to perform TRADING operations at the same time, therefore contending for the single trading context, then you must decide either to:
- live with trade failures due to "Trade Context Busy" errors
- code your EAs to share the trading context by handling the above errors
- or (as you've pointed out) implement multiple instances of the MT4 platform (all of which may operate on the same account, or on different accounts)
A1: Simply clone the installation MT4 software installation folder multiple times. Each instance can sign on to the same or different broker accounts.
A2:Yes. All instances connected to the same account reflect the same orders in the current order pool. The only wrinkle (due to a poor MT4 client/server architecture decision) is to ensure that you configure the history window in each instance to display the same group of orders in the history pool. If you don't, then EAs operating on the same account could see a different set of orders when performing OrderSelect() on the history pool.
CB
What is the best way to trade multiple pairs?
Ex. I would like to trade like 4 pairs on the same account
When running EA, I face problem like error 146, TradeDispatcher is busy. I believe the cause of this is that MT4 is single threading and EA cannot make more than one trade at a time? Correct me if I am wrong.
I was thinking of solving this problem by running 4 separate MT4 Client terminal, trading the same account.
Q1: How to run different instance of the same MT4 using the same account on the same PC?
If Q1 is possible then
Q2: Will I get the see updates of one another terminals' trades? Ex. I run 4 Terminals (Terminal 1,2,3,4), all running the same account. When Terminal 1 makes a trade, will I see that on Terminal 2,3,4?
Thanks in advance.