Performance Issues with MT5 on New Surface Laptop 7 (ARM) vs. Surface Laptop 4 (x64)

 

Hi,

I recently purchased the new Microsoft Surface Laptop 7 (Copilot + PC) with ARM architecture. My old laptop is a Microsoft Surface Laptop 4 with Intel x64 architecture, which is about 3.5 years old.

In my backtests, my EA on the new Surface Laptop takes 31 seconds, whereas the same EA with identical settings only takes 12 seconds on the old Surface Laptop, making it approximately 61% faster. The results are identical.

It seems that MT5 currently supports only the x64 architecture and not yet the ARM architecture. Does anyone have any ideas on how I can adjust the laptop settings to speed up the backtests? It’s quite disappointing to buy a new device expecting better performance, only to find it significantly slower.

Thank you for your responses and suggestions.

 
It would be better if you specify exact specs for both PCs, especially processors and memory.
 

Good evening Stanislav,

Thank you for your feedback.

Here are the specifications of my two laptops:

  1. The new Microsoft Surface Laptop 7 (Copilot + PC):

    • Processor: Snapdragon® X 12-core X1E80100 @ 3.40 GHz 4.01 GHz
    • Installed RAM: 32.0 GB (31.6 GB usable)
    • System Type: 64-bit operating system, ARM-based processor
    • Edition: Windows 11 Home
    • Version: 24H2
    • OS Build: 26100.1742
    • Experience: Windows Feature Experience Pack 1000.26100.18.0

  2. My old laptop, the Microsoft Surface Laptop 4:

    • Processor: 11th Gen Intel® Core™ i7-1185G7 @ 3.00GHz 3.00 GHz
    • Installed RAM: 16.0 GB (15.8 GB usable)
    • System Type: 64-bit operating system, x64-based processor
    • Edition: Windows 11 Home
    • Version: 23H2
    • OS Build: 22631.4169
    • Experience: Windows Feature Experience Pack 1000.22700.1034.0


In the Strategy Tester, I observe the following:

Image 1: The following image shows my new Microsoft Surface Laptop 7 (Copilot + PC) with the new Snapdragon X 12 processor and 32GB of RAM.

Image 2: The following image shows my old Microsoft Surface Laptop 4 with Intel Core i7 architecture and 16GB of RAM.



It is well known that in a normal MT5 backtest, only one core is used. I am reluctant to set up a local farm with multiple agents due to the effort involved and because my laptops do not run continuously.

Another option would be to use the MQL5 Cloud, but that is subject to fees. Apart from that, I was satisfied with the speed of my old Surface Laptop 4, but the fact that the new one is now significantly slower is annoying and unfortunate.

Any ideas? Thanks a lot for your effort!

 

And now start on both laptops an optimization of the same EA and then show this tabs of both laptops after ~ 10 minutes passed.

You even can show us the log entry of both laptops when the optimization has started.

 

Just FYI, look at this and some other comparative benchmarks:


Snapdragon X1E80100
i7-1185G7
 
1-Core
Avg. Single Core Speed
90.4 Pts
136 Pts
Much faster single-core speed.
+50% 
UserBenchmark: Intel Core i7-1185G7 vs Snapdragon X Elite 80100
UserBenchmark: Intel Core i7-1185G7 vs Snapdragon X Elite 80100
  • cpu.userbenchmark.com
Based on 9,645 user benchmarks for the Intel Core i7-1185G7 and the Snapdragon X Elite 80100, we rank them both on effective speed and value for money against the best 1,463 CPUs.
 

Hi Stanislav,

Thank you very much for this information. I think this explains why the backtest on my new laptop is slower than on the old one. I have been looking into this further and am currently trying to set up the Local Network Farm. If I understand correctly, I can use the additional agents even for a regular backtest to speed it up. However, it’s not working for me. I’m not sure what I did wrong. Below are the screenshots and explanations of how I set everything up:

1) I started the MT5 Agent Manager, and it automatically detected my 12 cores and suggested ports from 2000-2011. I added these, and after some time, the state for all of them was “running.”


2) Next, I started MT5 and went to the “Agents” tab. There, I added the agents by right-clicking and selecting “Add.” I also used the correct IP address of 192.168.178.47. All 12 agents were added, and their status is “ready.”


3) Then, I right-clicked again and selected “Use Local Network Farm” and deactivated “Use Local Agents.”


4) I started the backtest, but it is still as slow as before, and the agents still only show “ready” and are not being used for the backtest.


5) I then enabled the “Use Local Agents” option as well, so both “Local Agents” and “Local Network Farm” are active, but this did not speed up the backtest either. It only shows that Core01 is being used locally, just like in a standard backtest.

Do you have any ideas on what I might have done wrong? Or can the agents from the Local Network Farm only be used for optimization and not for regular backtests?
 
The only purpose of the "Local Farm" function is if you have multiple PCs and you wish to utilize all of them in your testing.  You do not need this function to use all the cores of your CPU.  Each test pass runs serially on one CPU core; if you're optimizing multiple parameters, it will automatically run multiple instances in parallel, loading more cores.
 
Hi, thanks for your feedback. So, if I start the agents on a second computer and then add them to my local computer, will MT5 use the additional cores of the second computer during a normal backtest, or does MT5 always use only one core for a standard normal backtest? This is still not clear to me.
 
eatrader1231231231231233r5235134 #:
Hi, thanks for your feedback. So, if I start the agents on a second computer and then add them to my local computer, will MT5 use the additional cores of the second computer during a normal backtest, or does MT5 always use only one core for a standard normal backtest? This is still not clear to me.

Single backtest always uses single core. It's logical, because it's impossible to run several parts of the given time range in parallel during a test - the parts that chronologically goes past the parts that runs before can't get financial state before the previous parts are finished.

Agents work in parallel only during optimization (when every pass is independent from the others), or if you run single (different) backtests from multiple instances of MT5.

 

Thank you, Stanislav, for the clarification and explanation. Now I understand.

I have another idea: I could rent a VPS from MetaQuotes and run the backtest on it. However, I’m not sure if it is possible at all to run a backtest on MetaQuotes VPS and whether it would actually be faster, given that the CPU specifications of the VPS are not provided and each VPS only has 3 GB of RAM. 

Thank you!

 
eatrader1231231231231233r5235134 #:

I have another idea: I could rent a VPS from MetaQuotes and run the backtest on it. However, I’m not sure if it is possible at all to run a backtest on MetaQuotes VPS and whether it would actually be faster, given that the CPU specifications of the VPS are not provided and each VPS only has 3 GB of RAM. 

VPS from MQ is for online trading, not for backtest or optimization. This VPS runs a special headless version of the terminal.