Ошибки, баги, вопросы - страница 1938

 
Aleksey Vyazmikin:

 Опробывал Ваш вариант - в пределах погрешности изменение

Было:
2017.07.21 17:23:20.046 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 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

Стало с Вашим кодом
2017.07.21 17:27:37.393 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 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)

Тут можно попробовать еще убрать объявление массива в функциях, а сделать его глобальным. Т.е. массив arr[ 1 ] сделайте глобальным и уберите строку double arr[ 1 ]; из всех функций.
 
Andrey Khatimlianskii:

Вам уже советовали готовое решение — https://www.mql5.com/ru/code/18305

Судя по вашим требованиям:

, оно вам подойдет.

 

Опробовал - вот результат:

2017.07.21 18:15:16.395 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 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 1 540 Mb memory used including 32 Mb of history data, 64 Mb of tick data

Особого толка нет, и по не ясным причинам отличается фин. результат :(

 
Alexey Kozitsyn:
Тут можно попробовать еще убрать объявление массива в функциях, а сделать его глобальным. Т.е. массив arr[ 1 ] сделайте глобальным и уберите строку double arr[ 1 ]; из всех функций.

 

Вот результат

2017.07.21 18:28:58.653 Core 1 Si-9.17,M1: 107509 ticks, 35385 bars generated. Environment synchronized in 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

Да, чуть быстрей, чем было, но с MQL4 не сравнить...

 
А если предположить, что дело не в коде? Сейчас у меня советник вообще жутко тормозит и уже минут 10 не может завершить работу - изменений особо не вносилось....
 
Aleksey Vyazmikin:
А если предположить, что дело не в коде? Сейчас у меня советник вообще жутко тормозит и уже минут 10 не может завершить работу - изменений особо не вносилось....

 

Оказалось, что поменялся режим можелирования тиков... мистика.
 

Итак, господа, теперь я в серьезном замешательстве - вырезал весь void OnTick(), и получил потрясающий результат

2017.07.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

И тут возникает идея, а может тормозят внешние индикаторы, хендаль которых объявлен и получен, если даже запроса к ним не происходит, если это так, то почему ж профилирование об этом умолчало и отняло у меня день жизни...

 
Aleksey Vyazmikin:

...если это так, то почему ж профилирование об этом умолчало и отняло у меня день жизни...

Потому что вы не выкладываете свой код, и отнимаете по дню жизни у каждого из присутствующих. Обратка от мироздания )

 
Andrey Khatimlianskii:

Потому что вы не выкладываете свой код, и отнимаете по дню жизни у каждого из присутствующих. Обратка от мироздания )

Это то, о чём вы говорите?

 
Vitaly Muzichenko:

Это то, о чём вы говорите?

Похоже

 
Vitaly Muzichenko:

Это то, о чём вы говорите?


Не-не я выложил результаты профилирования!

Причина обращения: