MetaTrader 5 Strategy Tester и MQL5 Cloud Network - страница 2

 
Interesting:

Вот с этого места по подробней. Насколько я понимаю тут речь идет о том что одно ядро на прогон, но можно выбрать какое именно + есть возможность запустить несколько терминалов.

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

Для одиночного прогона нельзя выбрать агента из MQL5 Cloud Network, ибо это не имеет практического и экономического смысла.

Грубо говоря, не имеет смысла инициализировать мощную распределенную систему MQL5 Network с поднятием кешей и подготовкой данных ради одиночного теста. Задача MQL5 Cloud Network в проведении массированных оптимизационных расчетов.

 
Renat:

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

Для одиночного прогона нельзя выбрать агента из MQL5 Cloud Network, ибо это не имеет практического и экономического смысла.

Грубо говоря, не имеет смысла инициализировать мощную распределенную систему MQL5 Network с поднятием кешей и подготовкой данных ради одиночного теста. Задача MQL5 Cloud Network в проведении массированных оптимизационных расчетов.

Кстати вот что подумалось - может быть в плане "улучшения" сделать такую некую предварительную "калькуляцию", скажем проанализировав скорость передачи (время поднятия) кешей как минус и те плюсы от большего числа ядер и сравнить полученное с  временем  только локального тестирования выдать некий "совет" - типа смысла гонять на удаленных смысла нет. Ведь на самом деле это совсем по началу не очевидно.
 
Renat:

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

Для одиночного прогона нельзя выбрать агента из MQL5 Cloud Network, ибо это не имеет практического и экономического смысла.

Грубо говоря, не имеет смысла инициализировать мощную распределенную систему MQL5 Network с поднятием кешей и подготовкой данных ради одиночного теста. Задача MQL5 Cloud Network в проведении массированных оптимизационных расчетов.

Значит я понял правильно, один локальный/удаленный агент + несколько терминалов
 
Academic:
Кстати вот что подумалось - может быть в плане "улучшения" сделать такую некую предварительную "калькуляцию", скажем проанализировав скорость передачи (время поднятия) кешей как минус и те плюсы от большего числа ядер и сравнить полученное с  временем  только локального тестирования выдать некий "совет" - типа смысла гонять на удаленных смысла нет. Ведь на самом деле это совсем по началу не очевидно.

Конечно же диспетчер тестирования будет стараться больше использовать локальных агентов, потом удаленных и уже потом распределенных ради снижения стоимости вычислений.

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

То есть, терминал будет раздавать задачи блоками по 32-64 прогона каждому агенту, что позволит в такое же количество раз снизить влияние сетевых задержек.

Пример: послал пакет задач из 32 прогонов в 2 кб с параметрами на расчет и получил через 5 минут ответный пакет в 1 кб с результатами от агента. В итоге сетевой трафик 3 кб с потерями на передачу около 1 секунды вместо 32 секунд без пакетирования.

 

Спасибо за ответы, но многое осталось непонятным.

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

Что означает: "удаленный, работающий в серверном режиме"? Просто не понимаю - если на второй компьютер с помощью компонента Метатестер произвести установку агента - это оно и есть? А какиет тогда удаленные, работающие не в серверном режиме - их как добавлять?

Для одиночного прогона нельзя выбрать агента из MQL5 Cloud Network, ибо это не имеет практического и экономического смысла.

Вот здесь и нужен супер-компьютер, вернее его кластер, работающий как одно ядро-как один агент, и сеть нужна - дома такого не у кого нет. Или хотябы возможность подключиться к мощной машине(это, я так понял можно - если агента на мощном компьютере установить, и его использовать с ноутбука при одиночном прогоне). Именно для одиночного прогона. Ведь, получается наоборот - нет практического смысла использовать MQL5 Cloud Network в проведении массированных оптимизационных расчетов, если даже первоначальный одиночный прогон выполнить затруднительно. Перебор вариантов - это второй случай, но одиночный прогон - не менее важен, а для кого-то и более.

Значит я понял правильно, один локальный/удаленный агент + несколько терминалов

Вот это совсем непонятно как расшифровать...

 

Renat:

Пример: послал пакет задач из 32 прогонов в 2 кб с параметрами на расчет и получил через 5 минут ответный пакет в 1 кб с результатами от агента. В итоге сетевой трафик 3 кб с потерями на передачу около 1 секунды вместо 32 секунд без пакетирования.

Это справедливо если история подгружена и нет дополнительных накладных расходов. Но  в принципе снижение трафика и повышение эффективности оптимизации будет на лицо.
 

Renat:

