Просьба починить таймер в Тестере, сломали недавно. Воспроизведение проблемы
// ~596.5 часов - < 25 суток.inputint timer = 2147483; // > 2147483 - таймер срабатывать перестанет.voidOnInit() { Print(EventSetTimer(timer)); } // Установили таймер - всегда true.voidOnTimer() { Print(__FUNCTION__); } // Не срабатывает при timer > 2147483.
Воспроизводится в любом режиме Тестера на интервале больше величины заданного таймера.
Такой большой таймер нужен, например, для автооптимизации параметров ТС каждый месяц - ставлю таймер на месяц и в OnTimer произвожу переоптимизацию ТС.
template <typename T>
void f( T, T = 0 ) {}
voidOnStart()
{
double d = 0;
f(d, 0); // template parameter ambiguous, could be 'double' or 'int'
f(d, 0.0); // OK
}
что плохого при использовании локального статик-массива?
Все локальные переменные распределяются на стеке.
Для каждой функции отводится место на стеке, необходимое для размещения локальных переменных. Эта память освобождается при завершении функции. Если из данной функции производится вызов другой функции, то на стеке отводится место под локальные переменные этой другой функции. При неконтролируемой рекурсии стек исчерпывается очень быстро.
Размер стека MQL-программы заранее ограничен, но не может превышать 64 мегабайта. Если для локальных переменных функции необходимо более 4 килобайт, то перед вызовом этой функции вызывается специальная системная функция _chkstk, которая обеспечивает подгрузку необходимого количества страниц физической памяти в адресное пространство процесса. Вы как любитель замерять время попробуйте измерить время вызова функции, имеющей менее 4к локальных переменных и более 4к (более 8к, более 16к и тд). Узнаете много нового.
Воспроизводится в любом режиме Тестера на интервале больше величины заданного таймера.
Такой большой таймер нужен, например, для автооптимизации параметров ТС каждый месяц - ставлю таймер на месяц и в OnTimer произвожу переоптимизацию ТС.
Еще месяц назад таймер работал корректно.
Возможно ли ParameterGetRange сделать доступным в OnInit? Т.е. не только во Frame-режиме.
Идея использовать параметры диапазонов входных параметров Тестера в одиночном прогоне. Нужно для автооптимизации.
Обязательно ее выводить, когда такая ситуация?
Ошибка уже исправлена. Ждите обновления.
the size of local variables is too large (more than 512kb)что плохого при использовании локального статик-массива?
Ошибка уже исправлена. Ждите обновления.
А сколько ждать разработчики не уточняли?
Люди кто подскажет почему не загружается МТ-4 Вроде-бы все загрузилось но не активируется кнопка "готово"
Получаю такое предупреждение компилятора
что плохого при использовании локального статик-массива?
Все локальные переменные распределяются на стеке.
Для каждой функции отводится место на стеке, необходимое для размещения локальных переменных. Эта память освобождается при завершении функции. Если из данной функции производится вызов другой функции, то на стеке отводится место под локальные переменные этой другой функции. При неконтролируемой рекурсии стек исчерпывается очень быстро.
Размер стека MQL-программы заранее ограничен, но не может превышать 64 мегабайта. Если для локальных переменных функции необходимо более 4 килобайт, то перед вызовом этой функции вызывается специальная системная функция _chkstk, которая обеспечивает подгрузку необходимого количества страниц физической памяти в адресное пространство процесса. Вы как любитель замерять время попробуйте измерить время вызова функции, имеющей менее 4к локальных переменных и более 4к (более 8к, более 16к и тд). Узнаете много нового.