Errors, bugs, questions - page 1938

 
Aleksey Vyazmikin:

Tried your option - within the margin of error change

It was:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized at 0:00:00.032. Test passed in 0:02:52.037 (including ticks preprocessing 0:00:00.031).
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:52.069 (including 0:00:00.032 for history data synchronization)
2017.07.21 17:23:20.046 Core 1 351 Mb memory used including 32 Mb of history data, 64 Mb of tick data

Became with your code
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized at 0:00:00.031. Test passed in 0:02:58.013 (including ticks preprocessing 0:00:00.031).
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:58.044 (including 0:00:00.031 for history data synchronization)
2017.07.21 17:27:37.393 Core 1 352 Mb memory used including 32 Mb of history data, 64 Mb of tick data

MT4
2017.07.21 17:27:57.070 RUBRUR,M1: 225314 tick events (35701 bars, 231783 bar states) processed in 0:00:04.306 (total time 0:00:11.357)

Here you can also try to remove the array declaration in functions and make it global. That is, make array arr[ 1 ] global and remove string double arr[ 1 ]; from all functions.
 
Andrey Khatimlianskii:

You have already been advised on a ready-made solution -https://www.mql5.com/ru/code/18305

Judging by your requirements:

It's the right one for you.

I tried it out and this is the result:

2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized at 0:00:00.047. Test passed in 0:02:37.748 (including ticks preprocessing 0:00:00.031).
2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:37.795 (including 0:00:00.047 for history data synchronization)
2017.07.21 18:15:16.395 Core 1540 Mb memory used including 32 Mb of history data, 64 Mb of tick data

Not much use, and for unclear reasons the financial result is different :(

 
Alexey Kozitsyn:
You can also try to remove array declaration in functions and make it global. I.e. make array arr[ 1 ] global and remove string double arr[ 1 ]; from all functions.

Here is the result

2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized at 0:00:00.078. Test passed in 0:02:51.477 (including ticks preprocessing 0:00:00.031).
2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: total time from login to stop testing 0:02:51.555 (including 0:00:00.078 for history data synchronization)
2017.07.21 18:28:58.653 Core 1 359 Mb memory used including 32 Mb of history data, 64 Mb of tick data

Yes, it's a bit faster than before, but it doesn't compare to MQL4...

 
What if I assume it's not the code? Right now, my EA has been slowing down terribly and hasn't been able to terminate for about 10 minutes - I haven't made any changes to it at all....
 
Aleksey Vyazmikin:
What if I assume it's not the code? At the moment, my Expert Advisor has been slowing down and it hasn't been able to finish its work for about 10 minutes - I haven't made any changes to it....

It turns out that the mode of ticking has changed... mystical.
 

So, gentlemen, now I'm seriously confused - cut out the whole void OnTick(), and got a stunning result

2017.07.21 21 21:22:08.048 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Test passed in 0:02:32.928 (including ticks preprocessing 0:00:00.031).
2017.07.21 21:22:08.048 Core 1 346 Mb memory used including 32 Mb of history data, 64 Mb of tick data

And then an idea arises, maybe the external indicators whose handal is declared and received are slowing down, if they are not even queried, if so, then why did profiling remain silent about it and took me a day of my life...

 
Aleksey Vyazmikin:

...if that's the case, then why did profiling remain silent about it and take a day off my life...

Because you're not posting your code, and you're taking a day of life from everyone here. Reverse from the universe )

 
Andrey Khatimlianskii:

Because you're not putting out your code, and taking a day's worth of life from everyone here. Reverse from the universe )

Is that what you're talking about?

 
Vitaly Muzichenko:

Is this what you're talking about?

Looks like

 
Vitaly Muzichenko:

Is this what you're talking about?


No, no, I posted the results of the profiling!

Reason: