Для однозначности, операция 'TYPE NAME = INITIALIZER', больше не будет разбиваться на две операции DECL + ASSIGNMENT, а останется одной 'DECL [has initializer]' Если требуется объявить переменную и вызвать для неё оператор =, разбивайте операцию на две части вручную: DECL; ASSIGNMENT; (да, с констаностью переменной придётся расстаться)
Здесь немного раскрыл Вашу фразу. Однако, нарвался на случай ее несоответствия.
struct A
{
int Tmp;
A() {}
A( /*const*/ A& ) { Print(__FUNCSIG__); }
voidoperator =( const A& ) { Print(__FUNCSIG__); }
};
voidOnStart()
{
const A a1;
const A a2 = a1; // void A::operator=(const A&)
}
Да, есть соответствующее предупреждение компилятора, но однозначность Вами сформулированного правила требует, чтобы в такой ситуации никогда не вызывался оператор.
Проверьте пожалуйста у себя такой тестовый минимальный индикатор:
Суть в том, что для любого индикаторного хендла (здесь берем самого себя, но это для простоты) вызов CopyBuffer происходит успешно на 1 большее число раз, чем количество буферов в индикаторе. В данном случае, индикатор безбуферный и вызов CopyBuffer должен завершаться ошибкой. Кроме того возвращаются какие-то данные с потолка.
ИМХО, это баг или расскажите мне, в чем здесь логика.
fxsaber #: Здесь немного раскрыл Вашу фразу. Однако, нарвался на случай ее несоответствия.
Да, есть соответствующее предупреждение компилятора, но однозначность Вами сформулированного правила требует, чтобы в такой ситуации никогда не вызывался оператор.
Просьба в СБ Internal\TimeSpan\TimeSpan.mqh облачить следующие конструктор и оператор в макрос.
после обновления до 5200 (а теперь и до 5227) тестер стратегий не обновляет графики, если я переключаюсь между разными таймфреймами.
Мой эксперт использует 3 разных таймфрейма — 3 индикатора с разделенным временем.
После обновления 5220 внизу графика тестера отображаются три вкладки (Daily, M30, M5). Но если выбрать другую вкладку, график не обновляется — вкладки переключаются, но содержимое графика не меняется.
Если я переключаюсь во время работы/тестирования эксперта, переключение графика происходит корректно. Но если эксперт завершён, обновление графика не запускается. Поэтому я не могу проанализировать логику и действия эксперта.
Это известная ошибка? Я не нашёл информацию о ней на форуме.
До установки сборки 5200 я видел в тестере стратегий графики с двумя разными таймфреймами: 5 мин и 1 мин. Теперь, в этой сборке, MT5 открывает две вкладки графиков, 5 мин и 1 мин, но оба окна одинаковые — 5 мин. Мне нужно видеть результаты тестов на обоих таймфреймах для анализа. Кто-нибудь ещё сталкивался с этой проблемой?
После обновления версии 5200, несмотря на исправление отображения интерфейса для разных периодов после бэктеста , циклы не переключались. Надеюсь, официальный представитель исправит эту ошибку как можно скорее.
Кто-нибудь заметил, что функционал MQL5 Forge Git считает допустимыми только файлы Unicode/UTF16 (зеленая галочка после фиксации)?
Другие форматы файлов, такие как ASCII, UTF-8 (с BOM или без него) успешно фиксируются, но остаются отмеченными красным предупреждающим кружком, даже если на сервере они все корректно обновляются и отображаются.
Не факт, что проблема началась именно с этого билда, но тем не менее.
Раньше, при выполнении оптимизации советника, когда начиналось форвард-тестирование, была возможность "подглядеть" что там натестировалось, не дожидаясь конца процесса, и не прерывая его принудительно.
Правой кнопкой кликаешь на таблице срезультатами оптимизации(в любом месте) и в списке выбираешь "результаты форвард-тестирования" (вторая сверху строка). Кнопки отдельной нет, но открывался НОВЫЙ список, с теми самыми результатами..
Теперь же, если кликнуть на эту строчку (она по-прежнему активна и доступна, если начался форвард-тест) - ничего не происходит, просто пропадает фокус с вкладки "оптимизация", причем таблица результатов не изменяется.
Терминал переустанавливал (в т.ч. от разных брокеров), даже переустанавливал Windows (не из-за этого, просто так совпало), но возможность обратно не вернулась.
Продолжаем развивать тему обработки и анализа результатов оптимизации. На этот раз задача состоит в том, чтобы выбрать 100 лучших результатов оптимизации и отобразить их в таблице графического интерфейса. Сделаем так, чтобы пользователь, выделяя ряд в таблице результатов оптимизации, получал мультисимвольный график баланса и просадки на отдельных графиках.
Проверьте пожалуйста у себя - вот такой тестовый минимальный индикатор роняет МТ5 без всяких сообщений и логов:
Есть подозрение, что глюк случается только при наличии групп во входных параметрах.
ЗЫ. Кстати, после этого невозможно отлаживаться, т.к. перезапущенный МТ5 при попытке запуска программы пишет в лог:
Нужно перезапускать и ME.5200 резкое закрытие терминала без зависания
+Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Ilyas, 2025.08.04 14:08
Для однозначности, операция 'TYPE NAME = INITIALIZER', больше не будет разбиваться на две операции DECL + ASSIGNMENT, а останется одной 'DECL [has initializer]'
Если требуется объявить переменную и вызвать для неё оператор =, разбивайте операцию на две части вручную: DECL; ASSIGNMENT; (да, с констаностью переменной придётся расстаться)
Да, есть соответствующее предупреждение компилятора, но однозначность Вами сформулированного правила требует, чтобы в такой ситуации никогда не вызывался оператор.
Строка для поиска: Oshibka 144.
Проверьте пожалуйста у себя такой тестовый минимальный индикатор:
Суть в том, что для любого индикаторного хендла (здесь берем самого себя, но это для простоты) вызов CopyBuffer происходит успешно на 1 большее число раз, чем количество буферов в индикаторе. В данном случае, индикатор безбуферный и вызов CopyBuffer должен завершаться ошибкой. Кроме того возвращаются какие-то данные с потолка.
ИМХО, это баг или расскажите мне, в чем здесь логика.
Спасибо, исправили.
В следующей бете не будем такого.
Здесь немного раскрыл Вашу фразу. Однако, нарвался на случай ее несоответствия.
Да, есть соответствующее предупреждение компилятора, но однозначность Вами сформулированного правила требует, чтобы в такой ситуации никогда не вызывался оператор.
Просьба в СБ Internal\TimeSpan\TimeSpan.mqh облачить следующие конструктор и оператор в макрос.
Они теперь не нужны в MQL5 и создают проблему.
Строка для поиска: Uluchshenie 132.облачить следующие конструктор и оператор в макрос.
Они теперь не нужны в MQL5
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Особенности языка mql5, тонкости и приёмы работы
fxsaber, 2025.08.26 12:02
внимательно смотрите функции, где идет возврат объекта.
Мне повезло, что изменения в языке не повлияли на итоговый результат.
Однако, я вставил в вызываемую библиотеку два принта.
И запустил скрипт выше. Вот такая разность поведения.
@Ilyas, прошу объяснить эту разницу. Спасибо.
ЗЫ Понял причину. Но тогда реально очень сильно повезло, что итоговый результат не сломался.
Просто сводка разрозненных сообщений, которые я заметил и которые связаны со сбоями в работе «вкладок» в тестере стратегий ...
Форум по трейдингу, автоматизированным торговым системам и тестированию торговых стратегий
Новая сборка платформы MetaTrader 5 5200: расширенная поддержка OpenBLAS и улучшенное управление в MQL5
Фернандо Каррейру , 26.08.2025 19:41
Кто-нибудь заметил, что функционал MQL5 Forge Git считает допустимыми только файлы Unicode/UTF16 (зеленая галочка после фиксации)?
Другие форматы файлов, такие как ASCII, UTF-8 (с BOM или без него) успешно фиксируются, но остаются отмеченными красным предупреждающим кружком, даже если на сервере они все корректно обновляются и отображаются.
Ссылка: Сборка 5200 ...
Не факт, что проблема началась именно с этого билда, но тем не менее.
Раньше, при выполнении оптимизации советника, когда начиналось форвард-тестирование, была возможность "подглядеть" что там натестировалось, не дожидаясь конца процесса, и не прерывая его принудительно.
Правой кнопкой кликаешь на таблице с результатами оптимизации (в любом месте) и в списке выбираешь "результаты форвард-тестирования" (вторая сверху строка). Кнопки отдельной нет, но открывался НОВЫЙ список, с теми самыми результатами..
Теперь же, если кликнуть на эту строчку (она по-прежнему активна и доступна, если начался форвард-тест) - ничего не происходит, просто пропадает фокус с вкладки "оптимизация", причем таблица результатов не изменяется.
Терминал переустанавливал (в т.ч. от разных брокеров), даже переустанавливал Windows (не из-за этого, просто так совпало), но возможность обратно не вернулась.
Можно ее обратно не ждать?..
Спасибо за сообщение.
Исправление будет доступно в следующей бете.
У OBJ_EDIT собираетесь убирать белую полоску под объектом? Когда-то её не было.