Грубо говоря, не имеет смысла инициализировать мощную распределенную систему MQL5 Network с поднятием кешей и подготовкой данных ради одиночного теста. Задача MQL5 Cloud Network в проведении массированных оптимизационных расчетов.

С этим соглашусь. А вот жаль что нет возможности запускать несколько одиночных прогонов (тестовых) одновременно, даже при наличии нескольких ядер на компе. Точнее, последовательно, конечно, но не дожидаясь завершения предыдущих прогонов. Несколько версий терминала - очень накладно по памяти. Вот если б тестер был автономной программой, с возможностью запуска нескольких экземпляров - это было бы уже получше. В идеале - многозадачный тестер. Сейчас приходится извращаться - писать конфигурационный файл со списками параметров и грузить их из файла, подсовывая оптимизатору псевдопеременную-счетчик. Неудобно. Я уж не говорю о том, что полный набор результатов тестирования (сделки, в частности) приходится в этом варианте тоже самостоятельно считать, форматировать и сбрасывать в файл в деините. Вопчем массовая обработка результатов оптимизации в текущей версии тестера весьма затруднена. Невозможно даже загрузить вчерашние результаты тестирования из файла (который таки есть!) обратно на страничку "результаты оптимизации", чтобы спокойно с ними поразбираться имея под рукой тестер "в один клик". Может хотя бы такую возможность реализуете?

Ешё одна больная тема: При оптимизации, как я понял, довольно много времени занимает подготовка данных для агентов.  А вот нельзя ли грузить агенты не одиночными прогонами-задачами, а пакетами прогонов (8-16-32)? При этом (имхо) можно получить ощутимый выигрыш в суммарном времени оптимизации. Насколько знаю в четвёрке сейчас подобная схема успешно работает. Там, по моему, параллельно несколько наборов параметров прогоняются (возможно ошибаюсь). Вот хотелось бы чего-то подобного на пятёрке. А то у меня на одноядерниках пятёрочный тестер отстаёт от четвёрочного в разы (я уже как-то писал).

// Вау! Опоздал. Пока писал, уже Ренат про пакетную обработку написал утвердительно. Спасибо. Очень рад.  Бум ждать.

 
-Alexey-:

Спасибо за ответы, но многое осталось непонятным.

Что означает: "удаленный, работающий в серверном режиме"? Просто не понимаю - если на второй компьютер с помощью компонента Метатестер произвести установку агента - это оно и есть? А какиет тогда удаленные, работающие не в серверном режиме - их как добавлять?

Вот здесь и нужен супер-компьютер, вернее его кластер, работающий как одно ядро-как один агент, и сеть нужна - дома такого не у кого нет. Или хотябы возможность подключиться к мощной машине(это, я так понял можно - если агента на мощном компьютере установить, и его использовать с ноутбука при одиночном прогоне). Именно для одиночного прогона. Ведь, получается наоборот - нет практического смысла использовать MQL5 Cloud Network в проведении массированных оптимизационных расчетов, если даже первоначальный одиночный прогон выполнить затруднительно. Перебор вариантов - это второй случай, но одиночный прогон - не менее важен, а для кого-то и более.

Вот это совсем непонятно как расшифровать...

1. При одиночном прогоне используется только одно ядро, локальное (свой ПК) или удаленный агент (внутри сети).

2. Определенные ядра можно отключить

3. Можно выбрать определенный агент (определенное ядро) на котором будем тестить.

Теоретически можно выполнить несколько "одиночных тестов" в одно время (но тогда потребуется несколько терминалов).

PS

В Вашем случае с ноутбуком следует вырубить локальные ядра и провести тест на мощном компе (который находится в локальной сети или ресурсы которого будут максимально бесплатны для тестов).

 

MetaDriver:

А вот нельзя ли грузить агенты не одиночными прогонами-задачами, а пакетами прогонов (8-16-32)? При этом (имхо) можно получить ощутимый выигрыш в суммарном времени оптимизации. Насколько знаю в четвёрке сейчас подобная схема успешно работает.


Так реализуют же пакетный режим, Ренат даже пример привел...
 

А мне вот непонятно следующее….

  1. Как быть с историей ? она что будет одна для всех ?  а если терминал скачан от разных ДЦ у  которого истории кот наплакал да она еще и с дырами и дыры в разных местах ?
  2.  Если количество инструментов не совпадает, пример  на сервере 12 символов чемпионата. А для тестирования (мультивалютного нужна полная матрица валют, что бы работал правильно индикатор)  как в этом случае ? ….
  3.  И третье тут уже говорили про время, для этого и ввели время UTG что бы хоть как то все синхронизировать… а у вас как будет ?  если допустим тестируются только определенные торговые часы (пример с  10 до 12 по Москве) … время то у всех разное
Причина обращения: