Новая версия платформы MetaTrader 5 build 2170: Области видимости в MQL5, глобальное обновление тестера стратегий и встроенного хостинга - страница 13

 
Slava:

Для обычных индикаторов производится проверка, есть ли такой индикатор с такими же параметрами. Если есть, отдаётся существующий хэндл, если нет - создаётся новая копия индикатора и отдаётся новый хэндл.

Для кастомных индикаторов такая проверка не производится, и каждый раз создаётся новая копия и новый хэндл.

Так было изначально, и это поведение меняться не будет

Спасибо

 

Как до этого достучаться?

 

Здравствуйте.

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

Если этот вопрос уже где то освещался, дайте пожалуйста ссылку. Я не смог найти информации про это.

Спасибо.

 
Andrey Kaunov:

Если этот вопрос уже где то освещался, дайте пожалуйста ссылку. Я не смог найти информации про это.

https://www.mql5.com/ru/articles/341

Каждый узел сети MQL5 Cloud Network хранит у себя историю по нужным символам и раздает всем подключенным к нему агентам по требованию. Если у него еще нет истории по символу XYZ от брокера ABC, то узел автоматически скачает нужные для тестирования исторические данные с вашего терминала. Поэтому ваш терминал должен быть готов предоставить такую историю.

 

По какой причине EX5-файлы стали большого размера. У меня почти все свои советники больше 1 МБ.


Пример

#define REPORT_TESTER             // В тестере будут автоматически записываться отчеты
#define REPORT_TESTER_INPUTS      // В отчете одиночного прохода будут видны входные параметры советника - требует разрешения DLL.
#define REPORT_INTERACTIVE_CHARTS // Добавляет в отчет интерактивные графики.
#define REPORT_BROWSER            // Создание отчета с запуском браузера - требует разрешения DLL.
#include <Report.mqh> // https://www.mql5.com/ru/code/18801

void OnTick() {}

занимает почти МБ. 


Если комментирую третью строку, то размер уменьшается в два раза, но все равно много.

При этом после комментария убирается только mqh, состоящий из статической строки на 250 Кб. Почему включение этого файла увеличивает EX5 на 500 КБ?

 
fxsaber:

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

По теме деления на ноль, сегодня столкнулся с тем, что

вернул при Оптимизации ноль (кто-нибудь в Тестере делает проверку на ноль этого значения и зачем?). Потом посыпались ошибки в журнале Тестера по другим проходам. Затем завис Терминал. А после перезагрузки Терминала исчез кастомный символ, на котором шла оптимизация. При этом бары и тики исчезнувшего символа сохранились в base-папках Терминала и Тестера.

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

 
Vladimir Pastushak:

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

Не нужно в Тестере ничего проверять, что согласуется с условиями Тестера. Пункт основного символа Тестера не может во время выполнения изменить своего значения.

 
fxsaber:

При этом после комментария убирается только mqh, состоящий из статической строки на 250 Кб. Почему включение этого файла увеличивает EX5 на 500 КБ?

из-за функции trash() ?

 
Igor Zakharov:

из-за функции trash() ?

Давайте без флуда.

 
fxsaber:

Давайте без флуда.

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

https://www.mql5.com/ru/forum/164872

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