Как узнать, что оптимизация была прервана пользователем (или по другой причине) и не завершилась? Похоже, что сейчас никак? Напрашивается, чтобы обработчик OnTesterDeinit принимал параметр reason по аналогии с OnDeinit (с добавлением соответствующего кода/номера).
Stanislav Korotky: Как узнать, что оптимизация была прервана пользователем (или по другой причине) и не завершилась? Похоже, что сейчас никак? Напрашивается, чтобы обработчик OnTesterDeinit принимал параметр reason по аналогии с OnDeinit (с добавлением соответствующего кода/номера).
//+--------if(period_HMA7C > 0)
{
handle_HMA7C = iCustom(Symbol(),0,"my_used\\my_HMA7C_123",period_HMA7C);
if(handle_HMA7C == INVALID_HANDLE) // проверяем наличие хендла индикатора
{
Print("Не удалось получить хендл индикатора handle_HMA7C"); // если хендл не получен, то выводим сообщение в лог об ошибкеreturn(INIT_FAILED); // завершаем работу с ошибкой
}
else
{
Print("Получен хендл индикатора handle_HMA7C");
if(!MQLInfoInteger(MQL_OPTIMIZATION))
{
if(!ChartIndicatorAdd(ChartID(),0,handle_HMA7C)) Print("Ошибка подключения индикатора к графику"); // подключаем индикатор к графику
}
}
}
Это и есть явная ошибка , это цены bid. Всё что описано здесь https://www.metaquotes.net/ru/metatrader5/news про индекс доллара и т.п. считается неправильно на исторических данных. Вообще про историю цен подробнее написал здесь https://www.mql5.com/ru/forum/327330.
"то при построении исторических данных синтетики будут использованы значения open+spread, high+spread, low+spread, close+spread этого символа"
Это тоже неправильный вариант, согласен с выше написанным замечанием.
Неправильный. Но несколько более близкий к правильному, чем предыдущий.
На данном этапе мы не можем предложить более правильный вариант, чем этот
Как узнать, что оптимизация была прервана пользователем (или по другой причине) и не завершилась? Похоже, что сейчас никак? Напрашивается, чтобы обработчик OnTesterDeinit принимал параметр reason по аналогии с OnDeinit (с добавлением соответствующего кода/номера).
Полный перебор узнать можно.
Полный перебор узнать можно.
Хотелось бы в общем случае, включая генетику.
Заметил, что MQLInfoString(MQL_PROGRAM_NAME) возвращает разное значение в MT5 терминале и MT5 тестере.
В терминале возвращает MyIndicator, в тестере возвращает MySubFolder\MyIndicator.ex5
Это баг или фича?
Заметил, что MQLInfoString(MQL_PROGRAM_NAME) возвращает разное значение в MT5 терминале и MT5 тестере.
В терминале возвращает MyIndicator, в тестере возвращает MySubFolder\MyIndicator.ex5
Это баг или фича?
Если Вы под "фичей" подразумеваете нечто полезное - то нифига не фича )))
Заметил, что MQLInfoString(MQL_PROGRAM_NAME) возвращает разное значение в MT5 терминале и MT5 тестере.
В терминале возвращает MyIndicator, в тестере возвращает MySubFolder\MyIndicator.ex5
Это баг или фича?
В тестере вообще нет папок для индикаторов. В отличие от клиентского терминала.
Это и не баг, и не фича.
Почему это так важно для Вас?
В тестере вообще нет папок для индикаторов. В отличие от клиентского терминала.
Это и не баг, и не фича.
Почему это так важно для Вас?
В тестере нет папок и для экспертов. Но в случае тестирования эксперта MQLInfoString(MQL_PROGRAM_NAME) возвращает одинаковое значение.
А нужно мне одинаковое значение, чтобы связать тестируемую версию и версию на чарте с помощью именованных каналов.
Почему после теста не отображается индикатор?