32/64 bit Expert compatibility...

 

Hi,

Does anyone have any technical details with regards to running an Expert compiled on a 32 bit version of MetaTrader, on a 64 bit MetaTrader platform? What about the other way around (i.e. 64 bit Expert on a 32 bit version of MetaTrader). Is either of these setups guaranteed to work? Or are you supposed to compile the sources on every platform that you intend to run the Expert on?

Also, if MetaTrader is installed on Windows Server 2008 (32 bit), do Experts have to be installed in the \Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\MQL5\Experts\Advisors directory or can they still be placed in the standard Experts directory (i.e. \Program Files\MetaTrader\MQL5\Experts\Advisors) directory? If an Expert can be placed in both directories, which directory is scanned first if the same Expert (different versions) are placed in each directory? I'm assuming that the Expert in the ..\appdata\roaming... directory takes precedence over the one in the standard directory but it would be great to have this confirmed by MetaQuotes.

 

Thanks in advance for your help with this.

 

  

 
cowil:

Hi,

Does anyone have any technical details with regards to running an Expert compiled on a 32 bit version of MetaTrader, on a 64 bit MetaTrader platform? What about the other way around (i.e. 64 bit Expert on a 32 bit version of MetaTrader). Is either of these setups guaranteed to work? Or are you supposed to compile the sources on every platform that you intend to run the Expert on?

Also, if MetaTrader is installed on Windows Server 2008 (32 bit), do Experts have to be installed in the \Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\MQL5\Experts\Advisors directory or can they still be placed in the standard Experts directory (i.e. \Program Files\MetaTrader\MQL5\Experts\Advisors) directory? If an Expert can be placed in both directories, which directory is scanned first if the same Expert (different versions) are placed in each directory? I'm assuming that the Expert in the ..\appdata\roaming... directory takes precedence over the one in the standard directory but it would be great to have this confirmed by MetaQuotes.

 

Thanks in advance for your help with this.

1. It does not matter whether you compile using MT5 32 or 64 bit and running it for the opposite bit version. EA, CI and Script does NOT depend on bit version of Windows.

2. For Windows Server 2008, put the EA in\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\MQL5\Experts\... .

For every version of Windows : on normal launch, MT5 will only use data located in user directory, if launched with /portable command, MT5 will only use data located in where MT5 was installed.

 
phi.nuts:

1. It does not matter whether you compile using MT5 32 or 64 bit and running it for the opposite bit version. EA, CI and Script does NOT depend on bit version of Windows.

2. For Windows Server 2008, put the EA in\Users\Administrator\AppData\Roaming\MetaQuotes\Terminal\MQL5\Experts\... .

For every version of Windows : on normal launch, MT5 will only use data located in user directory, if launched with /portable command, MT5 will only use data located in where MT5 was installed.

That's great - thanks very much for your prompt reply!

One other thing I've been meaning to ask about re: MT5 was memory usage.  MT5 seems to use a LOT more memory than MT4. I realise that MT5 is a completely different piece of software so comparing memory usage of MT4 vs. MT5 is probably a bit of a waste of time but my MT5 seems to require approx 1.2GB or memory (4 charts running with 4 Experts), versus MT4 (10 charts, 10 Experts) which uses about 55 MB (see attached graphic). Does this sound about right? My Experts do a bit of Timeseries access (only over the first 100 bars or so of a Timeseries) so perhaps MT5 continues to hold all of  a currency pair's data if Timeseries access is used? I can't think of any other reason that so much memory is required....?

Files:
processes.jpg  162 kb
 
Oh, and I forgot to mention that I'm running build 742 of MT5.
 
cowil:
Oh, and I forgot to mention that I'm running build 742 of MT5.
Ah, I think I've just answered my own question. I've just discovered that the "Options->Charts->Max Bars in chart" was set to "Unlimited". I set this to 5000, restarted and now have a memory footprint of around 175 MB. I presume 175MB is around the "normal" memory requirement for MetaTrader 5?
Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Client Terminal Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Client Terminal Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Client Terminal Properties - Documentation on MQL5
 

Well, compared with lightweight MT4, MT5 is indeed a RAM killer !!! :(.

175MB is hardly a normal usage. If we scroll down the chart to historical data, the RAM may also get killed again :(.

 

 
phi.nuts:

Well, compared with lightweight MT4, MT5 is indeed a RAM killer !!! :(.

175MB is hardly a normal usage. If we scroll down the chart to historical data, the RAM may also get killed again :(.

 

Right - better keep that in mind when upgrading my VPS to MT5. Thanks again for your help!
Reason: