---
title: "Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5 - Последние обновления"
description: "В этой версии мы существенно расширили поддержку библиотеки линейной алгебры OpenBLAS в MQL5, добавив почти три десятка новых функций... - Последние обновления"
image: "https://www.metatrader5.com/c/17/1/build-5200-trader.png"
url: "https://www.metatrader5.com/ru/releasenotes/terminal/2400"
---

# Новая версия платформы MetaTrader 5 build 5200: расширение OpenBLAS и усиление контроля в MQL5

## В этой версии мы существенно расширили поддержку библиотеки линейной алгебры OpenBLAS в MQL5, добавив почти три десятка новых функций. Они дадут больше возможностей для разработки экспертов с применением машинного обучения

31 июля 2025

### Terminal

1. Добавлена возможность автоматически применять светлую или темную тему интерфейса в зависимости от настроек Windows. Для этого включите новую опцию «Вид \ Цветовые схемы \ Системная». При каждом запуске платформа будет проверять, какой интерфейс вы используете в системе, и адаптироваться соответствующим образом.

   ![Добавлена возможность автоматически применять светлую или темную тему интерфейса в зависимости от настроек Windows](https://c.mql5.com/3/470/terminal_theme.png)
2. Исправлено отображение панелей инструментов, открепленных от основного окна.
3. Исправлен расчет ликвидационной стоимости портфеля в разделе «[Активы](https://www.metatrader5.com/ru/terminal/help/trading/performing_deals#position_list)». Позиции по некоторым инструментам могли не учитываться.
4. Исправлено отображение отрицательных цен в стакане цен. Теперь они сортируются корректно.
5. Исправлен импорт ценовой истории в [пользовательские торговые инструменты](https://www.metatrader5.com/ru/terminal/help/trading_advanced/custom_instruments). Для инструментов, находящихся в корневой папке, соответствующие команды могли быть недоступны.
6. Обновлены переводы пользовательского интерфейса.

### MQL5

1. Добавлены новые методы [OpenBLAS](https://www.mql5.com/ru/docs/matrix/openblas):[Приведение матриц](https://www.mql5.com/ru/docs/matrix/openblas/matrixtransforms)

     - ReduceToHessenberg — преобразует вещественную или комплексную общую матрицу A размером n на n к матрице B верхней формы Хессенберга с помощью ортогонального преобразования подобия: Q**T * A * Q = H. LAPACK-функция GEHRD.
     - ReflectHessenbergToQ — генерирует ортогональную матрицу Q, которая определяется как произведение n-1 элементарных рефлекторов порядка n, возвращаемых функцией ReduceToHessenberg: Q = H(1) H(2) . . . H(n-1). LAPACK-функция ORGHR.

   [Вычисление собственных значений и собственных векторов](https://www.mql5.com/ru/docs/matrix/openblas/eigen_values)

     - EigenHessenbergSchurQ — вычисляет собственные значения матрицы Хессенберга H и матриц T и Z из разложения Шура: H = Z T Z**T. Здесь T — верхняя квазитреугольная матрица (форма Шура), а Z — ортогональная матрица векторов Шура. LAPACK-функция HSEQR.

   [Решение систем линейных уравнений](https://www.mql5.com/ru/docs/matrix/openblas/linear_equations)

     - SylvesterEquationTriangular — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: op(A)*X + X*op(B) = scale*C или op(A)*X - X*op(B) = scale*C, где op(A) = A или A**T или A**H, а A и B — верхнетреугольные. LAPACK-функция TRSYL.
     - SylvesterEquationTriangularBlocked — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: op(A)*X + X*op(B) = scale*C или op(A)*X - X*op(B) = scale*C, где op(A) = A, A**T или A**H, а A и B — верхнетреугольные матрицы. LAPACK-функция TRSYL3. Это блочная (BLAS уровня 3) версия TRSYL. Быстрее до 5 раз, но менее точная.

   [Факторизованные расчеты](https://www.mql5.com/ru/docs/matrix/openblas/factored_calculations)

     - SylvesterEquationSchur — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: A*X + X*B = C, где A и B — верхнетреугольные матрицы. A имеет размер m на m, а B — n на n; правая часть C и решение X имеют размер m на n. LAPACK-функция TRSYL.
     - SylvesterEquationSchurBlocked — решает уравнение Сильвестра для вещественных квазитреугольных или комплексных треугольных матриц: A*X + X*B = C, где A и B — верхнетреугольные матрицы. A имеет размер m на m, а B — n на n; правая часть C и решение X имеют размер m на n. LAPACK-функция TRSYL3. Это блочная (BLAS уровня 3) версия TRSYL. Быстрее до 5 раз, но менее точная.

   [Расчет норм матриц для разных структур](https://www.mql5.com/ru/docs/matrix/openblas/blas_matrix_norm)

     - MatrixNorm — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента прямоугольной матрицы общего вида. LAPACK-функция LANGE.
     - MatrixNormGeTrid — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента общей трехдиагональной матрицы. LAPACK-функция LANGT.
     - MatrixNormHessenberg — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента верхней матрицы Хессенберга. LAPACK-функция LANHS.
     - MatrixNormSy — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента действительной симметричной или комплексной эрмитовой матрицы. LAPACK-функции LANSY и LANHE.
     - MatrixNormComplexSy — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента комплексной симметричной (не эрмитовой) матрицы. LAPACK-функция LANSY.
     - MatrixNormSyTrid — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента действительной симметричной или комплексной эрмитовой трехдиагональной матрицы. LAPACK-функции LANST и LANHT.
     - MatrixNormTriangular — возвращает значение 1-нормы, бесконечной нормы, нормы Фробениуса или наибольшего абсолютного значения любого элемента трапециевидной матрицы размером m на n или треугольной матрицы. LAPACK-функция LANTR.

   [Анализ структурных свойств матриц](https://www.mql5.com/ru/docs/matrix/matrix_classification)

     - IsSymmetric — проверяет, является ли квадратная матрица симметричной.
     - IsHermitian — проверяет, является ли квадратная комплексная матрица эрмитовой.
     - IsUpperTriangular — проверяет, является ли квадратная матрица верхнетреугольной.
     - IsLowerTriangular — проверяет, является ли квадратная матрица нижнетреугольной.
     - IsTrapezoidal — проверяет, является ли прямоугольная (не квадратная) матрица размером m на n верхней или нижней трапециевидной.
     - IsUpperHessenberg — проверяет, является ли квадратная матрица верхней матрицей Хессенберга.
     - IsLowerHessenberg — проверяет, является ли квадратная матрица нижней матрицей Хессенберга.
     - IsTridiagonal — проверяет, является ли квадратная матрица трехдиагональной.
     - IsUpperBidiagonal — проверяет, является ли квадратная матрица верхней бидиагональной.
     - IsLowerBidiagonal — проверяет, является ли квадратная матрица нижней бидиагональной.
     - IsDiagonal — проверяет, является ли квадратная матрица диагональной.
     - IsScalar — проверяет, является ли квадратная матрица скалярной.
2. Добавлен метод [Conjugate](https://www.mql5.com/ru/docs/matrix/matrix_manipulations/matrix_conjugate) для комплексных матриц и векторов. Он изменяет знак мнимой части комплексного числа и возвращает измененную матрицу или вектор.
3. Усилены правила скрытия методов. При наличии в производном классе метода с тем же именем, что и в базовом, теперь по умолчанию вызывается версия из производного класса. Чтобы обратиться к базовому методу, теперь требуется квалификатор:

   ```
   struct A   {    int y;       string func(double x)      {       return(__FUNCSIG__);      }   };    struct B : public A   {    string func(int x)   // метод скрывает A::func      {       return(__FUNCSIG__);      }   };    void OnStart(void)   {    B b;    b.func(M_PI);          // по новым правилам это вызов B::func    b.A::func(M_PI);       // вызов скрытого метода A::func   }
   ```

   Это упрощает чтение кода и устраняет неоднозначность, ранее сопровождавшуюся лишь предупреждением компилятора.Ранее при компиляции было предупреждение:

    deprecated behavior, hidden method calling will be disabled in a future MQL compiler version

    Теперь это изменение вступило в силу.Некоторое количество билдов в журнал будет выводиться предупреждение, если по параметрам доступен более подходящий скрытый метод.

    call resolves to 'string B::func(int)' instead of 'string A::func(double)' due to new rules of method hiding see declaration of function 'B::func' see declaration of function 'A::func'truncation of constant value from 'double(3.141592653589793)' to 'int(3)'
4. Запрещено дублирование имен в одной области видимости. Например, ранее вы могли объявлять параметр input и функцию с одинаковым именем в одном файле. Теперь такое дублирование недопустимо:

   ```
   input int somename=42; int somename(int x)   {    return(42);   }
   ```
5. Добавлена строгая проверка типов значений по умолчанию в перечислениях. Для параметров-функций, принимающих enum, теперь проверяется не только значение, но и точное соответствие типа:

   ```
   int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT); int somename(ENUM_TIMEFRAMES TF=0)   // ошибка, несоответствие типа параметра по умолчанию, несмотря на их одинаковые значения   {    return(42);   }
   ```
6. Запрещены одинаковые идентификаторы в разных перечислениях. Идентификатор внутри одного перечисления теперь не может повторяться в другом в одной области видимости:

   ```
   enum A   {    Value   };    enum B   {    Value  // ошибка, имя Value уже используется в перечислении A   };    void OnStart(void)   {    enum C      {       Value // ошибки нет, в области видимости OnStart имя Value не используется      };   }
   ```

   В разных областях видимости можно использовать одинаковые имена.
7. Включены жесткие требования к шаблонным функциям-инициализаторам. При создании матриц/векторов через функции-инициализаторы отключены:

     - Автотипизация шаблонных функций
     - Значения параметров по умолчанию

   Теперь необходимо явно указывать параметры шаблона и все аргументы:

   ```
   template<typename T> void Initializer(matrix<T>& mat,int method=0); matrix<double> A(10,10,Initializer,42);          // ошибка, функция Initializer должна быть типизирована явно matrix<double> A(10,10,Initializer<double>);     // ошибка, отсутствует параметр 'method' для вызова функции Initializer (значения по умолчанию больше не поддерживаются) matrix<double> A(10,10,Initializer<double>,42);  // ошибки нет
   ```
8. Улучшена поддержка [ONNX](https://www.mql5.com/ru/docs/onnx). Добавлена неявная конверсия знакового типа при передаче массивов ulong в функциях, что облегчает интеграцию MQL5 с моделями ONNX.

    OnnxSetInputShape( … , ulong_array );OnnxSetOutputShape( … , ulong_array );
9. Исправлено отображение типов в предупреждениях о неявном преобразовании строк.
10. Обновлен пакет [интеграции с Python](https://www.mql5.com/ru/docs/python_metatrader5). Для установки обновления выполните команду:

     pip install --upgrade MetaTrader5

### MetaEditor

1. MetaEditor: Исправлена работа команды «Откатиться к ревизии», используемой для [MQL5 Storage](https://www.metatrader5.com/ru/metaeditor/help/mql5storage). Теперь оценка конфликтов между версиями, которые могут возникнуть при откате, производится до операции. Если откат невозможен, операция отменяется.
2. Обновлены переводы пользовательского интерфейса.

### Tester

1. Tester: Исправлена работа функции [OrderCalcMargin](https://www.mql5.com/ru/docs/trading/ordercalcmargin) для счетов с [биржевой моделью расчетов](https://www.mql5.com/ru/docs/constants/environment_state/accountinformation#enum_account_margin_mode).
2. Tester: Исправлено переключение между графиками при визуальном тестировании мультивалютных экспертов.

### Web Terminal

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

**Предыдущие новости:**

- [Новый MetaTrader 5 для iPhone/iPad: торговый отчет и дополнительные индикаторы](https://www.metatrader5.com/ru/releasenotes/terminal/2397)
- [Новая версия платформы MetaTrader 5 build 5120: улучшения и исправления](https://www.metatrader5.com/ru/releasenotes/terminal/2395)
- [Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса](https://www.metatrader5.com/ru/releasenotes/terminal/2393)
- [MetaTrader 5 для iPhone/iPad: линейка, текстовые объекты для графиков и таймер бара](https://www.metatrader5.com/ru/releasenotes/terminal/2387)
- [MetaTrader 5 build 4755: общие улучшения](https://www.metatrader5.com/ru/releasenotes/terminal/2380)
