Ilyas / Все сообщения
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5Форум | 2025.08.13 10:38 | Ilyas
Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Спасибо за сообщение! Поправил код определения наличия пользовательского конструктора копий - добавил учёт дополнительных параметров со значениями по умолчанию.Форум | 2025.08.13 09:24 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Общий ответ - единократная перерисовка. Но это не точно, т.к. непосредственно сама перерисовка чарта (оконное событие WM_PAINT) происходит в главном потоке терминала, тогда как индикатор работает в потоке символа. Так что технически, перерисовка чарта таки может произойти дважды за один вызов 'event handling function ', если между вызовами ChartRedraw пройдёт достаточно времени,. ChartRedraw не перерисовывает чарт непосредственно при вызове, под капотом используется InvalidateRect из Windows API ВАЖНО! ChartRedraw гарантирует, что очередь асинхронных команд чарта (в основном это функции записи состояний объектов) будет выполнена(исполнена) до выхода из функции.Форум | 2025.08.12 11:46 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Интерфейсы есть Подозреваю, что речь идет о множественном наследовании? Оно пока отложено. И кстати, для резолвинга при множественном наследовании тоже есть нюансы, если в 2-ух и более родителях имеются одинаковые сигнатуры функции, какую вызывать? По очереди наследования? Очередь наследования поменялась = изменилось поведение. Форум | 2025.08.12 10:11 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Пожалуйста, не надо разводить холивар, если есть аргументы - приведите их Данное изменение связано с работой над новой версией MQL компилятора, которая активно ведётся. скоп = область видимости задачи: Однозначность при резолвинге имени внутри скопа. Если в скопе имеется сущность с искомым именем, то используется эта сущность (не ищем с таким же именем в родительских скопах). Стало как в С++, поэтому можно будет использовать коды С++ без опаски, что поведение кода изменится из-за разного резолвинга. Улучшает инкапсуляцию Класс переопределяет функцию из родитеского скопа, чтобы обеспечить нужный способ обработки данных этого класса (родитель ничего не знает про потомков). Если неоходимо использовать сущность с таким же именем из родительского скопа - укажите это явно. При необходимости, можно будет использовать ключевое слово using (в разработке). ИТОГО: Оба подхода имеют право на жизнь, но старый резолвинг имени позволял обеспечить только одно поведение с перегрузкой, без сокрытия....Форум | 2025.08.12 09:46 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Спасибо, проверил код библиотеки. Основная ошибка в коде связана с обнулением на декларации: Я внёс необходимые изменения, проверте пожалуйста исполнение теста на правильность (корректность вывода).Форум | 2025.08.12 08:49 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Нет Объявите в классе шаблонный метод с нужным именем, который выполняет проброс вызова в глобальную функцию, компилятор такие микро-функции успешно инлайнит. Ваш метод похож на 'хак ', наличие или отсутствие глобальной функции, изменяет поведение объекта, это чревато трудноуловимыми багами. Ужесточение правил резолвинга имени 'стандартизирует ' код. При написании кода, нужно внедрять в сознание мысль - код пишется для чтения абстрактным читателем, а не тобой (а через 2+ года и свой код читается как чужой).Форум | 2025.08.11 18:07 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Область видимости (далее скоп) в новой версии MQL имеет свой список именованных объектов компиляции (переменные, функции и т.д.) Обход дерева скопов при поиске именованной сущности происходит от текущего скопа к глобальному корню, до первого найденного, что приводит к сокрытию всех сущностей с тем же именем в скопах выше по дереву. В скопе A имеется 'Func1' принимающий строку, но внутри скопа A при вызове 'Func1' передаётся целое. Если раньше такой код приводил к тому, что внутри A вызывалась глобальная::Func1, то теперь, поиск 'не видит ' глоальной. Мы уже 5 лет назад предупреждали на форуме о данном предстоящем изменении и в компиляторе до версии 5200 можно было видеть предупреждение компиляции 'deprecated behavior, hidden method calling will be disabled in a future MQL compiler version 'Форум | 2025.08.11 14:26 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Будет оператор using, который решит проблему ограничения функционала (сделает поведение компилятора 'как раньше ')Форум | 2025.08.11 14:05 | Ilyas

Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5
Спасибо за сообщение. Предоставьте пожалуйста для изучения MQL код, на котором воспроизводится некорректная работа индикатора.Форум | 2025.08.07 07:54 | Ilyas
