Новая версия платформы MetaTrader 5 build 5572: Улучшения в ONNX и отображении графиков

 

В пятницу 30 января 2026 года будет выпущена обновленная версия платформы MetaTrader 5.

В этой версии мы улучшили работу с ONNX в MQL5. Теперь такие модели будут выполняться существенно быстрее при работе на видеокартах с поддержкой CUDA. Кроме этого, мы добавили поддержку новых флагов и поменяли порядок работы с библиотекой — теперь она устанавливается только при первом запуске программы, использующей ONNX, а не вместе с платформой.

Кроме этого, мы доработали отображение текста и аналитических объектов на графиках для движка Blend2D, представленного в предыдущем обновлении. Также мы улучшили торговые отчеты и повысили устойчивость тестера стратегий.

Еще несколько улучшений получила веб-версия платформы. Теперь при изменении стоп-уровней на графике вы будете видеть приблизительную прибыль/убыток в деньгах. Также исправлено отображение некоторых торговых данных.

Новая версия платформы MetaTrader 5 build 5572


MetaTrader 5 Client Terminal

  1. Terminal: Исправлено отображение текста на графиках при работе в системах macOS и Linux, где используется Wine.
  2. Terminal: Исправлена отрисовка индикаторов, отображающихся в виде линии с изменяющимся цветом.
  3. Terminal: Исправлена отрисовка объектов «Текстовая метка» и «Кнопка».
  4. Terminal: Исправлено форматирование некоторых статистических показателей в торговых отчетах. Они могли округляться некорректно.
  5. Terminal: Изменен расчет показателей «Общая прибыль» и «Общий убыток» в торговом отчете. Теперь они включают комиссии и свопы.
  6. Terminal: Исправлено сохранение состояния панели инструментов для открепленного графика. При перезапуске платформы скрытая панель могла появляться вновь.
  7. Terminal: Исправлена загрузка настроек пользовательских торговых инструментов из файлов JSON. В частности, могли некорректно импортироваться настройки свопов, торговых сессий, а также стоимость тика.
  8. Terminal: Добавлено указание инструмента и таймфрейма в заголовок окна при запуске скрипта на графике.



    Добавлено указание инструмента и таймфрейма в заголовок окна при запуске скрипта на графике.


  9. Terminal: Исправлено дублирование торговых инструментов в подсказке, отображаемой при поиске инструментов в «Обзоре рынка».
  10. Terminal: Исправлено отображение шрифтов Windings на графике.
  11. Terminal: Исправлено отображение индикаторов в виде разноцветных свечей (DRAW_COLOR_CANDLES) и разноцветных линий (DRAW_COLOR_LINE).
  12. Terminal: Добавлен вывод сообщения в журнал о том, что сервер брокера имеет устаревшую версию. Если сервер имеет версию ниже 5200, выпущенную полгода назад, вы увидите предупреждение:
    outdated server build - must be at least 5200, contact your broker please
    Сообщение выводится для информации и не влияет на возможность подключения к серверу.

  13. MQL5: Изменен порядок установки библиотеки ONNX. Теперь она загружается при первом запуске MQL5-программы, использующей ONNX, а не вместе с платформой. Обновление библиотеки происходит автоматически.
  14. MQL5: Добавлена поддержка CUDA для ONNX. Если ваша видеокарта поддерживает соответствующую технологию, это существенно ускорит инференс моделей. Настоятельно рекомендуем обновить драйверы NVIDIA для улучшения стабильности и повышения производительности.

    Разрешениями на использование CUDA можно управлять в настройках платформы: 


    Управление CUDA в настройках платформы


  15. MQL5: Обновлены флаги в перечислении ENUM_ONNX_FLAGS. Они используются при создании и выполнении моделей ONNX:

    Работа с логами
    Вместо устаревшего флага ONNX_DEBUG_LOGS для работы с логами теперь используются:

    • ONNX_LOGLEVEL_VERBOSE — выводить все сообщения.
    • ONNX_LOGLEVEL_INFO — выводить информационные сообщения, а также предупреждения и ошибки. Заменяет устаревший флаг ONNX_DEBUG_LOGS.
    • ONNX_LOGLEVEL_WARNING — выводить предупреждения и ошибки. Используется по умолчанию.
    • ONNX_LOGLEVEL_ERROR — выводить только ошибки.

    Управление CUDA и GPU
    Флаг ONNX_CUDA_DISABLE удален. Вместо него используйте новый ONNX_USE_CPU_ONLY. Если он включен, для работы с моделями будет использоваться только процессор.

    Добавлены флаги для выбора видеокарты, на которой будет исполняться модель:

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

    Используйте их, если в системе есть 2 или более устройства, поддерживающих CUDA. Если задано несколько флагов, будет выбрано устройство с наименьшим индексом.

    Профилирование моделей
    Добавлен флаг ONNX_ENABLE_PROFILING, включающий профилирование модели ONNX.

    При запуске модели с включенным флагом в папке /MQL5/Files/OnnxProfileReports/ будет создан файл с именем [название файла EX5]_[дата]_[время].json, содержащий отчет профилирования.

  16. MQL5: Увеличен лимит для файлов, которые могут быть включены в программу в виде ресурса. Теперь он составляет 1 ГБ. Это позволяет включать в проекты большие модели ONNX. 
  17. MQL5: Улучшена стабильность при работе с OpenCL.
  18. MQL5: Добавлен метод ReplaceToZero. Он заменяет малые значения в матрице/векторе нулевыми значениями и возвращает количество замененных элементов.
  19. MQL5: Добавлены новые методы OpenBLAS:

    • FactorizationLDLComplexSyRaw — вычисляет разложение комплексной матрицы с использованием диагонального выбора ведущего элемента по методу Банча-Кауфмана.
    • LDLComplexSyLinearEquationsSolution — решает систему линейных уравнений A * X = B с комплексной симметричной неопределенной матрицей, используя разложение A = U**T * D * U or A = L * D * L**T, рассчитанное методом FactorizationLDLComplexSyRaw с несколькими правыми частями.
    • LDLComplexSyInverse — вычисляет обратную матрицу для комплексной симметричной неопределенной матрицы с использованием разложения A = U**T * D * U or A = L * D * L**T, рассчитанного методом FactorizationLDLComplexSyRaw.
    • LDLComplexSyCondNumReciprocal — оценивает обратное число обусловленности для комплексной симметричной неопределенной матрицы, используя разложение LDLT, рассчитанное методом FactorizationLDLComplexSyRaw.

  20. MQL5: Добавлена функция ColorToPRGB. Она преобразует тип color в тип uint для получения PRGB-представления цвета. Такой формат используется при создании графического ресурса, вывода текста и в классе стандартной библиотеки CCanvas при работе с цветом COLOR_FORMAT_ARGB_RAW.
    uint  ColorToPRGB(
       color  clr,          // преобразуемый цвет в формате color
       uchar  alpha=255     // альфа-канал, управляющий прозрачностью цвета
    );
    PRGB цвет вычисляется по формуле:
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  21. MQL5: Исправлена программная установка текста для объектов OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON и OBJ_EDIT. В некоторых случаях заданный текст мог не отображаться.
  22. MQL5: Исправлена установка цвета для графических объектов при помощи ObjectSetInteger. Значения clrNONE могло не учитываться.
  23. MQL5: Исправлено зависание функции Bars при отсутствии ценовой истории на сервере.
  24. MQL5: Исправлен поиск глобальных переменных в области видимости. Ошибка не позволяла использовать внутри namespace переменные с теми же именами, что у переменных на глобальном уровне.
  25. MQL5: Исправлена работа с атрибутом final. Теперь при попытке переопределить функцию, помеченную как final, компилятор будет выдавать соответствующую ошибку.
  26. MQL5: Исправлено ложное предупреждение компилятора, возникавшее при использовании предобъявлений функций в подключаемых файлах *.mqh без директивы #import. Теперь компилятор корректно обрабатывает такие объявления и не требует #import, если функции не являются импортируемыми из DLL.

    Пример

    Файл utils.mqh: 
    // Предобъявление функции
    double CalcLot(double risk, double stop);
    Файл expert.mq5:
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    Ранее компилятор мог выдавать предупреждение о том, что для функции CalcLot в файле utils.mqh отсутствует директива #import, несмотря на то что функция является пользовательской и реализована в коде проекта. Теперь такой код компилируется без предупреждений. Директива #import требуется только для функций, действительно импортируемых из внешних DLL. 

  27. MetaEditor: Исправлена ошибка недостатка памяти при работе с большими исходными файлами (мегабайты).
  28. MetaEditor: Исправлен показ значения и имени перечисления в окне наблюдения выражений при отладке.
  29. Tester: Исправлена остановка тестирования для зацикленных экспертов. Теперь даже при наличии бесконечного цикла процесс будет моментально останавливаться при нажатии кнопки «Стоп».
  30. Tester: Исправлен вызов функции EventChartCustom при визуальном тестировании. Ранее событие ошибочно отправлялось дважды.
  31. Tester: Исправлена проверка уровня заморозки (SYMBOL_TRADE_FREEZE_LEVEL) при удалении только что установленных отложенных ордеров.
  32. Tester: Исправлен экспорт данных форвард-тестирования. При экспорте данных теста, в котором не использовался форвард-режим, могли сохраняться данные предыдущих форвард-тестов.
  33. Обновлены переводы пользовательского интерфейса.

