MetaTrader 5 build 4730: расширение поддержки OpenBLAS и общая оптимизация работы

В этой версии в MQL5 появилась поддержка еще нескольких новых функций библиотеки OpenBLAS, а также функций TransposeConjugate и CompareEqual. Они дадут еще больше возможностей для работы с матрицами и векторами. Помимо этого, мы исправили совместимость пакета интеграции с Python. Теперь он работает с любыми версиями Python вплоть до 3.13

6 декабря 2024

Terminal

  1. Изменен расчет стоимости позиций, ордеров и сделок. Теперь она отображается в валюте депозита счета, а не в базовой валюте торгового инструмента:

    Стоимость позиций, ордеров и сделок теперь отображается в валюте депозита счета

  2. Добавлено поле для ввода даты рождения при открытии демо-счетов.

    Добавлено поле для ввода даты рождения при открытии демо-счетов


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

MQL5

  1. Добавлены новые методы OpenBLAS:

    • EigenSolver2 — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц (lapack-функция GGEV).
    • EigenSolverX — вычисление собственных значений и собственных векторов обычной квадратной матрицы в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчета и возможностью получить сопутствующие расчетные данные (lapack-функция GEEVX).
    • EigenSolver2X — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц в режиме эксперта (Expert mode), то есть с возможностью влиять на алгоритм расчета и возможностью получить сопутствующие расчетные данные (lapack-функция GGEVX).
    • EigenSolverShur — вычисление собственных значений, верхнетреугольной матрицы в форме Шура и матрицы векторов Шура (lapack-функция GEES).
    • EigenSolver2Shur — вычисление для пары обычных квадратных матриц обобщенных собственных значений, обобщенных собственных векторов, обобщенных форм Шура и левых и правых векторов Шура (lapack-функция GGES).
    • EigenSolver2Blocked — вычисление обобщенных собственных значений и собственных векторов для пары обычных квадратных матриц при помощи блочного алгоритма (lapack-функция GGEV3).
    • EigenSolver2ShurBlocked — вычисление для пары обычных квадратных матриц обобщенных собственных значений, обобщенных собственных векторов, обобщенных форм Шура и левых и правых векторов Шура при помощи блочного алгоритма (lapack-функция GGES3).
    • EigenSymmetricRobust — вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряженной) матрицы при помощи алгоритма Multiple Relatively Robust Representations, MRRR (lapack-функции SYEVR, HEEVR).
    • EigenSymmetricBisect — вычисление собственных значений и собственных векторов симметричной или эрмитовой (комплексно-сопряженной) матрицы при помощи алгоритма bisection (lapack-функции SYEVX, HEEVX).

  2. Добавлены новые методы для комплексных матриц:

    • TransposeConjugate — для создания сопряженно-транспонированной матрицы.
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      Метод возвращает новую сопряженно-транспонированную матрицу, в которой элементы исходной матрицы транспонированы и приведены к их комплексно сопряженным значениям.

      При ошибке возвращается пустая матрица, для получения кода ошибки используйте функцию GetLastError.

    • CompareEqual — абсолютное сравнение двух матриц.
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      Возвращаемые значения:

      • -1 — если элемент матрицы A меньше соответствующего элемента матрицы B.
      • 0 — если все элементы матриц A и B идентичны.
      • 1 — если элемент матрицы A больше соответствующего элемента матрицы B.

      Метод также может возвращать ошибки при некорректном состоянии входных данных. Для получения кода ошибки используйте функцию GetLastError.

  3. Добавлена поддержка Python вплоть до версии 3.13 для соответствующего пакета интеграции. Для обновления пакета выполните команду:

    pip install --upgrade MetaTrader5

  4. Исправлен пропуск первого события Timer. Ошибка возникала, если таймер включался внутри обработчика OnTimer.

MetaEditor

  • Исправлено вычисление значений для входных переменных при работе под отладчиком. В некоторых случаях вместо значения выводилось сообщение unknown identifier.

Tester

  • Исправлен поиск необходимых кросс-курсов для конвертации валют при тестировании на биржевых инструментах.

Web Terminal

  1. Добавлена поддержка режима исполнения «По запросу» для ордеров большого объема.
  2. Добавлена поддержка расширенного описания для причины отклонения запроса брокером.
  3. Исправлена форма открытия счетов. Теперь набор запрашиваемых данных соответствует настройкам брокера.
  4. Исправлено определение страны при регистрации демо-счета.
  5. Исправлено выравнивание диалога с предупреждением о включении торговли одним кликом.