fxsaber #: Рекомендуете боевые советники компилировать на b5430? Судя по Вашим сообщениям, сейчас ситуация - авось.
Всегда пользуюсь проверенным билдом, потому что в новых обычно есть много неудобств. Но в разных билдах могут что-то починить, а что-то испортить - тут каждый пусть сам решает. Конкретная ошибка с компилятором тянется из старых билдов в новые (проверял и на 5430 и на 5810).
Ну так программа от этого не должна портиться в других никак не связанных местах и выполнять инструкции непредсказуемым образом.
То, что выведено предупреждение - это хорошо, в переменной при выполнении будет не то, что ожидалось (из-за невнимательности) - и это должен быть единственный эффект, а не куча побочки.
PS.
Вот код до правки:
Программа падает в подсвеченной строке с невероятной ошибкой так как заголовок цикла не отрабатывает как надо. Если добавить требуемый каст (ulong) в последнюю строку, проблема с циклом пропадает. Это нормально?
В зависимости от того, как отредактируешь несколько строк после этого фрагмента - начинаются чудеса в другом месте - с тем самым if(a * b < 0), который перестает правильно работать - программа проваливается внутрь него при отрицательных a и b.
Ну так и есть. Открывается для слова под курсором, но там где не надо, типа учитесь работать с матрицами… Надеюсь, что Ренат это увидел и в ближайшем билде будет исправлено.
bool ParameterGetRange(
conststring name, // имя параметра (input-переменной)bool& enable, // разрешена оптимизация параметраlong& value, // значение параметраlong& start, // начальное значениеlong& step, // шаг измененияlong& stop// конечное значение
);
возвращает start и stop как порядковый номер из перечисления, например от 3 до 5. Но мне нужны значения 50 и 200. Как их можно получить?
Значения нужны для того, чтобы через .set файл или через Ctrl V устанавливать значения для тестера. Тестер принимает значения, а не номера. Ctrl C из тестера показывает именно значения:
inSLBuy=200||50||1||200||Y
Последующий Ctrl V устанавливает правильно.
Т.е. имеется несоответствие. Программно можно получить только порядковые номера, а использовать для .set или Ctrl V только значения.
Хорошо бы привести это к единому формату.
1) Или в ParameterGetRange выводить значения (или сделать новый вариант вызова, который давал бы значения) 2) Или для тестера сделать прием значений для перечислений, как порядковые номера.
Наверное только через жо ой, через поиск будет быстрей…
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5800: Улучшенный торговый диалог и удобная работа с CSV в MetaEditor
Renat Fatkhullin, 2026.04.22 11:31
Обычно (практически всегда) по F1 или контекстному меню языковая справка открывается для слова под курсором
Рекомендуете боевые советники компилировать на b5430? Судя по Вашим сообщениям, сейчас ситуация - авось.
Помимо того, что для этой надписи нужен свой отдельный цвет, чтобы он не совпадал с цветом Foreground, есть ещё и баг.
если графиков 2 и более и 2 раза нажать Alt+D, то эти кнопки становятся белыми:
Ну так программа от этого не должна портиться в других никак не связанных местах и выполнять инструкции непредсказуемым образом.
То, что выведено предупреждение - это хорошо, в переменной при выполнении будет не то, что ожидалось (из-за невнимательности) - и это должен быть единственный эффект, а не куча побочки.
PS.
Вот код до правки:
Программа падает в подсвеченной строке с невероятной ошибкой так как заголовок цикла не отрабатывает как надо. Если добавить требуемый каст (ulong) в последнюю строку, проблема с циклом пропадает. Это нормально?
В зависимости от того, как отредактируешь несколько строк после этого фрагмента - начинаются чудеса в другом месте - с тем самым if(a * b < 0), который перестает правильно работать - программа проваливается внутрь него при отрицательных a и b.
Сделайте воспроизводимый код, пожалуйста.
Как будет код, сразу же разберемся.
Лично для меня такое оформление всё ещё достаточно "слепое".
Вот мой черновик (галка у строк не стоит, т.к. не может стоять, включенная галка более жирная для лучшей видимости на мониторах с высоким DPI):
Впрочем, я не использую темную тему, в светлой будет по другому.
Исправлено таким образом, начиная со сборки 5813.
Справочник MQL5, не находит оператор "default" через 'F1'.
(build 5813)
В бете 5814:
Отсутствующие ключевые слова добавляем в поиск.
Для перечислений
функция ParameterGetRange
возвращает start и stop как порядковый номер из перечисления, например от 3 до 5. Но мне нужны значения 50 и 200. Как их можно получить?
Значения нужны для того, чтобы через .set файл или через Ctrl V устанавливать значения для тестера. Тестер принимает значения, а не номера.
Ctrl C из тестера показывает именно значения:
Последующий Ctrl V устанавливает правильно.
Т.е. имеется несоответствие. Программно можно получить только порядковые номера, а использовать для .set или Ctrl V только значения.
Хорошо бы привести это к единому формату.
1) Или в ParameterGetRange выводить значения (или сделать новый вариант вызова, который давал бы значения)
2) Или для тестера сделать прием значений для перечислений, как порядковые номера.
1й вариант удобнее для понимания.
В печати видим порядковые номера от 3 до 5
А Ctrl C показывает
inSLBuy=1000||50||0||200||Y