MetaTrader 5 Web Terminal

  1. Добавлено отображение приблизительного размера прибыли/убытка в деньгах при выставлении Стоп Лосса и Тейк Профита на графике.


    Добавлено отображение приблизительного размера прибыли/убытка в деньгах


  2. Исправлено отображение спецификации для торговых инструментов, имеющих спецсимволы в названии.
  3. Исправлено отображение отрицательных цен в торговом диалоге.
  4. Исправлено отображение финансовых показателей счета для случаев, когда валюта депозита имеет точность более 2 знаков после запятой.


Обновление будет доступно через систему Live Update.

 

В браузере чат (канал) с непрочитанными сообщениями открывается на самом недавнем сообщении, а не на первом непрочитанном.

Приходится каждый раз вручную скролить в поисках вот этого:


 
Vladislav Boyko #:

In the browser, chat (channel) with unread messages opens on the most recent message, and not on the first unread.

You have to manually tract in search of this:


I will report it, though it's not related to this topic about build 5540.

Я сообщу об этом, хотя это и не относится к этой теме о сборке 5540.

 

Подскажите плиз что за ошибка (10065) Trades on all boards in) выскочила при подаче заявки по маркету роботом через res = Trading.Buy(lot1, Symbol(), price, 0, 0, magic);

до этого три заявки исполнились и после еще 4 тоже прошли.

