Reduce_risks – expert for MetaTrader 5

  • A+

This is an MQL5 version of the Expert Advisor from the article "How to reduce trader's risks".

The EA works on each tick and can be optimized:

  • Get some data (on indicators and time series) only if a new bar appears

Sample tester runs with the appropriate settings (the terminal was relaunched before each test, the caches were not cleared):

Reduce_risks - expert for MetaTrader 5

1 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.173. Test passed in 0:08:34.093 (including ticks preprocessing 0:00:29.109)
2 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.047. Test passed in 0:08:20.531 (including ticks preprocessing 0:00:28.453)
3 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.031. Test passed in 0:07:56.172 (including ticks preprocessing 0:00:30.969)

Below is the graph before the code optimization:

Reduce_risks - expert for MetaTrader 5

Now, three runs after a small code optimization:

1 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.047. Test passed in 0:06:25.609 (including ticks preprocessing 0:00:30.750)
2 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.047. Test passed in 0:06:20.875 (including ticks preprocessing 0:00:28.743)
3 EURUSD,M1: 90097615 ticks, 1090402 bars generated. Environment synchronized in 0:00:00.043. Test passed in 0:06:15.305 (including ticks preprocessing 0:00:27.475)

As we can see, now that some variables are declared with 'static' type and re-written on a new bar only, we can save 2 minutes.

The attached file of the version 1.013 contains the optimized code.

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: