Using "standard" MetaQuotes MT5 for all accounts, instead of broker-specific installers

Dmitri Diall  

Hi folks, quick question as I'm rebuilding my development workstation... What are the advantages and disadvantages of installing only one terminal for MT5 and another for MT4, i.e. official versions downloaded from MetaQuotes website, to access all my demo accounts from different brokers as opposed to installing a separate, custom terminal downloaded from each broker? I had accumulated over a dozen terminals over the last couple of years testing trading data & conditions between different brokers but have now come to a shortlist to work with for the foreseeable future. 

The question is more pertinent for my development & testing environment, however I'd be keen to know what is the impact for using the same approach to run production on live accounts? Are there any benefits to using the broker-provided packages beyond the immediately visible cosmetic/branding differences?

Thank you very much in advance!

Fernando Carreiro  
Dima Diall: Hi folks, quick question as I'm rebuilding my development workstation... What are the advantages and disadvantages of installing only one terminal for MT5 and another for MT4, i.e. official versions downloaded from MetaQuotes website, to access all my demo accounts from different brokers as opposed to installing a separate, custom terminal downloaded from each broker? I had accumulated over a dozen terminals over the last couple of years testing trading data & conditions between different brokers but have now come to a shortlist to work with for the foreseeable future. The question is more pertinent for my development & testing environment, however I'd be keen to know what is the impact for using the same approach to run production on live accounts? Are there any benefits to using the broker-provided packages beyond the immediately visible cosmetic/branding differences?

Yes, that is what I do and what I recommend. On my main workstation, I only have one MT4 and one MT5 installation each, in portable mode and only with official builds, and from there I access all my different brokers and accounts. From there, I do my development work and connect to customer accounts too when needed.

On my 3rd party VPS setups, where I run my EAs for trading I sometimes have more than one setup, also in portable mode, but only when the need for that arises, but they are always official builds with the updating blocked. I don't want my trading environment to suffer from MetaQuotes updates. Updates are done manually once I have checked that it will not cause any issues.

I use unbranded versions for all of these, including MT4. I never do clean installations from Installation executables. I always copy the files and use portable mode.

Dmitri Diall  

Fantastic stuff Fernando, the portable mode is just what I needed and didn't know I was looking for it! In fairness, I remember coming across it before but didn't try at time... I regret it now :-)

Question for you -- what's your approach to source code version control, is it for per project (yours or client's) or for the whole of MQL4/MQL5 directory? Also, how do you manage code in your repositories to avoid getting a lot of "historical" clutter from experimental hacks/tests, or trying out 3rd party code (libraries, scripts, indicators, experts); are there precautions you take around that, or it's not something that bothers you?

Fernando Carreiro  
Dima Diall #: Fantastic stuff Fernando, the portable mode is just what I needed and didn't know I was looking for it! In fairness, I remember coming across it before but didn't try at time... I regret it now :-) Question for you -- what's your approach to source code version control, is it for per project (yours or client's) or for the whole of MQL4/MQL5 directory? Also, how do you manage code in your repositories to avoid getting a lot of "historical" clutter from experimental hacks/tests, or trying out 3rd party code (libraries, scripts, indicators, experts); are there precautions you take around that, or it's not something that bothers you?

I keep my projects small and use OOP sparingly. I don’t use libraries at all, nor do I ever use other people’s code. I only trust my code.

Each EA is independent and I single file if possible, two if I want to make use of an indicator (specificity coded and tailored for efficient EA usage). I don’t want to worry about keeping multiple files for each EA and I want the code to be small and efficient with no bloat. When coding for a customer, the same applies. I don’t want them having to worry about multiple files and where to place them. One EA, one file that compiles for both MQL4 and MQL5.

For customers, I use MQL5 Storage, with a Shared Project folder for each customer, with sub-folders for projects if I do multiple jobs for them. I do this mostly for the “sharing” and not for the version control.

The whole of my MQL5 and MQL4 folders are actually junction points to OneDrive folders that are replicated to cloud storage, which also keeps track of file changes should I wish to go back, but a rarely do.

Mostly, I don’t use version control software, except for the customer files. For my own projects, I simply keep multiple file versions if I require it, which is seldom the case. I simply apply discipline when coding and have little use for version control. As stated, I keep my projects small.

For trading, I don’t believe in large projects. It goes against the spirit of trading, which is to make money, not to make fancy and elaborate “software”. The simpler the strategy and code is, the easier to maintain. The more efficient it is, the less resources are required and the more EAs I can run at the same time on my VPS with the smallest of footprint and cost. I consider the VPS also a cost of trading, and I minimise that in the same way as I would minimise other costs such as spreads, commission, swaps, etc.

Please note that this is the way I work for trading, but not for software development of other kinds. For other types of software development, such as Windows applications or web development, then obviously I use libraries and version control based on git with GitHub and SourceTree (Atlassian).

Reason: