MetaTrader 4 Strategy Tester - Getting the Best Speed and Performance

 

Hello All,

I have a few questions about getting the best performance from strategy tester, and making the best use of my computers CPU's. I know this has been discussed many times on here as I have been reading discussions from as far back as 2009/2010. But We are 5-6 years on from there now and many MT4 builds ahead.

I have an Intel Core i7 processor, multi-core. I have read that the multiple cores won't actually speed things up as MT4 can only use a single core anyway. Can anyone confirm if this is still the case?

1) Single terminal backtests. Is there anything specific I can do with my computer CPU settings to speed up my backtests? Would things like increasing priority in task manager, pegging process to specific core etc actually make any difference? Or does windows just work out the best way to run things itself?

2) Running multiple backtests. What happens when I have two terminals running. If I have one terminal running a backtest, it will run at a certain speed and CPU usage. If I have two terminals running separate backtests does this cut the speed and CPU use on each by half? so both will take longer. Or will they both each run at the same speed as a single terminal? Will each terminal use a separate core automatically?

I'm not very technical when it comes to computer hardware, please excuse if I have misunderstood anything I have read. I've just been reading up on how to speed up my backtests and make them more efficient. I'm hoping there's something specific I can do to get more out of my CPU because at the moment my newer faster i7 doesn't seem to do it much quicker than my old computer!

Thanks in advance for any advice.

 

EDIT: I should add that it is actually optimisations that I am trying to speed up, rather than standard backtests. 

 
James Parker:

Hello All,

I have a few questions about getting the best performance from strategy tester, and making the best use of my computers CPU's. I know this has been discussed many times on here as I have been reading discussions from as far back as 2009/2010. But We are 5-6 years on from there now and many MT4 builds ahead.

I have an Intel Core i7 processor, multi-core. I have read that the multiple cores won't actually speed things up as MT4 can only use a single core anyway. Can anyone confirm if this is still the case?

Yes.

1) Single terminal backtests. Is there anything specific I can do with my computer CPU settings to speed up my backtests? Would things like increasing priority in task manager, pegging process to specific core etc actually make any difference? Or does windows just work out the best way to run things itself?

I don't think so.

2) Running multiple backtests. What happens when I have two terminals running. If I have one terminal running a backtest, it will run at a certain speed and CPU usage. If I have two terminals running separate backtests does this cut the speed and CPU use on each by half? so both will take longer. Or will they both each run at the same speed as a single terminal? Will each terminal use a separate core automatically?

It depends if they will be executed by the same CPU core or not. It's managed by the operating system.

I'm not very technical when it comes to computer hardware, please excuse if I have misunderstood anything I have read. I've just been reading up on how to speed up my backtests and make them more efficient. I'm hoping there's something specific I can do to get more out of my CPU because at the moment my newer faster i7 doesn't seem to do it much quicker than my old computer!

Thanks in advance for any advice.

 

EDIT: I should add that it is actually optimisations that I am trying to speed up, rather than standard backtests. 

If you want to increase optimization speed, you will have to use MT5 and the Cloud.
 
Algorithm of strategy is root cause.
  1. Optimize algorithm of trade strategy (or indicator)
  2. Higher period (time frame) get better performance
  3. Use "Open Price Only"
  4. Reduce file I/O during backtest
  5. Disable OnTimer() event process
 

Thank you for the responses.

If you want to increase optimization speed, you will have to use MT5 and the Cloud.

And I shall have a read through the content here. This is a great resource, seems I may have to consider moving to MQL5!

Reason: