Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 111

 
fxsaber:

Этот код не совсем тот - не дождаться конца выполнения. Попытка снятия скрипта приводит к длительному зависанию Терминала.

А если все свойства символа корректно задать и тики нормальные сделать - то это воспроизводит этот скрипт.

Нашли проблему, пофиксим.
 
Aleksei Stepanenko:

Немного поспешил радоваться :)

Функция ObjectFind теперь работает быстрее, но всё равно значительно медленнее, чем до 1968

Сейчас в четвёрке время выполнения 0.

и функции ObjectGetInteger и ObjectGetString стали "поджирать" время

Пофиксили в 1972:

test (EURUSD,H1)        Время выполнения: 593
 
Renat Fatkhullin:
Нашли проблему, пофиксим.

Отлично. А это воспроизвели? Отладку делать не получается.

 
fxsaber:

Советник (только выставляет в OnInit заданное (Amount) количество позиций)


Amount = 0

2019.01.15 23:34:23.184 Core 1  pass 0 returned result 10764.00 in 0:00:10.951
2019.01.15 23:34:23.184 Core 1  pass 1 started
2019.01.15 23:34:27.696 Core 1  pass 1 returned result 4462.00 in 0:00:04.509
2019.01.15 23:34:27.696 Core 1  pass 2 started
2019.01.15 23:34:31.823 Core 1  pass 2 returned result 4088.00 in 0:00:04.119
2019.01.15 23:34:31.823 Core 1  pass 3 started
2019.01.15 23:34:37.633 Core 1  pass 3 returned result 5725.00 in 0:00:05.803
2019.01.15 23:34:37.633 Core 1  pass 4 started
2019.01.15 23:34:41.550 Core 1  pass 4 returned result 3868.00 in 0:00:03.916
2019.01.15 23:34:41.550 Tester  optimization finished, total passes 5
2019.01.15 23:34:41.560 Statistics      optimization done in 0 minutes 30 seconds
2019.01.15 23:34:41.560 Statistics      shortest pass 0:00:03.916, longest pass 0:00:10.951, average pass 0:00:05.859
2019.01.15 23:34:41.560 Statistics      local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Amount = 1

2019.01.15 23:20:59.851 Core 1  pass 0 returned result 15959.00 in 0:00:16.068
2019.01.15 23:20:59.851 Core 1  pass 1 started
2019.01.15 23:21:11.453 Core 1  pass 1 returned result 11559.00 in 0:00:11.606
2019.01.15 23:21:11.453 Core 1  pass 2 started
2019.01.15 23:21:22.423 Core 1  pass 2 returned result 10935.00 in 0:00:10.967
2019.01.15 23:21:22.423 Core 1  pass 3 started
2019.01.15 23:21:33.993 Core 1  pass 3 returned result 11513.00 in 0:00:11.560
2019.01.15 23:21:33.993 Core 1  pass 4 started
2019.01.15 23:21:45.126 Core 1  pass 4 returned result 11091.00 in 0:00:11.122
2019.01.15 23:21:45.127 Tester  optimization finished, total passes 5
2019.01.15 23:21:45.137 Statistics      optimization done in 1 minutes 02 seconds
2019.01.15 23:21:45.137 Statistics      shortest pass 0:00:10.967, longest pass 0:00:16.068, average pass 0:00:12.264
2019.01.15 23:21:45.137 Statistics      local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Amount = 5

2019.01.15 23:22:52.868 Core 1  pass 0 returned result 38595.00 in 0:00:38.766
2019.01.15 23:22:52.868 Core 1  pass 1 started
2019.01.15 23:23:34.517 Core 1  pass 1 returned result 41574.00 in 0:00:41.636
2019.01.15 23:23:34.517 Core 1  pass 2 started
2019.01.15 23:24:05.763 Core 1  pass 2 returned result 31153.00 in 0:00:31.231
2019.01.15 23:24:05.763 Core 1  pass 3 started
2019.01.15 23:24:34.933 Core 1  pass 3 returned result 29126.00 in 0:00:29.173
2019.01.15 23:24:34.933 Core 1  pass 4 started
2019.01.15 23:25:03.608 Core 1  pass 4 returned result 28627.00 in 0:00:28.673
2019.01.15 23:25:03.609 Tester  optimization finished, total passes 5
2019.01.15 23:25:03.619 Statistics      optimization done in 2 minutes 50 seconds
2019.01.15 23:25:03.619 Statistics      shortest pass 0:00:28.673, longest pass 0:00:41.636, average pass 0:00:33.895
2019.01.15 23:25:03.619 Statistics      local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Только один локальный Агент для замера использовался. Папка tester на виртуальном диске в ОЗУ. Режим по реальным тикам (Hedge), кастомный символ (чтобы кроссов избежать). Количество тиков


По логам видно, что 26.5 млн тиков "пустышка" проходит почти за 4 секунды. Быстро это или нет?


11 секунд для Amount = 1. И 28 секунд для Amount = 5. Такое замедление - нормально?


Дело в том, что сравнивал с другим "Тестером" и там такого сильного замедления не происходит. Подробности здесь.


ЗЫ Не могу понять, почему в Тестере такой сильный разброс по времени выполнения проходов. Почти в 1.5 раза.

Вот результаты на 1972 в режиме оптимизации со следующими настройками: начало темы тут


EURUSD,H1: 15 515 304 ticks, 4 663 bars generated

Windows 10 (build 17763) x64, IE 11, UAC, Intel Xeon  E5-2690 v3 @ 2.60GHz, Memory: 66635 / 98215 Mb


Amount 0

2019.01.16 22:08:25.667 Core 01 pass 0 returned result 1719.00 in 0:00:01.750
2019.01.16 22:08:25.668 Core 01 pass 1 returned result 1703.00 in 0:00:01.703
2019.01.16 22:08:25.668 Core 01 pass 2 returned result 1875.00 in 0:00:01.891
2019.01.16 22:08:25.668 Core 01 pass 3 returned result 1734.00 in 0:00:01.734
2019.01.16 22:08:25.668 Core 01 pass 4 returned result 1844.00 in 0:00:01.844
2019.01.16 22:08:25.668 Tester  optimization finished, total passes 5
2019.01.16 22:08:25.679 Statistics      optimization done in 0 minutes 09 seconds
2019.01.16 22:08:25.679 Statistics      shortest pass 0:00:01.703, longest pass 0:00:01.891, average pass 0:00:01.784

Amount 1

2019.01.16 22:11:40.131 Core 01 pass 0 returned result 2828.00 in 0:00:02.860
2019.01.16 22:11:40.131 Core 01 pass 1 returned result 2797.00 in 0:00:02.812
2019.01.16 22:11:40.131 Core 01 pass 2 returned result 2813.00 in 0:00:02.828
2019.01.16 22:11:40.131 Core 01 pass 3 returned result 2797.00 in 0:00:02.797
2019.01.16 22:11:42.962 Core 01 pass 4 returned result 2812.00 in 0:00:02.812
2019.01.16 22:11:42.962 Tester  optimization finished, total passes 5
2019.01.16 22:11:42.972 Statistics      optimization done in 0 minutes 14 seconds
2019.01.16 22:11:42.972 Statistics      shortest pass 0:00:02.797, longest pass 0:00:02.860, average pass 0:00:02.821

Amount 5

2019.01.16 22:12:47.545 Core 01 pass 0 returned result 5453.00 in 0:00:05.469
2019.01.16 22:12:47.545 Core 01 pass 1 returned result 5469.00 in 0:00:05.469
2019.01.16 22:12:58.470 Core 01 pass 2 returned result 5469.00 in 0:00:05.469
2019.01.16 22:12:58.470 Core 01 pass 3 returned result 5453.00 in 0:00:05.453
2019.01.16 22:13:03.929 Core 01 pass 4 returned result 5453.00 in 0:00:05.453
2019.01.16 22:13:03.929 Tester  optimization finished, total passes 5
2019.01.16 22:13:03.939 Statistics      optimization done in 0 minutes 27 seconds
2019.01.16 22:13:03.939 Statistics      shortest pass 0:00:05.453, longest pass 0:00:05.469, average pass 0:00:05.462

Выводы:

  1. время в проходах оптимизации стабильное, разброса нет
  2. увеличение затрат времени на фоновой просчет 0, 1, 5 открытых позиций разумное
 
fxsaber:

Отлично. А это воспроизвели? Отладку делать не получается.

Разберемся обязательно.
 
Renat Fatkhullin:

Вот результаты на 1972 в режиме оптимизации со следующими настройками: начало темы тут

  1. время в проходах оптимизации стабильное, разброса нет
Один Агент?
  1. увеличение затрат времени на фоновой просчет 0, 1, 5 открытых позиций разумное

Есть вариант с отложками.

 
fxsaber:
Один Агент?

Да. Core 01.

 
Как это объяснить?

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5

Renat Fatkhullin, 2019.01.16 21:18

2019.01.16 22:12:47.545 Core 01 pass 0 returned result 5453.00 in 0:00:05.469
2019.01.16 22:12:47.545 Core 01 pass 1 returned result 5469.00 in 0:00:05.469
2019.01.16 22:12:58.470 Core 01 pass 2 returned result 5469.00 in 0:00:05.469
2019.01.16 22:12:58.470 Core 01 pass 3 returned result 5453.00 in 0:00:05.453
2019.01.16 22:13:03.929 Core 01 pass 4 returned result 5453.00 in 0:00:05.453
2019.01.16 22:13:03.929 Tester  optimization finished, total passes 5
2019.01.16 22:13:03.939 Statistics      optimization done in 0 minutes 27 seconds
2019.01.16 22:13:03.939 Statistics      shortest pass 0:00:05.453, longest pass 0:00:05.469, average pass 0:00:05.462

Два последовательных пятисекундных прохода от одного Агента приходят в одно и то же время. OnTesterPass тормозит или особенности логирования?

 
Renat Fatkhullin:

Подскажите, как правильно воспроизвести отсутствие разброса? У меня не получается (Amount = 5)

2019.01.16 22:27:33.862 Core 1  pass 0 returned result 6084.00 in 0:00:06.317
2019.01.16 22:27:33.862 Core 1  pass 1 returned result 4867.00 in 0:00:04.867
2019.01.16 22:27:44.451 Core 1  pass 2 returned result 5039.00 in 0:00:05.039
2019.01.16 22:27:44.451 Core 1  pass 3 returned result 5554.00 in 0:00:05.554
2019.01.16 22:27:49.284 Core 1  pass 4 returned result 4836.00 in 0:00:04.836
2019.01.16 22:27:49.284 Tester  optimization finished, total passes 5
2019.01.16 22:27:49.294 Statistics      optimization done in 0 minutes 28 seconds
2019.01.16 22:27:49.294 Statistics      shortest pass 0:00:04.836, longest pass 0:00:06.317, average pass 0:00:05.322
2019.01.16 22:27:49.298 Statistics      local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)

Фоновые приложения?

 
fxsaber:
Как это объяснить?

Два последовательных пятисекундных прохода от одного Агента приходят в одно и то же время. OnTesterPass тормозит или особенности логирования?

Особенность логгирования пакетируемых данных.

Мы не шлем микропакеты в ответах агентов, а пакетируем их с нарезкой по времени.