You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Results running the EA on a chart with nothing else, and without doing anything.
2025.10.26 20:17:00.805 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (5.0 ms)
2025.10.26 20:17:45.061 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (3.3 ms)
2025.10.26 20:18:45.779 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (3.5 ms)
2025.10.26 20:18:54.815 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (2.3 ms)
2025.10.26 20:18:59.684 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (2.1 ms)
2025.10.26 20:19:39.438 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (3.6 ms)
2025.10.26 20:19:59.685 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (3.2 ms)
2025.10.26 20:20:00.700 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (4.1 ms)
2025.10.26 20:20:02.079 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (6.5 ms)
2025.10.26 20:20:16.085 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (2.2 ms)
2025.10.26 20:20:16.243 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (2.7 ms)
2025.10.26 20:20:19.758 498640 (EURCAD,H1) (Bench ChartGetXXX calls) Metrics update > 2 ms: (2.0 ms)
Playing with the chart (zoom in/out, shift, resize, etc...)
With one of my indicator running (which can also use ChartGetXXX functions), without touching anything.
We could argue about the "Max" (up to 48 ms), but on average it's always < 1ms.
And yes, of course, reading some properties takes more time.
Without even touching the chart and after fresh start of MT5:
While not much going on in the system:


You measure the average, which is not helpful. The peaks count, especially when they happen already every second like in my case. Average doesnt help when you have peaks all the time which make the whole thing laggy.
Your sarcasm is not appreciated.
After untrue offenses and personal attack from your side, you should appreciate you did not get an appropriate answer back.
We talk about things proven with source code 5 years ago, and I dare to complain. Wow.
You are unfair as from this old topic, the issue was reproduced AND fixed.
Its not fixed, as you see.
From the point of view of MQ there is no bug, since it works.
We can also call it results from a bad architectural code design, but then MQ coders would feel offended.
The problem comes from this 1990s nonsense, where it was still natural to have functions like GetInteger, GetDouble in a single thread environment for every single value, instead of having one call for the whole data block. Not only cuz the single calls unnecessarily multiply the waste of time, also cuz the chart could have become changed in between while you request the values separately, and then you have to restart the whole thing again and waste another n milliseconds - for nothing. This is bad design, and when it leads to frequent issues in modern times, its a bug.
This architecure affects the whole MQL design. Not one value you request via GetInteger, GetDouble etc. is ever safe/threadsafe - not a single one.
There is no reasonable reason why the values cant be provided within a few nanoseconds, except: It is as it is - we don't wanna change it.
And thats exactly what annoys me: They constantly come with changes in the language which have almost no advantage for 99,9% of the coders, but force everyone to pay attention and make effort, instead of fixing the basics first which would help 100% - no matter if the most of them would see or understand it.