Брокер Финам, торговля на MOEX
 
Здравствуйте, в последних бета-версиях маленькие объекты (прямоугольники, треугольники) с толстой обводкой выглядят плохо (скриншот во вложении), нельзя ли вернуть им скругленные углы? При вертикальном сжатии графика их вообще становится не видно, раньше обводка не сжималась, что было удобно.

И еще, если даты и значения равны, то обводка объектов теперь вовсе не отображается. Таким способом можно было рисовать круглые точки любого размера, с привязкой по центру и которые не деформируются при изменении масштаба графика, было очень удобно.
Файлы:
 
Sergei Samokhin # :

Подскажите плиз что за ошибка (10065) Trades on all boards in) выскочила при подаче заявки по маркету роботом через res = Trading.Buy(lot1, Symbol(), price, 0, 0, magic);

до этого три заявки исполнились и после еще 4 тоже прошли.

Брокер Финам, торговля на MOEX
Какую сборку MT5 вы используете?
 
Trader111777 # :
Здравствуйте, в последних бета-версиях маленькие объекты (прямоугольники, треугольники) с толстой обводкой выглядят плохо (скриншот во вложении), нельзя ли вернуть им скругленные углы? При вертикальном сжатии графика их вообще становится не видно, раньше обводка не сжималась, что было удобно.

И еще, если даты и значения равны, то обводка объектов теперь вовсе не отображается. Таким способом можно было рисовать круглые точки любого размера, с привязкой по центру и которые не деформируются при изменении масштаба графика , было очень удобно.
Пожалуйста, предоставьте технические подробности. Скриншота недостаточно.
 
Alain Verleyen #:
Какую сборку MT5 вы используете?
5430 
 
Sergei Samokhin # :
5430 
Я запросил дополнительную информацию об ошибке 10065.
 
Sergei Samokhin # :

Подскажите плиз что за ошибка (10065) Trades on all boards in) выскочила при подаче заявки по маркету роботом через res = Trading.Buy(lot1, Symbol(), price, 0, 0, magic);

до этого три заявки исполнились и после еще 4 тоже прошли.

Брокер Финам, торговля на MOEX

Ответ от MQ:

Шлюз (или плагин) на сервере брокера отклонил торговый запрос с кодом RET_REQUEST_REJECT и комментарием "(10065)Trades on all boards in ". Комментарий и цифры в нём не наши.

Подробности у брокера.


 

В таблице результатов оптимизации как отличить нулевой результат (валидный, просто торговые условия не сложились) от ошибки инициализации (например, при недопустимом сочетании параметров)?

Вопрос риторический - в МТ5 никак.

А в МТ4 было можно.

Опять костыли ваять.

И таких недоделок полно, которые каждый день использовать МТ5 по факту не дают. А тут всё новые недоделки пристыковываются и пристыковываются...

ЗЫ. И оптимизатор так по-прежнему и не понимает, что вместо некорректных сочетаний параметров нужно догенерировать еще экземпляров в поколение генетической оптимизации.